From 574e4610ebf6b7577dd08a78fe440614d4a28c74 Mon Sep 17 00:00:00 2001 From: Srihariharan Date: Wed, 11 Sep 2024 09:31:28 +0530 Subject: [PATCH] 908771_ug: volume 3 UG documentations revamped samples. --- .../Data/Input.pdf | Bin 17052 -> 23500 bytes .../Program.cs | 31 ++--------- .../Enable-LTV-PDF-signature/Data/Input.pdf | Bin 0 -> 23500 bytes .../Enable-LTV-PDF-signature/Data/PDF.pfx | Bin 2843 -> 0 bytes .../Data/syncfusion_logo.png | Bin 21377 -> 0 bytes .../Enable-LTV-PDF-signature.csproj | 5 +- .../.NET/Enable-LTV-PDF-signature/Program.cs | 51 ++++-------------- 7 files changed, 14 insertions(+), 73 deletions(-) create mode 100644 Digital Signature/Enable-LTV-PDF-signature/.NET/Enable-LTV-PDF-signature/Data/Input.pdf delete mode 100644 Digital Signature/Enable-LTV-PDF-signature/.NET/Enable-LTV-PDF-signature/Data/PDF.pfx delete mode 100644 Digital Signature/Enable-LTV-PDF-signature/.NET/Enable-LTV-PDF-signature/Data/syncfusion_logo.png diff --git a/Digital Signature/Create-LTV-when-signing-PDF-documents-externally/.NET/Create-LTV-when-signing-PDF-documents-externally/Data/Input.pdf b/Digital Signature/Create-LTV-when-signing-PDF-documents-externally/.NET/Create-LTV-when-signing-PDF-documents-externally/Data/Input.pdf index 6d10bb53b5aa3b1945a209170f002cd98ac0b6f0..4de703acc7720b2d29908fe61bf42d6790431e1d 100644 GIT binary patch literal 23500 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 CLy9y2 diff --git a/Digital Signature/Create-LTV-when-signing-PDF-documents-externally/.NET/Create-LTV-when-signing-PDF-documents-externally/Program.cs b/Digital Signature/Create-LTV-when-signing-PDF-documents-externally/.NET/Create-LTV-when-signing-PDF-documents-externally/Program.cs index d18574ed..c6ad637e 100644 --- a/Digital Signature/Create-LTV-when-signing-PDF-documents-externally/.NET/Create-LTV-when-signing-PDF-documents-externally/Program.cs +++ b/Digital Signature/Create-LTV-when-signing-PDF-documents-externally/.NET/Create-LTV-when-signing-PDF-documents-externally/Program.cs @@ -13,14 +13,9 @@ //Load an existing PDF document. PdfLoadedDocument loadedDocument = new PdfLoadedDocument(documentStream); -//Get the page of the existing PDF document. -PdfLoadedPage loadedPage = loadedDocument.Pages[0] as PdfLoadedPage; - -//Create a new PDF signature without PdfCertificate instance. -PdfSignature signature = new PdfSignature(loadedDocument, loadedPage, null, "Signature1"); - -//Hook up the ComputeHash event. -signature.ComputeHash += Signature_ComputeHash; +//Gets the first signature field of the PDF document +PdfLoadedSignatureField signatureField = loadedDocument.Form.Fields[0] as PdfLoadedSignatureField; +PdfSignature signature = signatureField.Signature; //Create X509Certificate2 from your certificate to create a long-term validity. X509Certificate2 x509 = new X509Certificate2(Path.GetFullPath(@"Data/PDF.pfx"), "syncfusion"); @@ -37,23 +32,3 @@ //Close the document. loadedDocument.Close(true); - -void Signature_ComputeHash(object sender, PdfSignatureEventArgs ars) -{ - //Get the document bytes - byte[] documentBytes = ars.Data; - - SignedCms signedCms = new SignedCms(new ContentInfo(documentBytes), detached: true); - - //Compute the signature using the specified digital ID file and the password - X509Certificate2 certificate = new X509Certificate2(Path.GetFullPath(@"Data/PDF.pfx"), "syncfusion"); - CmsSigner cmsSigner = new CmsSigner(certificate); - - //Set the digest algorithm SHA256 - cmsSigner.DigestAlgorithm = new Oid("2.16.840.1.101.3.4.2.1"); - - signedCms.ComputeSignature(cmsSigner); - - //Embed the encoded digital signature to the PDF document - ars.SignedData = signedCms.Encode(); -} diff --git a/Digital Signature/Enable-LTV-PDF-signature/.NET/Enable-LTV-PDF-signature/Data/Input.pdf b/Digital Signature/Enable-LTV-PDF-signature/.NET/Enable-LTV-PDF-signature/Data/Input.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4de703acc7720b2d29908fe61bf42d6790431e1d GIT binary patch literal 23500 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 - - Always - - + Always diff --git a/Digital Signature/Enable-LTV-PDF-signature/.NET/Enable-LTV-PDF-signature/Program.cs b/Digital Signature/Enable-LTV-PDF-signature/.NET/Enable-LTV-PDF-signature/Program.cs index 18652d89..ef88225e 100644 --- a/Digital Signature/Enable-LTV-PDF-signature/.NET/Enable-LTV-PDF-signature/Program.cs +++ b/Digital Signature/Enable-LTV-PDF-signature/.NET/Enable-LTV-PDF-signature/Program.cs @@ -1,57 +1,26 @@ // See https://aka.ms/new-console-template for more information -using Syncfusion.Drawing; -using Syncfusion.Pdf; -using Syncfusion.Pdf.Graphics; +using Syncfusion.Pdf.Parsing; using Syncfusion.Pdf.Security; -//Creates a new PDF document. -PdfDocument document = new PdfDocument(); - -//Adds a new page. -PdfPageBase page = document.Pages.Add(); - -//Create graphics for the page. -PdfGraphics graphics = page.Graphics; - -//Creates a certificate instance from PFX file with private key. -FileStream certificateStream = new FileStream(Path.GetFullPath(@"Data/PDF.pfx"), FileMode.Open, FileAccess.Read); -PdfCertificate pdfCert = new PdfCertificate(certificateStream, "DigitalPass123"); - -//Creates a digital signature. -PdfSignature signature = new PdfSignature(document, page, pdfCert, "Signature"); -signature.Settings.CryptographicStandard = CryptographicStandard.CADES; -signature.Settings.DigestAlgorithm = DigestAlgorithm.SHA256; - - -//Sets an image for signature field. -FileStream imageStream = new FileStream(Path.GetFullPath(@"Data/syncfusion_logo.png"), FileMode.Open, FileAccess.Read); - -//Sets an image for signature field. -PdfBitmap image = new PdfBitmap(imageStream); - -//Adds time stamp by using the server URI and credentials. -signature.TimeStampServer = new TimeStampServer(new Uri("http://time.certum.pl/ ")); +//Get the stream from the document. +FileStream documentStream = new FileStream(Path.GetFullPath(@"Data/Input.pdf"), FileMode.Open, FileAccess.Read); +//Load an existing PDF document. +PdfLoadedDocument loadedDocument = new PdfLoadedDocument(documentStream); +//Gets the first signature field of the PDF document +PdfLoadedSignatureField signatureField = loadedDocument.Form.Fields[0] as PdfLoadedSignatureField; +PdfSignature signature = signatureField.Signature; //Enable LTV on Signature. signature.EnableLtv = true; -//Sets signature info. -signature.Bounds = new RectangleF(new PointF(0, 0), image.PhysicalDimension); -signature.ContactInfo = "johndoe@owned.us"; -signature.LocationInfo = "Honolulu, Hawaii"; -signature.Reason = "I am author of this document."; - -//Draws the signature image. -signature.Appearance.Normal.Graphics.DrawImage(image, 0, 0); - //Create file stream. using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"Output/Output.pdf"), FileMode.Create, FileAccess.ReadWrite)) { //Save the PDF document to file stream. - document.Save(outputFileStream); + loadedDocument.Save(outputFileStream); } //Close the document. -document.Close(true); +loadedDocument.Close(true);