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 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 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 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 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 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 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 }
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 SignDocumentWithDecryptionPassword() { //ExStart //ExFor:CertificateHolder //ExFor:SignOptions.DecryptionPassword //ExFor:LoadOptions.Password //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. LoadOptions loadOptions = new LoadOptions("docPassword"); Assert.AreEqual(signOptions.DecryptionPassword, loadOptions.Password); Document signedDoc = new Document(outputFileName, loadOptions); // 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 //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(); }
public void CreatingAndSigningNewSignatureLine() { //ExStart:CreatingAndSigningNewSignatureLine Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); SignatureLine signatureLine = builder.InsertSignatureLine(new SignatureLineOptions()).SignatureLine; doc.Save(ArtifactsDir + "SignDocuments.SignatureLine.docx"); 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(ArtifactsDir + "SignDocuments.SignatureLine.docx", ArtifactsDir + "SignDocuments.NewSignatureLine.docx", certHolder, signOptions); //ExEnd:CreatingAndSigningNewSignatureLine }
public void PdfDigitalSignature() { //ExStart //ExFor:PdfDigitalSignatureDetails //ExFor:PdfDigitalSignatureDetails.#ctor //ExFor:PdfDigitalSignatureDetails.#ctor(CertificateHolder, String, String, DateTime) //ExFor:PdfDigitalSignatureDetails.HashAlgorithm //ExFor:PdfDigitalSignatureDetails.Location //ExFor:PdfDigitalSignatureDetails.Reason //ExFor:PdfDigitalSignatureDetails.SignatureDate //ExFor:PdfDigitalSignatureHashAlgorithm //ExFor:PdfSaveOptions.DigitalSignatureDetails //ExSummary:Shows how to sign a generated PDF using Aspose.Words. Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.Writeln("Signed PDF contents."); // Load the certificate from disk // The other constructor overloads can be used to load certificates from different locations CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); // Pass the certificate and details to the save options class to sign with PdfSaveOptions options = new PdfSaveOptions(); DateTime signingTime = DateTime.Now; options.DigitalSignatureDetails = new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "Aspose Office", signingTime); // We can use this attribute to set a different hash algorithm options.DigitalSignatureDetails.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.Sha256; Assert.AreEqual("Test Signing", options.DigitalSignatureDetails.Reason); Assert.AreEqual("Aspose Office", options.DigitalSignatureDetails.Location); Assert.AreEqual(signingTime.ToUniversalTime(), options.DigitalSignatureDetails.SignatureDate); doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignature.pdf"); //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 }; using (Stream streamIn = new FileStream(MyDir + "Digitally signed.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 DecryptionPassword() { //ExStart //ExFor:CertificateHolder //ExFor:SignOptions.DecryptionPassword //ExFor:LoadOptions.Password //ExSummary:Shows how to sign encrypted document file. // 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, date, and decryption password which will be applied with our new digital signature. SignOptions signOptions = new SignOptions { Comments = "Comment", SignTime = DateTime.Now, DecryptionPassword = "******" }; // Set a local system filename for the unsigned input document, and an output filename for its new digitally signed copy. string inputFileName = MyDir + "Encrypted.docx"; string outputFileName = ArtifactsDir + "DigitalSignatureUtil.DecryptionPassword.docx"; DigitalSignatureUtil.Sign(inputFileName, outputFileName, certificateHolder, signOptions); //ExEnd // Open encrypted document from a file. LoadOptions loadOptions = new LoadOptions("docPassword"); Assert.AreEqual(signOptions.DecryptionPassword, loadOptions.Password); // Check that encrypted document was successfully signed. Document signedDoc = new Document(outputFileName, loadOptions); DigitalSignatureCollection signatures = signedDoc.DigitalSignatures; Assert.AreEqual(1, signatures.Count); Assert.True(signatures.IsValid); }
public void CreateNewSignatureLineAndSetProviderId() { //ExStart:CreateNewSignatureLineAndSetProviderID Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); SignatureLineOptions signatureLineOptions = new SignatureLineOptions { Signer = "vderyushev", SignerTitle = "QA", Email = "*****@*****.**", ShowDate = true, DefaultInstructions = false, Instructions = "Please sign here.", AllowComments = true }; SignatureLine signatureLine = builder.InsertSignatureLine(signatureLineOptions).SignatureLine; signatureLine.ProviderId = Guid.Parse("CF5A7BB4-8F3C-4756-9DF6-BEF7F13259A2"); doc.Save(ArtifactsDir + "SignDocuments.SignatureLineProviderId.docx"); SignOptions signOptions = new SignOptions { SignatureLineId = signatureLine.Id, ProviderId = signatureLine.ProviderId, Comments = "Document was signed by vderyushev", SignTime = DateTime.Now }; CertificateHolder certHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw"); DigitalSignatureUtil.Sign(ArtifactsDir + "SignDocuments.SignatureLineProviderId.docx", ArtifactsDir + "SignDocuments.CreateNewSignatureLineAndSetProviderId.docx", certHolder, signOptions); //ExEnd:CreateNewSignatureLineAndSetProviderID }
public void DecryptionPassword() { //ExStart //ExFor:CertificateHolder //ExFor:SignOptions.DecryptionPassword //ExFor:LoadOptions.Password //ExSummary:Shows how to sign encrypted document file. // Create certificate holder from a file CertificateHolder certificateHolder = CertificateHolder.Create(File.ReadAllBytes(MyDir + "morzal.pfx"), "aw"); SignOptions signOptions = new SignOptions { Comments = "Comment", SignTime = DateTime.Now, DecryptionPassword = "******" }; // Digitally sign encrypted with "docPassword" document in the specified path string inputFileName = MyDir + "Encrypted.docx"; string outputFileName = ArtifactsDir + "DigitalSignatureUtil.DecryptionPassword.docx"; DigitalSignatureUtil.Sign(inputFileName, outputFileName, certificateHolder, signOptions); //ExEnd // Open encrypted document from a file LoadOptions loadOptions = new LoadOptions("docPassword"); Assert.AreEqual(signOptions.DecryptionPassword, loadOptions.Password); // Check that encrypted document was successfully signed Document signedDoc = new Document(outputFileName, loadOptions); DigitalSignatureCollection signatures = signedDoc.DigitalSignatures; Assert.AreEqual(1, signatures.Count); Assert.True(signatures.IsValid); }
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 + "certificate.pfx", "123456"); //By String Document doc = new Document(MyDir + "Document.DigitalSignature.docx"); string outputDocFileName = MyDir + @"\Artifacts\Document.DigitalSignature.docx"; DigitalSignatureUtil.Sign(doc.OriginalFileName, outputDocFileName, ch, "My comment", DateTime.Now); //By Stream Stream docInStream = new FileStream(MyDir + "Document.DigitalSignature.docx", FileMode.Open); Stream docOutStream = new FileStream(MyDir + @"\Artifacts\Document.DigitalSignature.docx", FileMode.OpenOrCreate); DigitalSignatureUtil.Sign(docInStream, docOutStream, ch, "My comment", DateTime.Now); //ExEnd docInStream.Dispose(); docOutStream.Dispose(); }
public static void CreateNewSignatureLineAndSetProviderID(String dataDir) { // ExStart:CreateNewSignatureLineAndSetProviderID Document doc = new Document(dataDir + "Document.Signed.docx"); DocumentBuilder builder = new DocumentBuilder(doc); SignatureLine signatureLine = builder.InsertSignatureLine(new SignatureLineOptions()).SignatureLine; signatureLine.ProviderId = new Guid("{F5AC7D23-DA04-45F5-ABCB-38CE7A982553}"); doc.Save(dataDir + "Document.Signed_out.docx"); SignOptions signOptions = new SignOptions(); signOptions.SignatureLineId = signatureLine.Id; signOptions.ProviderId = signatureLine.ProviderId; CertificateHolder certHolder = CertificateHolder.Create(dataDir + "signature.pfx", "signature"); DigitalSignatureUtil.Sign(dataDir + "Document.Signed_out.docx", dataDir + "Document.Signed_out.docx", certHolder, signOptions); // ExEnd:CreateNewSignatureLineAndSetProviderID Console.WriteLine("\nCreate new signature line and set provider ID successfully.\nFile saved at " + dataDir + "Document.Signed_out.docx"); }