public void Remove() { //ExStart //ExFor:DigitalSignatureUtil //ExFor:DigitalSignatureUtil.LoadSignatures(String) //ExFor:DigitalSignatureUtil.RemoveAllSignatures(Stream, Stream) //ExFor:DigitalSignatureUtil.RemoveAllSignatures(String, String) //ExSummary:Shows how to remove digital signatures from a digitally signed document. // There are two ways of using the DigitalSignatureUtil class to remove digital signatures // from a signed document by saving an unsigned copy of it somewhere else in the local file system. // 1 - Determine the locations of both the signed document and the unsigned copy by filename strings: DigitalSignatureUtil.RemoveAllSignatures(MyDir + "Digitally signed.docx", ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromString.docx"); // 2 - Determine the locations of both the signed document and the unsigned copy by file streams: using (Stream streamIn = new FileStream(MyDir + "Digitally signed.docx", FileMode.Open)) { using (Stream streamOut = new FileStream(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromStream.docx", FileMode.Create)) { DigitalSignatureUtil.RemoveAllSignatures(streamIn, streamOut); } } // Verify that both our output documents have no digital signatures. Assert.That(DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromString.docx"), Is.Empty); Assert.That(DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromStream.docx"), Is.Empty); //ExEnd }
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 LoadAndRemove() { //ExStart //ExFor:DigitalSignatureUtil //ExFor:DigitalSignatureUtil.LoadSignatures(String) //ExFor:DigitalSignatureUtil.LoadSignatures(Stream) //ExFor:DigitalSignatureUtil.RemoveAllSignatures(Stream, Stream) //ExFor:DigitalSignatureUtil.RemoveAllSignatures(String, String) //ExSummary:Shows how to load and remove digital signatures from a digitally signed document. // Load digital signatures via filename string to verify that the document is signed DigitalSignatureCollection digitalSignatures = DigitalSignatureUtil.LoadSignatures(MyDir + "Digitally signed.docx"); Assert.AreEqual(1, digitalSignatures.Count); // Re-save the document to an output filename with all digital signatures removed DigitalSignatureUtil.RemoveAllSignatures(MyDir + "Digitally signed.docx", ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromString.docx"); // Remove all signatures from the document using stream parameters using (Stream streamIn = new FileStream(MyDir + "Digitally signed.docx", FileMode.Open)) { using (Stream streamOut = new FileStream(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromStream.docx", FileMode.Create)) { DigitalSignatureUtil.RemoveAllSignatures(streamIn, streamOut); } } // We can also load a document's digital signatures via stream, which we will do to verify that all signatures have been removed using (Stream stream = new FileStream(ArtifactsDir + "DigitalSignatureUtil.LoadAndRemove.FromStream.docx", FileMode.Open)) { digitalSignatures = DigitalSignatureUtil.LoadSignatures(stream); Assert.AreEqual(0, digitalSignatures.Count); } //ExEnd }
public void GetEnumerator() { //ExStart //ExFor:DigitalSignatureCollection.GetEnumerator //ExSummary:Shows how to load and enumerate all digital signatures of a document. DigitalSignatureCollection digitalSignatures = DigitalSignatureUtil.LoadSignatures(MyDir + "Digitally signed.docx"); using (IEnumerator <DigitalSignature> enumerator = digitalSignatures.GetEnumerator()) { while (enumerator.MoveNext()) { // Do something useful DigitalSignature ds = enumerator.Current; if (ds != null) { Console.WriteLine(ds.ToString()); } } } //ExEnd Assert.AreEqual(1, digitalSignatures.Count); DigitalSignature signature = digitalSignatures[0]; Assert.True(signature.IsValid); Assert.AreEqual(DigitalSignatureType.XmlDsig, signature.SignatureType); Assert.AreEqual("12/23/2010 02:14:40 AM", signature.SignTime.ToString("MM/dd/yyyy hh:mm:ss tt")); Assert.AreEqual("Test Sign", signature.Comments); Assert.AreEqual(signature.IssuerName, signature.CertificateHolder.Certificate.IssuerName.Name); Assert.AreEqual(signature.SubjectName, signature.CertificateHolder.Certificate.SubjectName.Name); Assert.AreEqual("CN=VeriSign Class 3 Code Signing 2009-2 CA, " + "OU=Terms of use at https://www.verisign.com/rpa (c)09, " + "OU=VeriSign Trust Network, " + "O=\"VeriSign, Inc.\", " + "C=US", signature.IssuerName); Assert.AreEqual("CN=Aspose Pty Ltd, " + "OU=Digital ID Class 3 - Microsoft Software Validation v2, " + "O=Aspose Pty Ltd, " + "L=Lane Cove, " + "S=New South Wales, " + "C=AU", signature.SubjectName); }
public void GetEnumeratorEx() { //ExStart //ExFor:DigitalSignatureCollection.GetEnumerator //ExSummary:Shows how to load and enumerate all digital signatures of a document. DigitalSignatureCollection digitalSignatures = DigitalSignatureUtil.LoadSignatures(MyDir + "Document.Signed.doc"); var enumerator = digitalSignatures.GetEnumerator(); while (enumerator.MoveNext()) { // Do something useful DigitalSignature ds = (DigitalSignature)enumerator.Current; Console.WriteLine(ds.ToString()); } //ExEnd }
public void LoadSignatures() { //ExStart //ExFor:DigitalSignatureUtil.LoadSignatures(Stream) //ExFor:DigitalSignatureUtil.LoadSignatures(String) //ExSummary:Shows how to load all existing signatures from a document. // By string: DigitalSignatureCollection digitalSignatures = DigitalSignatureUtil.LoadSignatures(MyDir + "Document.DigitalSignature.docx"); // By stream: Stream stream = new FileStream(MyDir + "Document.DigitalSignature.docx", FileMode.Open); digitalSignatures = DigitalSignatureUtil.LoadSignatures(stream); //ExEnd stream.Close(); }
public void LoadSignaturesEx() { //ExStart //ExFor:DigitalSignatureUtil.LoadSignatures(Stream) //ExFor:DigitalSignatureUtil.LoadSignatures(String) //ExSummary:Shows how to load signatures from a document by stream and by string. Stream docStream = new FileStream(MyDir + "Document.DigitalSignature.docx", FileMode.Open); // By stream: DigitalSignatureCollection digitalSignatures = DigitalSignatureUtil.LoadSignatures(docStream); docStream.Close(); // By string: digitalSignatures = DigitalSignatureUtil.LoadSignatures(MyDir + "Document.DigitalSignature.docx"); //ExEnd }
public void LoadSignatures() { //ExStart //ExFor:DigitalSignatureUtil.LoadSignatures(Stream) //ExFor:DigitalSignatureUtil.LoadSignatures(String) //ExSummary:Shows how to load all existing signatures from a document. // Load all signatures from the document using string parameters DigitalSignatureCollection digitalSignatures = DigitalSignatureUtil.LoadSignatures(MyDir + "Document.DigitalSignature.docx"); Assert.NotNull(digitalSignatures); // Load all signatures from the document using stream parameters Stream stream = new FileStream(MyDir + "Document.DigitalSignature.docx", FileMode.Open); digitalSignatures = DigitalSignatureUtil.LoadSignatures(stream); //ExEnd stream.Close(); }
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 GetEnumerator() { //ExStart //ExFor:DigitalSignatureCollection.GetEnumerator //ExSummary:Shows how to load and enumerate all digital signatures of a document. DigitalSignatureCollection digitalSignatures = DigitalSignatureUtil.LoadSignatures(MyDir + "Document.DigitalSignature.docx"); using (IEnumerator<DigitalSignature> enumerator = digitalSignatures.GetEnumerator()) { while (enumerator.MoveNext()) { // Do something useful DigitalSignature ds = enumerator.Current; if (ds != null) Console.WriteLine(ds.ToString()); } } //ExEnd }
public void Load() { //ExStart //ExFor:DigitalSignatureUtil //ExFor:DigitalSignatureUtil.LoadSignatures(String) //ExFor:DigitalSignatureUtil.LoadSignatures(Stream) //ExSummary:Shows how to load signatures from a digitally signed document. // There are two ways of loading a signed document's collection of digital signatures using the DigitalSignatureUtil class. // 1 - Load from a document from a local file system filename: DigitalSignatureCollection digitalSignatures = DigitalSignatureUtil.LoadSignatures(MyDir + "Digitally signed.docx"); // If this collection is nonempty, then we can verify that the document is digitally signed. Assert.AreEqual(1, digitalSignatures.Count); // 2 - Load from a document from a FileStream: using (Stream stream = new FileStream(MyDir + "Digitally signed.docx", FileMode.Open)) { digitalSignatures = DigitalSignatureUtil.LoadSignatures(stream); Assert.AreEqual(1, digitalSignatures.Count); } //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); } }