public void EncryptedHtml() { //ExStart //ExFor:HtmlLoadOptions.#ctor(String) //ExSummary:Shows how to encrypt an Html document and then open it using a password. // Create and sign an encrypted html document from an encrypted .docx CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); SignOptions signOptions = new SignOptions { Comments = "Comment", SignTime = DateTime.Now, DecryptionPassword = "******" }; string inputFileName = MyDir + "Encrypted.docx"; string outputFileName = ArtifactsDir + "HtmlLoadOptions.EncryptedHtml.html"; DigitalSignatureUtil.Sign(inputFileName, outputFileName, certificateHolder, signOptions); // This .html document will need a password to be decrypted, opened and have its contents accessed // The password is specified by HtmlLoadOptions.Password HtmlLoadOptions loadOptions = new HtmlLoadOptions("docPassword"); Assert.AreEqual(signOptions.DecryptionPassword, loadOptions.Password); Document doc = new Document(outputFileName, loadOptions); Assert.AreEqual("Test encrypted document.", doc.GetText().Trim()); //ExEnd }
public void SignDocument() { //ExStart //ExFor:CertificateHolder //ExFor:CertificateHolder.Create(String, String) //ExFor:DigitalSignatureUtil.Sign(Stream, Stream, CertificateHolder, SignOptions) //ExFor:SignOptions.Comments //ExFor:SignOptions.SignTime //ExSummary:Shows how to sign documents using certificate holder and sign options. CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); SignOptions signOptions = new SignOptions { Comments = "My comment", SignTime = DateTime.Now }; Stream streamIn = new FileStream(MyDir + "Document.DigitalSignature.docx", FileMode.Open); Stream streamOut = new FileStream(MyDir + @"\Artifacts\Document.DigitalSignature.docx", FileMode.OpenOrCreate); DigitalSignatureUtil.Sign(streamIn, streamOut, certificateHolder, signOptions); //ExEnd streamIn.Dispose(); streamOut.Dispose(); }
/// <summary> /// Signs the document obtained at the source location and saves it to the specified destination. /// </summary> private static void SignDocument(string srcDocumentPath, string dstDocumentPath, SignPersonTestClass signPersonInfo, string certificatePath, string certificatePassword) { // Create new document instance based on a test file that we need to sign. Document document = new Document(srcDocumentPath); DocumentBuilder builder = new DocumentBuilder(document); // Add info about responsible person who sign a document. SignatureLineOptions signatureLineOptions = new SignatureLineOptions { Signer = signPersonInfo.Name, SignerTitle = signPersonInfo.Position }; // Add signature line for responsible person who sign a document. SignatureLine signatureLine = builder.InsertSignatureLine(signatureLineOptions).SignatureLine; signatureLine.Id = signPersonInfo.PersonId; // Save a document with line signatures into temporary file for future signing. builder.Document.Save(dstDocumentPath); // Create holder of certificate instance based on your personal certificate. // This is the test certificate generated for this example. CertificateHolder certificateHolder = CertificateHolder.Create(certificatePath, certificatePassword); // Link our signature line with personal signature. SignOptions signOptions = new SignOptions { SignatureLineId = signPersonInfo.PersonId, SignatureLineImage = signPersonInfo.Image }; // Sign a document which contains signature line with personal certificate. DigitalSignatureUtil.Sign(dstDocumentPath, dstDocumentPath, certificateHolder, signOptions); }
/// <summary> /// Creates a copy of a source document signed using provided signee information and X509 certificate. /// </summary> private static void SignDocument(string srcDocumentPath, string dstDocumentPath, Signee signeeInfo, string certificatePath, string certificatePassword) { Document document = new Document(srcDocumentPath); DocumentBuilder builder = new DocumentBuilder(document); // Configure and insert a signature line, an object in the document that will display a signature that we sign it with. SignatureLineOptions signatureLineOptions = new SignatureLineOptions { Signer = signeeInfo.Name, SignerTitle = signeeInfo.Position }; SignatureLine signatureLine = builder.InsertSignatureLine(signatureLineOptions).SignatureLine; signatureLine.Id = signeeInfo.PersonId; // First, we will save an unsigned version of our document. builder.Document.Save(dstDocumentPath); CertificateHolder certificateHolder = CertificateHolder.Create(certificatePath, certificatePassword); SignOptions signOptions = new SignOptions { SignatureLineId = signeeInfo.PersonId, SignatureLineImage = signeeInfo.Image }; // Overwrite the unsigned document we saved above with a version signed using the certificate. DigitalSignatureUtil.Sign(dstDocumentPath, dstDocumentPath, certificateHolder, signOptions); }
public void DetectDigitalSignatures() { //ExStart //ExFor:FileFormatUtil.DetectFileFormat(String) //ExFor:FileFormatInfo //ExFor:FileFormatInfo.LoadFormat //ExFor:FileFormatInfo.HasDigitalSignature //ExSummary:Shows how to use the FileFormatUtil class to detect the document format and presence of digital signatures. // Use a FileFormatInfo instance to verify that a document is not digitally signed. FileFormatInfo info = FileFormatUtil.DetectFileFormat(MyDir + "Document.docx"); Assert.AreEqual(".docx", FileFormatUtil.LoadFormatToExtension(info.LoadFormat)); Assert.False(info.HasDigitalSignature); CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null); DigitalSignatureUtil.Sign(MyDir + "Document.docx", ArtifactsDir + "File.DetectDigitalSignatures.docx", certificateHolder, new SignOptions() { SignTime = DateTime.Now }); // Use a new FileFormatInstance to confirm that it is signed. info = FileFormatUtil.DetectFileFormat(ArtifactsDir + "File.DetectDigitalSignatures.docx"); Assert.True(info.HasDigitalSignature); // We can load and access the signatures of a signed document in a collection like this. Assert.AreEqual(1, DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "File.DetectDigitalSignatures.docx").Count); //ExEnd }
public void EncryptedHtml() { //ExStart //ExFor:HtmlLoadOptions.#ctor(String) //ExSummary:Shows how to encrypt an Html document, and then open it using a password. // Create and sign an encrypted HTML document from an encrypted .docx. CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); SignOptions signOptions = new SignOptions { Comments = "Comment", SignTime = DateTime.Now, DecryptionPassword = "******" }; string inputFileName = MyDir + "Encrypted.docx"; string outputFileName = ArtifactsDir + "HtmlLoadOptions.EncryptedHtml.html"; DigitalSignatureUtil.Sign(inputFileName, outputFileName, certificateHolder, signOptions); // To load and read this document, we will need to pass its decryption // password using a HtmlLoadOptions object. HtmlLoadOptions loadOptions = new HtmlLoadOptions("docPassword"); Assert.AreEqual(signOptions.DecryptionPassword, loadOptions.Password); Document doc = new Document(outputFileName, loadOptions); Assert.AreEqual("Test encrypted document.", doc.GetText().Trim()); //ExEnd }
public void SingDocumentWithPasswordDecrypring() { //ExStart //ExFor:CertificateHolder //ExFor:SignOptions.DecryptionPassword //ExSummary:Shows how to sign encrypted document file. string outputFileName = ArtifactsDir + "Document.Encrypted.docx"; Document doc = new Document(MyDir + "Document.Encrypted.docx", new LoadOptions("docPassword")); // Create certificate holder from a file. CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); SignOptions signOptions = new SignOptions { Comments = "Comment", SignTime = DateTime.Now, DecryptionPassword = "******" }; // Digitally sign encrypted with "docPassword" document in the specified path. DigitalSignatureUtil.Sign(doc.OriginalFileName, outputFileName, certificateHolder, signOptions); //ExEnd // Open encrypted document from a file. Document signedDoc = new Document(outputFileName, new LoadOptions("docPassword")); // Check that encrypted document was successfully signed. DigitalSignatureCollection signatures = signedDoc.DigitalSignatures; if (signatures.IsValid && (signatures.Count > 0)) { Assert.Pass(); //The document was signed successfully } }
public void SingStreamDocumentWithPasswordDecrypring() { // Create certificate holder from a file. CertificateHolder ch = CertificateHolder.Create(MyDir + "certificate.pfx", "123456"); //By Stream Stream docInStream = new FileStream(MyDir + "Document.Encrypted.docx", FileMode.Open); Stream docOutStream = new FileStream(MyDir + @"\Artifacts\Document.Encrypted.docx", FileMode.OpenOrCreate); // Digitally sign encrypted with "docPassword" document in the specified path. DigitalSignatureUtil.Sign(docInStream, docOutStream, ch, "Comment", DateTime.Now, "docPassword"); // Open encrypted document from a file. Document signedDoc = new Document(docOutStream, new LoadOptions("docPassword")); // Check that encrypted document was successfully signed. DigitalSignatureCollection signatures = signedDoc.DigitalSignatures; if (signatures.IsValid && (signatures.Count > 0)) { docInStream.Dispose(); docOutStream.Dispose(); Assert.Pass(); //The document was signed successfully } }
public void SingDocumentWithPasswordDecrypring() { //ExStart //ExFor:DigitalSignatureUtil.Sign(String, String, CertificateHolder, String, DateTime) //ExFor:DigitalSignatureUtil.Sign(Stream, Stream, CertificateHolder, String, DateTime) //ExSummary:Shows how to sign encrypted documents // Create certificate holder from a file. CertificateHolder ch = CertificateHolder.Create(MyDir + "certificate.pfx", "123456"); //ByDocument Document doc = new Document(MyDir + "Document.Encrypted.docx", new LoadOptions("docPassword")); string outputDocFileName = MyDir + @"\Artifacts\Document.Encrypted.docx"; // Digitally sign encrypted with "docPassword" document in the specified path. DigitalSignatureUtil.Sign(doc.OriginalFileName, outputDocFileName, ch, "Comment", DateTime.Now, "docPassword"); // Open encrypted document from a file. Document signedDoc = new Document(outputDocFileName, new LoadOptions("docPassword")); // Check that encrypted document was successfully signed. DigitalSignatureCollection signatures = signedDoc.DigitalSignatures; if (signatures.IsValid && (signatures.Count > 0)) { Assert.Pass(); //The document was signed successfully } }
public void SignDocument() { //ExStart:SingDocument CertificateHolder certHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); DigitalSignatureUtil.Sign(MyDir + "Digitally signed.docx", ArtifactsDir + "Document.Signed.docx", certHolder); //ExEnd:SingDocument }
public static void SimpleDocumentSigning(String dataDir) { // ExStart:SimpleDocumentSigning CertificateHolder certHolder = CertificateHolder.Create(dataDir + "signature.pfx", "signature"); DigitalSignatureUtil.Sign(dataDir + "Document.Signed.docx", dataDir + "Document.Signed_out.docx", certHolder); // ExEnd:SimpleDocumentSigning Console.WriteLine("\nDocument is signed successfully.\nFile saved at " + dataDir + "Document.Signed_out.docx"); }
public void IncorrectPasswordForDecrypring() { CertificateHolder ch = CertificateHolder.Create(MyDir + "certificate.pfx", "123456"); //ByDocument Document doc = new Document(MyDir + "Document.Encrypted.docx", new LoadOptions("docPassword")); string outputDocFileName = MyDir + @"\Artifacts\Document.Encrypted.docx"; // Digitally sign encrypted with "docPassword" document in the specified path. DigitalSignatureUtil.Sign(doc.OriginalFileName, outputDocFileName, ch, "Comment", DateTime.Now, "docPassword1"); }
public void SignDocumentObfuscationBug() { CertificateHolder ch = CertificateHolder.Create(File.ReadAllBytes(MyDir + "morzal.pfx"), "aw"); Document doc = new Document(MyDir + "Structured document tags.docx"); string outputFileName = ArtifactsDir + "DigitalSignatureUtil.SignDocumentObfuscationBug.doc"; SignOptions signOptions = new SignOptions { Comments = "Comment", SignTime = DateTime.Now }; DigitalSignatureUtil.Sign(doc.OriginalFileName, outputFileName, ch, signOptions); }
public void SigningEncryptedDocument() { //ExStart:SigningEncryptedDocument SignOptions signOptions = new SignOptions { DecryptionPassword = "******" }; CertificateHolder certHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); DigitalSignatureUtil.Sign(MyDir + "Digitally signed.docx", ArtifactsDir + "Document.EncryptedDocument.docx", certHolder, signOptions); //ExEnd:SigningEncryptedDocument }
public void SignDocumentObfuscationBug() { CertificateHolder ch = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); Document doc = new Document(MyDir + "TestRepeatingSection.docx"); string outputFileName = ArtifactsDir + "TestRepeatingSection.Signed.doc"; SignOptions signOptions = new SignOptions { Comments = "Comment", SignTime = DateTime.Now }; DigitalSignatureUtil.Sign(doc.OriginalFileName, outputFileName, ch, signOptions); }
public static void SigningEncryptedDocument(String dataDir) { // ExStart:SigningEncryptedDocument SignOptions signOptions = new SignOptions(); signOptions.DecryptionPassword = "******"; CertificateHolder certHolder = CertificateHolder.Create(dataDir + "signature.pfx", "signature"); DigitalSignatureUtil.Sign(dataDir + "Document.Signed.docx", dataDir + "Document.EncryptedDocument_out.docx", certHolder, signOptions); // ExEnd:SigningEncryptedDocument Console.WriteLine("\nDocument is signed with successfully.\nFile saved at " + dataDir + "Document.EncryptedDocument_out.docx"); }
public void IncorrectPasswordForDecrypring() { CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); Document doc = new Document(MyDir + "Document.Encrypted.docx", new LoadOptions("docPassword")); string outputFileName = MyDir + @"\Artifacts\Document.Encrypted.docx"; SignOptions signOptions = new SignOptions { Comments = "Comment", SignTime = DateTime.Now, DecryptionPassword = "******" }; // Digitally sign encrypted with "docPassword" document in the specified path. Assert.That(() => DigitalSignatureUtil.Sign(doc.OriginalFileName, outputFileName, certificateHolder, signOptions), Throws.TypeOf <IncorrectPasswordException>(), "The document password is incorrect."); }
public static void SigningExistingSignatureLine(String dataDir) { // ExStart:SigningExistingSignatureLine Document doc = new Document(dataDir + "Document.Signed.docx"); SignatureLine signatureLine = ((Shape)doc.FirstSection.Body.GetChild(NodeType.Shape, 0, true)).SignatureLine; SignOptions signOptions = new SignOptions(); signOptions.SignatureLineId = signatureLine.Id; signOptions.SignatureLineImage = File.ReadAllBytes(dataDir + "SignatureImage.emf"); CertificateHolder certHolder = CertificateHolder.Create(dataDir + "signature.pfx", "signature"); DigitalSignatureUtil.Sign(dataDir + "Document.Signed.docx", dataDir + "Document.Signed.ExistingSignatureLine.docx", certHolder, signOptions); // ExEnd:SigningExistingSignatureLine Console.WriteLine("\nDocument is signed with existing SignatureLine successfully.\nFile saved at " + dataDir + "Document.Signed.ExistingSignatureLine.docx"); }
public void DigitallySignedPdfUsingCertificateHolder() { //ExStart:DigitallySignedPdfUsingCertificateHolder Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.Writeln("Test Signed PDF."); PdfSaveOptions saveOptions = new PdfSaveOptions { DigitalSignatureDetails = new PdfDigitalSignatureDetails( CertificateHolder.Create(MyDir + "morzal.pfx", "aw"), "reason", "location", DateTime.Now) }; doc.Save(ArtifactsDir + "WorkingWithPdfSaveOptions.DigitallySignedPdfUsingCertificateHolder.pdf", saveOptions); //ExEnd:DigitallySignedPdfUsingCertificateHolder }
public void Create() { //ExStart //ExFor:CertificateHolder.Create(Byte[], SecureString) //ExFor:CertificateHolder.Create(Byte[], String) //ExFor:CertificateHolder.Create(String, String, String) //ExSummary:Shows how to create CertificateHolder objects. // Below are four ways of creating CertificateHolder objects. // 1 - Load a PKCS #12 file into a byte array and apply its password: byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx"); CertificateHolder.Create(certBytes, "aw"); // 2 - Load a PKCS #12 file into a byte array, and apply a secure password: SecureString password = new NetworkCredential("", "aw").SecurePassword; CertificateHolder.Create(certBytes, password); // If the certificate has private keys corresponding to aliases, // we can use the aliases to fetch their respective keys. First, we will check for valid aliases. using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open)) { Pkcs12Store pkcs12Store = new Pkcs12Store(certStream, "aw".ToCharArray()); IEnumerator enumerator = pkcs12Store.Aliases.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current != null) { string currentAlias = enumerator.Current.ToString(); if (pkcs12Store.IsKeyEntry(currentAlias) && pkcs12Store.GetKey(currentAlias).Key.IsPrivate) { Console.WriteLine($"Valid alias found: {enumerator.Current}"); } } } } // 3 - Use a valid alias: CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24"); // 4 - Pass "null" as the alias in order to use the first available alias that returns a private key: CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null); //ExEnd }
public void PdfDigitalSignatureTimestamp() { //ExStart //ExFor:PdfDigitalSignatureDetails.TimestampSettings //ExFor:PdfDigitalSignatureTimestampSettings //ExFor:PdfDigitalSignatureTimestampSettings.#ctor //ExFor:PdfDigitalSignatureTimestampSettings.#ctor(String,String,String) //ExFor:PdfDigitalSignatureTimestampSettings.#ctor(String,String,String,TimeSpan) //ExFor:PdfDigitalSignatureTimestampSettings.Password //ExFor:PdfDigitalSignatureTimestampSettings.ServerUrl //ExFor:PdfDigitalSignatureTimestampSettings.Timeout //ExFor:PdfDigitalSignatureTimestampSettings.UserName //ExSummary:Shows how to sign a generated PDF and timestamp it using Aspose.Words. Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.Writeln("Signed PDF contents."); // Create a digital signature for the document that we will save CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); PdfSaveOptions options = new PdfSaveOptions(); options.DigitalSignatureDetails = new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "Aspose Office", DateTime.Now); // We can set a verified timestamp for our signature as well, with a valid timestamp authority options.DigitalSignatureDetails.TimestampSettings = new PdfDigitalSignatureTimestampSettings("https://freetsa.org/tsr", "JohnDoe", "MyPassword"); // The default lifespan of the timestamp is 100 seconds Assert.AreEqual(100.0d, options.DigitalSignatureDetails.TimestampSettings.Timeout.TotalSeconds); // We can set our own timeout period via the constructor options.DigitalSignatureDetails.TimestampSettings = new PdfDigitalSignatureTimestampSettings("https://freetsa.org/tsr", "JohnDoe", "MyPassword", TimeSpan.FromMinutes(30)); Assert.AreEqual(1800.0d, options.DigitalSignatureDetails.TimestampSettings.Timeout.TotalSeconds); Assert.AreEqual("https://freetsa.org/tsr", options.DigitalSignatureDetails.TimestampSettings.ServerUrl); Assert.AreEqual("JohnDoe", options.DigitalSignatureDetails.TimestampSettings.UserName); Assert.AreEqual("MyPassword", options.DigitalSignatureDetails.TimestampSettings.Password); doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignatureTimestamp.pdf"); //ExEnd }
public void SetSignatureProviderId() { //ExStart:SetSignatureProviderID Document doc = new Document(MyDir + "Signature line.docx"); SignatureLine signatureLine = ((Shape)doc.FirstSection.Body.GetChild(NodeType.Shape, 0, true)).SignatureLine; SignOptions signOptions = new SignOptions { ProviderId = signatureLine.ProviderId, SignatureLineId = signatureLine.Id }; CertificateHolder certHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); DigitalSignatureUtil.Sign(MyDir + "Digitally signed.docx", ArtifactsDir + "SignDocuments.SetSignatureProviderId.docx", certHolder, signOptions); //ExEnd:SetSignatureProviderID }
public void SignDocument() { //ExStart //ExFor:CertificateHolder //ExFor:CertificateHolder.Create(String, String) //ExFor:DigitalSignatureUtil.Sign(Stream, Stream, CertificateHolder, SignOptions) //ExFor:SignOptions.Comments //ExFor:SignOptions.SignTime //ExSummary:Shows how to digitally sign documents. // Create an X.509 certificate from a PKCS#12 store, which should contain a private key. CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); // Create a comment and date which will be applied with our new digital signature. SignOptions signOptions = new SignOptions { Comments = "My comment", SignTime = DateTime.Now }; // Take an unsigned document from the local file system via a file stream, // then create a signed copy of it determined by the filename of the output file stream. using (Stream streamIn = new FileStream(MyDir + "Document.docx", FileMode.Open)) { using (Stream streamOut = new FileStream(ArtifactsDir + "DigitalSignatureUtil.SignDocument.docx", FileMode.OpenOrCreate)) { DigitalSignatureUtil.Sign(streamIn, streamOut, certificateHolder, signOptions); } } //ExEnd using (Stream stream = new FileStream(ArtifactsDir + "DigitalSignatureUtil.SignDocument.docx", FileMode.Open)) { DigitalSignatureCollection digitalSignatures = DigitalSignatureUtil.LoadSignatures(stream); Assert.AreEqual(1, digitalSignatures.Count); DigitalSignature signature = digitalSignatures[0]; Assert.True(signature.IsValid); Assert.AreEqual(DigitalSignatureType.XmlDsig, signature.SignatureType); Assert.AreEqual(signOptions.SignTime.ToString(), signature.SignTime.ToString()); Assert.AreEqual("My comment", signature.Comments); } }
public void Create() { //ExStart //ExFor:CertificateHolder.Create(Byte[], SecureString) //ExFor:CertificateHolder.Create(Byte[], String) //ExFor:CertificateHolder.Create(String, String, String) //ExSummary:Shows how to create CertificateHolder objects. // Load a PKCS #12 file into a byte array and apply its password to create the CertificateHolder byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx"); CertificateHolder.Create(certBytes, "aw"); // Pass a SecureString which contains the password instead of a normal string SecureString password = new NetworkCredential("", "aw").SecurePassword; CertificateHolder.Create(certBytes, password); // If the certificate has private keys corresponding to aliases, we can use the aliases to fetch their respective keys // First, we will check for valid aliases like this using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open)) { Pkcs12Store pkcs12Store = new Pkcs12Store(certStream, "aw".ToCharArray()); IEnumerator enumerator = pkcs12Store.Aliases.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current != null) { string currentAlias = enumerator.Current.ToString(); if (pkcs12Store.IsKeyEntry(currentAlias) && pkcs12Store.GetKey(currentAlias).Key.IsPrivate) { Console.WriteLine($"Valid alias found: {enumerator.Current}"); } } } } // For this file, we will use an alias found above CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24"); // If we leave the alias null, then the first possible alias that retrieves a private key will be used CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null); //ExEnd }
public void SigningExistingSignatureLine() { //ExStart:SigningExistingSignatureLine Document doc = new Document(MyDir + "Signature line.docx"); SignatureLine signatureLine = ((Shape)doc.FirstSection.Body.GetChild(NodeType.Shape, 0, true)).SignatureLine; SignOptions signOptions = new SignOptions { SignatureLineId = signatureLine.Id, SignatureLineImage = File.ReadAllBytes(ImagesDir + "Enhanced Windows MetaFile.emf") }; CertificateHolder certHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); DigitalSignatureUtil.Sign(MyDir + "Digitally signed.docx", ArtifactsDir + "SignDocuments.SigningExistingSignatureLine.docx", certHolder, signOptions); //ExEnd:SigningExistingSignatureLine }
public void IncorrectDecryptionPassword() { CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); Document doc = new Document(MyDir + "Encrypted.docx", new LoadOptions("docPassword")); string outputFileName = ArtifactsDir + "DigitalSignatureUtil.IncorrectDecryptionPassword.docx"; SignOptions signOptions = new SignOptions { Comments = "Comment", SignTime = DateTime.Now, DecryptionPassword = "******" }; #if NET462 || NETCOREAPP2_1 || JAVA Assert.That( () => DigitalSignatureUtil.Sign(doc.OriginalFileName, outputFileName, certificateHolder, signOptions), Throws.TypeOf <IncorrectPasswordException>(), "The document password is incorrect."); #endif }
public static void SetSignatureProviderID(String dataDir) { // ExStart:SetSignatureProviderID Document doc = new Document(dataDir + "Document.Signed.docx"); SignatureLine signatureLine = ((Shape)doc.FirstSection.Body.GetChild(NodeType.Shape, 0, true)).SignatureLine; //Set signature and signature line provider ID SignOptions signOptions = new SignOptions(); signOptions.ProviderId = signatureLine.ProviderId; signOptions.SignatureLineId = signatureLine.Id; CertificateHolder certHolder = CertificateHolder.Create(dataDir + "signature.pfx", "signature"); DigitalSignatureUtil.Sign(dataDir + "Document.Signed.docx", dataDir + "Document.Signed_out.docx", certHolder, signOptions); // ExEnd:SetSignatureProviderID Console.WriteLine("\nProvider ID of signature is set successfully.\nFile saved at " + dataDir + "Document.Signed_out.docx"); }
public static void Run() { // ExStart:DigitallySignedPdfUsingCertificateHolder // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); // Create a simple document from scratch. Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.Writeln("Test Signed PDF."); PdfSaveOptions options = new PdfSaveOptions(); options.DigitalSignatureDetails = new PdfDigitalSignatureDetails( CertificateHolder.Create(dataDir + "CioSrv1.pfx", "cinD96..arellA"), "reason", "location", DateTime.Now); doc.Save(dataDir + @"DigitallySignedPdfUsingCertificateHolder.Signed_out.pdf", options); // ExEnd:DigitallySignedPdfUsingCertificateHolder Console.WriteLine("\nDigitally signed PDF file created successfully.\nFile saved at " + dataDir); }
public static void CreatingAndSigningNewSignatureLine(String dataDir) { // ExStart:CreatingAndSigningNewSignatureLine Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); SignatureLine signatureLine = builder.InsertSignatureLine(new SignatureLineOptions()).SignatureLine; doc.Save(dataDir + "Document.NewSignatureLine.docx"); SignOptions signOptions = new SignOptions(); signOptions.SignatureLineId = signatureLine.Id; signOptions.SignatureLineImage = File.ReadAllBytes(dataDir + "SignatureImage.emf"); CertificateHolder certHolder = CertificateHolder.Create(dataDir + "signature.pfx", "signature"); DigitalSignatureUtil.Sign(dataDir + "Document.NewSignatureLine.docx", dataDir + "Document.NewSignatureLine.docx_out.docx", certHolder, signOptions); // ExEnd:CreatingAndSigningNewSignatureLine Console.WriteLine("\nDocument is created and Signed with new SignatureLine successfully.\nFile saved at " + dataDir + "Document.NewSignatureLine.docx_out.docx"); }
public void SignEx() { //ExStart //ExFor:DigitalSignatureUtil.Sign(String, String, CertificateHolder, String, DateTime) //ExFor:DigitalSignatureUtil.Sign(Stream, Stream, CertificateHolder, String, DateTime) //ExSummary:Shows how to sign documents. CertificateHolder ch = CertificateHolder.Create(MyDir + "MyPkcs12.pfx", "My password"); //By String Document doc = new Document(MyDir + "Document.doc"); string outputDocFileName = MyDir + "Document.Signed.doc"; DigitalSignatureUtil.Sign(doc.OriginalFileName, outputDocFileName, ch, "My comment", DateTime.Now); //By Stream Stream docInStream = new FileStream(MyDir + "Document.doc", FileMode.Open); Stream docOutStream = new FileStream(MyDir + "Document.Signed.doc", FileMode.OpenOrCreate); DigitalSignatureUtil.Sign(docInStream, docOutStream, ch, "My comment", DateTime.Now); //ExEnd }