DigitalSignatureSubjectName Property |
Namespace: Aspose.Words
// Open an unsigned document Document unSignedDoc = new Document(MyDir + "Document.docx"); // Verify that it isn't signed Assert.False(FileFormatUtil.DetectFileFormat(MyDir + "Document.docx").HasDigitalSignature); Assert.AreEqual(0, unSignedDoc.DigitalSignatures.Count); // Create a CertificateHolder object from a PKCS #12 file, which we will use to sign the document CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null); // There are 2 ways of saving a signed copy of a document to the local file system // 1: Designate unsigned input and signed output files by filename and sign with the passed CertificateHolder DigitalSignatureUtil.Sign(MyDir + "Document.docx", ArtifactsDir + "Document.Signed.1.docx", certificateHolder, new SignOptions() { SignTime = DateTime.Now } ); // 2: Create a stream for the input file and one for the output and create a file, signed with the CertificateHolder, at the file system location determine using (FileStream inDoc = new FileStream(MyDir + "Document.docx", FileMode.Open)) { using (FileStream outDoc = new FileStream(ArtifactsDir + "Document.Signed.2.docx", FileMode.Create)) { DigitalSignatureUtil.Sign(inDoc, outDoc, certificateHolder); } } // Verify that our documents are signed Document signedDoc = new Document(ArtifactsDir + "Document.Signed.1.docx"); Assert.True(FileFormatUtil.DetectFileFormat(ArtifactsDir + "Document.Signed.1.docx").HasDigitalSignature); Assert.AreEqual(1,signedDoc.DigitalSignatures.Count); Assert.True(signedDoc.DigitalSignatures[0].IsValid); signedDoc = new Document(ArtifactsDir + "Document.Signed.2.docx"); Assert.True(FileFormatUtil.DetectFileFormat(ArtifactsDir + "Document.Signed.2.docx").HasDigitalSignature); Assert.AreEqual(1, signedDoc.DigitalSignatures.Count); Assert.True(signedDoc.DigitalSignatures[0].IsValid); // These digital signatures will have some of the properties from the X.509 certificate from the .pfx file we used Assert.AreEqual("CN=Morzal.Me", signedDoc.DigitalSignatures[0].IssuerName); Assert.AreEqual("CN=Morzal.Me", signedDoc.DigitalSignatures[0].SubjectName);