public void AnomClientPdfDoubleSignSync() { DsspClient dsspClient = new DsspClient("https://www.e-contract.be/dss-ws/dss"); Document d = new Document("application/pdf", File.OpenRead("SignedDouble.pdf")); SecurityInfo si = dsspClient.Verify(d); Assert.AreEqual(2, si.Signatures.Count, "Signature Count"); //Validate signature 1 Assert.AreEqual("SERIALNUMBER=83121034221, GIVENNAME=Iryna, SURNAME=Brouckaert, CN=Iryna Brouckaert (Signature), C=BE", si.Signatures[1].SignerSubject, "Signature 2: SignerSubject (DSS notation)"); Assert.AreEqual("SERIALNUMBER=83121034221, G=Iryna, SN=Brouckaert, CN=Iryna Brouckaert (Signature), C=BE", si.Signatures[1].Signer.Subject, "Signature 2: Signer.Subject (Windows notation)"); Assert.AreEqual(new DateTime(2014, 9, 23, 20, 53, 18, DateTimeKind.Local), si.Signatures[1].SigningTime, "Signature 2: SigningTime"); Assert.AreEqual("Ik verklaar dat de inhoud van dit document nauwkeurig en volledig is", si.Signatures[1].SignerRole, "Signature 2: SignerRole"); Assert.AreEqual("Denderleeuw", si.Signatures[1].SignatureProductionPlace, "Signature 1: SignatureProductionPlace"); //Validate signature 2 Assert.AreEqual("SERIALNUMBER=79021802145, GIVENNAME=Bryan Eduard, SURNAME=Brouckaert, CN=Bryan Brouckaert (Signature), C=BE", si.Signatures[0].SignerSubject, "Signature 1: SignerSubject (DSS notation)"); Assert.AreEqual("SERIALNUMBER=79021802145, G=Bryan Eduard, SN=Brouckaert, CN=Bryan Brouckaert (Signature), C=BE", si.Signatures[0].Signer.Subject, "Signature 1: Signer.Subject (Windows notation)"); Assert.AreEqual(new DateTime(2014, 9, 23, 20, 11, 34, DateTimeKind.Local), si.Signatures[0].SigningTime, "Signature 1: SigningTime"); Assert.AreEqual("Zaakvoerder", si.Signatures[0].SignerRole, "Signature 1: SignerRole"); Assert.AreEqual("Denderleeuw", si.Signatures[0].SignatureProductionPlace, "Signature 1: SignatureProductionPlace"); //Validate timestamp validity Assert.AreEqual(new DateTime(2019, 1, 23, 11, 0, 0, DateTimeKind.Utc), si.TimeStampValidity, "TimeStampValidity"); }
/// <summary> /// Validates the provided document via the e-contract service, asynchronously. /// </summary> /// <see cref="Verify"/> public async Task<SecurityInfo> VerifyAsync(Document document) { if (document == null) throw new ArgumentNullException("document"); var client = CreateDSSPClient(); var request = CreateVerifyRequest(document); verifyResponse responseWrapper = await client.verifyAsync(request); return ProcessVerifyResponse(responseWrapper.VerifyResponse1); }
protected void Page_Load(object sender, EventArgs e) { Document document = new Document(); document.MimeType = "application/pdf"; document.Content = File.OpenRead(Path.Combine(HostingEnvironment.ApplicationPhysicalPath, @"App_Data\dssp-specs.pdf")); DsspClient dsspClient = new DsspClient("https://www.e-contract.be/dss-ws/dss"); dsspClient.ApplicationName = Settings.Default.AppName; dsspClient.ApplicationPassword = Settings.Default.AppPwd; DsspSession dsspSession = dsspClient.UploadDocument(document); Session["dsspSession"] = dsspSession; VisibleSignatureProperties visibleSignature = null; if (Session["Visible"] == "Photo") { visibleSignature = new ImageVisibleSignature() { Page = (int) Session["Page"], X = (int) Session["X"], Y = (int) Session["Y"] }; } else if (Session["Visible"] == "Photo and Signer Info") { visibleSignature = new ImageVisibleSignature() { Page = (int)Session["Page"], X = (int)Session["X"], Y = (int)Session["Y"], ValueUri = "urn:be:e-contract:dssp:1.0:vs:si:eid-photo:signer-info", CustomText = (string)Session["CustomText"] }; } // verify whether DsspSession is serializable BinaryFormatter binaryFormatter = new BinaryFormatter(); MemoryStream memoryStream = new MemoryStream(); binaryFormatter.Serialize(memoryStream, dsspSession); memoryStream.Seek(0, SeekOrigin.Begin); dsspSession = (DsspSession) binaryFormatter.Deserialize(memoryStream); Authorization authorization = new Authorization(); //authorization.AddAuthorizedCardNumber("591937284531"); //authorization.AddAuthorizedSubjectName("SERIALNUMBER=79102520991, GIVENNAME=Frank Henri, SURNAME=Cornelis, CN=Frank Cornelis (Signature), C=BE"); //authorization.AddNonAuthorizedSubjectName("SERIALNUMBER=79102520991, GIVENNAME=Frank Henri, SURNAME=Cornelis, CN=Frank Cornelis (Signature), C=BE"); this.PendingRequest.Value = dsspSession.GeneratePendingRequest( new Uri(Request.Url, ResolveUrl("~/Signed.aspx")), Settings.Default.Language, new SignatureRequestProperties() { SignerRole = (string)Session["Role"], SignatureProductionPlace = (string)Session["Location"], VisibleSignature = visibleSignature }, authorization ); }
/// <summary> /// Uploads a document to e-Contract, asynchronously. /// </summary> /// <see cref="UploadDocument"/> public async Task<DsspSession> UploadDocumentAsync(Document document) { byte[] clientNonce; if (document == null) throw new ArgumentNullException("document"); var client = CreateDSSPClient(); var request = CreateSignRequest(document, out clientNonce); signResponse1 responseWrapper = await client.signAsync(request); return ProcessSignResponse(responseWrapper.SignResponse, clientNonce); }
public void AnomClientPdfNoSignSync() { //Use alternative ways to specify URL DsspClient dsspClient = new DsspClient(new EndpointAddress("https://www.e-contract.be/dss-ws/dss")); Document d = new Document("application/pdf", File.OpenRead("Blank.pdf")); SecurityInfo si = dsspClient.Verify(d); //Validate lack of signature Assert.IsNull(si, "Verify must return null"); }
public Document ToDocument() { Document d = new Document(); d.MimeType = "application/pdf"; if (this.Content == null) { this.Content = File.OpenRead(Path.Combine(HostingEnvironment.ApplicationPhysicalPath, @"App_Data\" + this.Name)); } else { this.Content.Seek(0, SeekOrigin.Begin); } d.Content = this.Content; return d; }
public void AuthClientPdfSingleSignSync() { DsspClient dsspClient = new DsspClient("https://www.e-contract.be/dss-ws/dss"); dsspClient.ApplicationName = "egelke"; dsspClient.ApplicationPassword = "******"; Document d = new Document("application/pdf", File.OpenRead("Signed.pdf")); SecurityInfo si = dsspClient.Verify(d); Assert.AreEqual(1, si.Signatures.Count, "Signature Count"); //Validate signature 1 Assert.AreEqual("SERIALNUMBER=79021802145, GIVENNAME=Bryan Eduard, SURNAME=Brouckaert, CN=Bryan Brouckaert (Signature), C=BE", si.Signatures[0].SignerSubject, "Signature 1: SignerSubject (DSS notation)"); Assert.AreEqual("SERIALNUMBER=79021802145, G=Bryan Eduard, SN=Brouckaert, CN=Bryan Brouckaert (Signature), C=BE", si.Signatures[0].Signer.Subject, "Signature 1: Signer.Subject (Windows notation)"); Assert.AreEqual(new DateTime(2014, 9, 23, 20, 11, 34, DateTimeKind.Local), si.Signatures[0].SigningTime, "Signature 1: SigningTime"); Assert.AreEqual("Zaakvoerder", si.Signatures[0].SignerRole, "Signature 1: SignerRole"); Assert.AreEqual("Denderleeuw", si.Signatures[0].SignatureProductionPlace, "Signature 1: SignatureProductionPlace"); //Validate timestamp validity Assert.AreEqual(new DateTime(2019, 1, 23, 11, 0, 0, DateTimeKind.Utc), si.TimeStampValidity, "TimeStampValidity"); }
public void AnomClientXmlSingleSignSync() { DsspClient dsspClient = new DsspClient("https://www.e-contract.be/dss-ws/dss"); Document d = new Document("text/xml", File.OpenRead("Signed.xml")); SecurityInfo si = dsspClient.Verify(d); Assert.AreEqual(1, si.Signatures.Count, "Signature Count"); //Validate signature 1 Assert.AreEqual("SERIALNUMBER=79021802145, GIVENNAME=Bryan Eduard, SURNAME=Brouckaert, CN=Bryan Brouckaert (Signature), C=BE", si.Signatures[0].SignerSubject, "Signature 1: SignerSubject (DSS notation)"); Assert.AreEqual("SERIALNUMBER=79021802145, G=Bryan Eduard, SN=Brouckaert, CN=Bryan Brouckaert (Signature), C=BE", si.Signatures[0].Signer.Subject, "Signature 1: Signer.Subject (Windows notation)"); Assert.AreEqual(new DateTime(2014, 9, 23, 21, 26, 01, DateTimeKind.Local), si.Signatures[0].SigningTime, "Signature 1: SigningTime"); Assert.IsNull(si.Signatures[0].SignerRole, "Signature 1: SignerRole"); Assert.IsNull(si.Signatures[0].SignatureProductionPlace, "Signature 1: SignatureProductionPlace"); //Validate timestamp validity Assert.AreEqual(new DateTime(2019, 1, 23, 11, 0, 0, DateTimeKind.Utc), si.TimeStampValidity, "TimeStampValidity"); }
public void AnomClientPdfSingleSignSync() { //Specify signature type, which isn't used here DsspClient dsspClient = new DsspClient(new EndpointAddress("https://www.e-contract.be/dss-ws/dss"), "urn:be:e-contract:dssp:signature:pades-baseline"); Document d = new Document("application/pdf", File.OpenRead("Signed.pdf")); SecurityInfo si = dsspClient.Verify(d); Assert.AreEqual(1, si.Signatures.Count, "Signature Count"); //Validate signature 1 Assert.AreEqual("SERIALNUMBER=79021802145, GIVENNAME=Bryan Eduard, SURNAME=Brouckaert, CN=Bryan Brouckaert (Signature), C=BE", si.Signatures[0].SignerSubject, "Signature 1: SignerSubject (DSS notation)"); Assert.AreEqual("SERIALNUMBER=79021802145, G=Bryan Eduard, SN=Brouckaert, CN=Bryan Brouckaert (Signature), C=BE", si.Signatures[0].Signer.Subject, "Signature 1: Signer.Subject (Windows notation)"); Assert.AreEqual(new DateTime(2014, 9, 23, 20, 11, 34, DateTimeKind.Local), si.Signatures[0].SigningTime, "Signature 1: SigningTime"); Assert.AreEqual("Zaakvoerder", si.Signatures[0].SignerRole, "Signature 1: SignerRole"); Assert.AreEqual("Denderleeuw", si.Signatures[0].SignatureProductionPlace, "Signature 1: SignatureProductionPlace"); //Validate timestamp validity Assert.AreEqual(new DateTime(2019, 1, 23, 11, 0, 0, DateTimeKind.Utc), si.TimeStampValidity, "TimeStampValidity"); }