Class PdfDigitalSignatureDetails

Class PdfDigitalSignatureDetails

Namespace: Aspose.Words.Saving
Assembly: Aspose.Words.dll (26.2.0)

Contains details for signing a PDF document with a digital signature.

public class PdfDigitalSignatureDetails

Inheritance

object PdfDigitalSignatureDetails

Inherited Members

object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Examples

Shows how to sign a generated PDF document.

Document doc = new Document();
                                                      DocumentBuilder builder = new DocumentBuilder(doc);
                                                      builder.Writeln("Contents of signed PDF.");

                                                      CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

                                                      // Create a "PdfSaveOptions" object that we can pass to the document's "Save" method
                                                      // to modify how that method converts the document to .PDF.
                                                      PdfSaveOptions options = new PdfSaveOptions();

                                                      // Configure the "DigitalSignatureDetails" object of the "SaveOptions" object to
                                                      // digitally sign the document as we render it with the "Save" method.
                                                      DateTime signingTime = new DateTime(2015, 7, 20);
                                                      options.DigitalSignatureDetails =
                                                          new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "My Office", signingTime);
                                                      options.DigitalSignatureDetails.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.RipeMD160;

                                                      Assert.That(options.DigitalSignatureDetails.Reason, Is.EqualTo("Test Signing"));
                                                      Assert.That(options.DigitalSignatureDetails.Location, Is.EqualTo("My Office"));
                                                      Assert.That(options.DigitalSignatureDetails.SignatureDate.ToLocalTime(), Is.EqualTo(signingTime));
                                                      Assert.That(options.DigitalSignatureDetails.CertificateHolder, Is.EqualTo(certificateHolder));

                                                      doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignature.pdf", options);

Remarks

At the moment digitally signing PDF documents is only available on .NET 3.5 or higher.

To digitally sign a PDF document when it is created by Aspose.Words, set the Aspose.Words.Saving.PdfSaveOptions.DigitalSignatureDetails property to a valid Aspose.Words.Saving.PdfDigitalSignatureDetails object and then save the document in the PDF format passing the Aspose.Words.Saving.PdfSaveOptions as a parameter into the Aspose.Words.Document.Save(System.String,Aspose.Words.Saving.SaveOptions) method.

Aspose.Words creates a PKCS#7 signature over the whole PDF document and uses the "Adobe.PPKMS" filter and "adbe.pkcs7.sha1" subfilter when creating a digital signature.

Aspose.Words.Saving.PdfSaveOptions.DigitalSignatureDetails

Constructors

PdfDigitalSignatureDetails()

Initializes an instance of this class.

public PdfDigitalSignatureDetails()

Examples

Shows how to sign a generated PDF document.

Document doc = new Document();
                                                      DocumentBuilder builder = new DocumentBuilder(doc);
                                                      builder.Writeln("Contents of signed PDF.");

                                                      CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

                                                      // Create a "PdfSaveOptions" object that we can pass to the document's "Save" method
                                                      // to modify how that method converts the document to .PDF.
                                                      PdfSaveOptions options = new PdfSaveOptions();

                                                      // Configure the "DigitalSignatureDetails" object of the "SaveOptions" object to
                                                      // digitally sign the document as we render it with the "Save" method.
                                                      DateTime signingTime = new DateTime(2015, 7, 20);
                                                      options.DigitalSignatureDetails =
                                                          new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "My Office", signingTime);
                                                      options.DigitalSignatureDetails.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.RipeMD160;

                                                      Assert.That(options.DigitalSignatureDetails.Reason, Is.EqualTo("Test Signing"));
                                                      Assert.That(options.DigitalSignatureDetails.Location, Is.EqualTo("My Office"));
                                                      Assert.That(options.DigitalSignatureDetails.SignatureDate.ToLocalTime(), Is.EqualTo(signingTime));
                                                      Assert.That(options.DigitalSignatureDetails.CertificateHolder, Is.EqualTo(certificateHolder));

                                                      doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignature.pdf", options);

PdfDigitalSignatureDetails(CertificateHolder, string, string, DateTime)

Initializes an instance of this class.

public PdfDigitalSignatureDetails(CertificateHolder certificateHolder, string reason, string location, DateTime signatureDate)

Parameters

certificateHolder CertificateHolder

A certificate holder which contains the certificate itself.

reason string

The reason for signing.

location string

The location of signing.

signatureDate DateTime

The date and time of signing.

Examples

Shows how to sign a generated PDF document.

Document doc = new Document();
                                                      DocumentBuilder builder = new DocumentBuilder(doc);
                                                      builder.Writeln("Contents of signed PDF.");

                                                      CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

                                                      // Create a "PdfSaveOptions" object that we can pass to the document's "Save" method
                                                      // to modify how that method converts the document to .PDF.
                                                      PdfSaveOptions options = new PdfSaveOptions();

                                                      // Configure the "DigitalSignatureDetails" object of the "SaveOptions" object to
                                                      // digitally sign the document as we render it with the "Save" method.
                                                      DateTime signingTime = new DateTime(2015, 7, 20);
                                                      options.DigitalSignatureDetails =
                                                          new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "My Office", signingTime);
                                                      options.DigitalSignatureDetails.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.RipeMD160;

                                                      Assert.That(options.DigitalSignatureDetails.Reason, Is.EqualTo("Test Signing"));
                                                      Assert.That(options.DigitalSignatureDetails.Location, Is.EqualTo("My Office"));
                                                      Assert.That(options.DigitalSignatureDetails.SignatureDate.ToLocalTime(), Is.EqualTo(signingTime));
                                                      Assert.That(options.DigitalSignatureDetails.CertificateHolder, Is.EqualTo(certificateHolder));

                                                      doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignature.pdf", options);

Properties

CertificateHolder

Returns the certificate holder object that contains the certificate was used to sign the document.

public CertificateHolder CertificateHolder { get; set; }

Property Value

CertificateHolder

Examples

Shows how to sign a generated PDF document.

Document doc = new Document();
                                                      DocumentBuilder builder = new DocumentBuilder(doc);
                                                      builder.Writeln("Contents of signed PDF.");

                                                      CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

                                                      // Create a "PdfSaveOptions" object that we can pass to the document's "Save" method
                                                      // to modify how that method converts the document to .PDF.
                                                      PdfSaveOptions options = new PdfSaveOptions();

                                                      // Configure the "DigitalSignatureDetails" object of the "SaveOptions" object to
                                                      // digitally sign the document as we render it with the "Save" method.
                                                      DateTime signingTime = new DateTime(2015, 7, 20);
                                                      options.DigitalSignatureDetails =
                                                          new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "My Office", signingTime);
                                                      options.DigitalSignatureDetails.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.RipeMD160;

                                                      Assert.That(options.DigitalSignatureDetails.Reason, Is.EqualTo("Test Signing"));
                                                      Assert.That(options.DigitalSignatureDetails.Location, Is.EqualTo("My Office"));
                                                      Assert.That(options.DigitalSignatureDetails.SignatureDate.ToLocalTime(), Is.EqualTo(signingTime));
                                                      Assert.That(options.DigitalSignatureDetails.CertificateHolder, Is.EqualTo(certificateHolder));

                                                      doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignature.pdf", options);

HashAlgorithm

Gets or sets the hash algorithm.

public PdfDigitalSignatureHashAlgorithm HashAlgorithm { get; set; }

Property Value

PdfDigitalSignatureHashAlgorithm

Examples

Shows how to sign a generated PDF document.

Document doc = new Document();
                                                      DocumentBuilder builder = new DocumentBuilder(doc);
                                                      builder.Writeln("Contents of signed PDF.");

                                                      CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

                                                      // Create a "PdfSaveOptions" object that we can pass to the document's "Save" method
                                                      // to modify how that method converts the document to .PDF.
                                                      PdfSaveOptions options = new PdfSaveOptions();

                                                      // Configure the "DigitalSignatureDetails" object of the "SaveOptions" object to
                                                      // digitally sign the document as we render it with the "Save" method.
                                                      DateTime signingTime = new DateTime(2015, 7, 20);
                                                      options.DigitalSignatureDetails =
                                                          new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "My Office", signingTime);
                                                      options.DigitalSignatureDetails.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.RipeMD160;

                                                      Assert.That(options.DigitalSignatureDetails.Reason, Is.EqualTo("Test Signing"));
                                                      Assert.That(options.DigitalSignatureDetails.Location, Is.EqualTo("My Office"));
                                                      Assert.That(options.DigitalSignatureDetails.SignatureDate.ToLocalTime(), Is.EqualTo(signingTime));
                                                      Assert.That(options.DigitalSignatureDetails.CertificateHolder, Is.EqualTo(certificateHolder));

                                                      doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignature.pdf", options);

Remarks

The default value is the SHA-256 algorithm.

Location

Gets or sets the location of the signing.

public string Location { get; set; }

Property Value

string

Examples

Shows how to sign a generated PDF document.

Document doc = new Document();
                                                      DocumentBuilder builder = new DocumentBuilder(doc);
                                                      builder.Writeln("Contents of signed PDF.");

                                                      CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

                                                      // Create a "PdfSaveOptions" object that we can pass to the document's "Save" method
                                                      // to modify how that method converts the document to .PDF.
                                                      PdfSaveOptions options = new PdfSaveOptions();

                                                      // Configure the "DigitalSignatureDetails" object of the "SaveOptions" object to
                                                      // digitally sign the document as we render it with the "Save" method.
                                                      DateTime signingTime = new DateTime(2015, 7, 20);
                                                      options.DigitalSignatureDetails =
                                                          new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "My Office", signingTime);
                                                      options.DigitalSignatureDetails.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.RipeMD160;

                                                      Assert.That(options.DigitalSignatureDetails.Reason, Is.EqualTo("Test Signing"));
                                                      Assert.That(options.DigitalSignatureDetails.Location, Is.EqualTo("My Office"));
                                                      Assert.That(options.DigitalSignatureDetails.SignatureDate.ToLocalTime(), Is.EqualTo(signingTime));
                                                      Assert.That(options.DigitalSignatureDetails.CertificateHolder, Is.EqualTo(certificateHolder));

                                                      doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignature.pdf", options);

Remarks

The default value is null.

Reason

Gets or sets the reason for the signing.

public string Reason { get; set; }

Property Value

string

Examples

Shows how to sign a generated PDF document.

Document doc = new Document();
                                                      DocumentBuilder builder = new DocumentBuilder(doc);
                                                      builder.Writeln("Contents of signed PDF.");

                                                      CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

                                                      // Create a "PdfSaveOptions" object that we can pass to the document's "Save" method
                                                      // to modify how that method converts the document to .PDF.
                                                      PdfSaveOptions options = new PdfSaveOptions();

                                                      // Configure the "DigitalSignatureDetails" object of the "SaveOptions" object to
                                                      // digitally sign the document as we render it with the "Save" method.
                                                      DateTime signingTime = new DateTime(2015, 7, 20);
                                                      options.DigitalSignatureDetails =
                                                          new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "My Office", signingTime);
                                                      options.DigitalSignatureDetails.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.RipeMD160;

                                                      Assert.That(options.DigitalSignatureDetails.Reason, Is.EqualTo("Test Signing"));
                                                      Assert.That(options.DigitalSignatureDetails.Location, Is.EqualTo("My Office"));
                                                      Assert.That(options.DigitalSignatureDetails.SignatureDate.ToLocalTime(), Is.EqualTo(signingTime));
                                                      Assert.That(options.DigitalSignatureDetails.CertificateHolder, Is.EqualTo(certificateHolder));

                                                      doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignature.pdf", options);

Remarks

The default value is null.

SignatureDate

Gets or sets the date of the signing.

public DateTime SignatureDate { get; set; }

Property Value

DateTime

Examples

Shows how to sign a generated PDF document.

Document doc = new Document();
                                                      DocumentBuilder builder = new DocumentBuilder(doc);
                                                      builder.Writeln("Contents of signed PDF.");

                                                      CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

                                                      // Create a "PdfSaveOptions" object that we can pass to the document's "Save" method
                                                      // to modify how that method converts the document to .PDF.
                                                      PdfSaveOptions options = new PdfSaveOptions();

                                                      // Configure the "DigitalSignatureDetails" object of the "SaveOptions" object to
                                                      // digitally sign the document as we render it with the "Save" method.
                                                      DateTime signingTime = new DateTime(2015, 7, 20);
                                                      options.DigitalSignatureDetails =
                                                          new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "My Office", signingTime);
                                                      options.DigitalSignatureDetails.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.RipeMD160;

                                                      Assert.That(options.DigitalSignatureDetails.Reason, Is.EqualTo("Test Signing"));
                                                      Assert.That(options.DigitalSignatureDetails.Location, Is.EqualTo("My Office"));
                                                      Assert.That(options.DigitalSignatureDetails.SignatureDate.ToLocalTime(), Is.EqualTo(signingTime));
                                                      Assert.That(options.DigitalSignatureDetails.CertificateHolder, Is.EqualTo(certificateHolder));

                                                      doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignature.pdf", options);

Remarks

The default value is the current time.

This value will appear in the digital signature as an unverified computer time.

TimestampSettings

Gets or sets the digital signature timestamp settings.

public PdfDigitalSignatureTimestampSettings TimestampSettings { get; set; }

Property Value

PdfDigitalSignatureTimestampSettings

Examples

Shows how to sign a saved PDF document digitally and timestamp it.

Document doc = new Document();
                                                                             DocumentBuilder builder = new DocumentBuilder(doc);
                                                                             builder.Writeln("Signed PDF contents.");

                                                                             // Create a "PdfSaveOptions" object that we can pass to the document's "Save" method
                                                                             // to modify how that method converts the document to .PDF.
                                                                             PdfSaveOptions options = new PdfSaveOptions();

                                                                             // Create a digital signature and assign it to our SaveOptions object to sign the document when we save it to PDF.
                                                                             CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");
                                                                             options.DigitalSignatureDetails = new PdfDigitalSignatureDetails(certificateHolder, "Test Signing", "Aspose Office", DateTime.Now);

                                                                             // Create a timestamp authority-verified timestamp.
                                                                             options.DigitalSignatureDetails.TimestampSettings =
                                                                                 new PdfDigitalSignatureTimestampSettings("https://freetsa.org/tsr", "JohnDoe", "MyPassword");

                                                                             // The default lifespan of the timestamp is 100 seconds.
                                                                             Assert.That(options.DigitalSignatureDetails.TimestampSettings.Timeout.TotalSeconds, Is.EqualTo(100.0d));

                                                                             // We can set our timeout period via the constructor.
                                                                             options.DigitalSignatureDetails.TimestampSettings =
                                                                                 new PdfDigitalSignatureTimestampSettings("https://freetsa.org/tsr", "JohnDoe", "MyPassword", TimeSpan.FromMinutes(30));

                                                                             Assert.That(options.DigitalSignatureDetails.TimestampSettings.Timeout.TotalSeconds, Is.EqualTo(1800.0d));
                                                                             Assert.That(options.DigitalSignatureDetails.TimestampSettings.ServerUrl, Is.EqualTo("https://freetsa.org/tsr"));
                                                                             Assert.That(options.DigitalSignatureDetails.TimestampSettings.UserName, Is.EqualTo("JohnDoe"));
                                                                             Assert.That(options.DigitalSignatureDetails.TimestampSettings.Password, Is.EqualTo("MyPassword"));

                                                                             // The "Save" method will apply our signature to the output document at this time.
                                                                             doc.Save(ArtifactsDir + "PdfSaveOptions.PdfDigitalSignatureTimestamp.pdf", options);

Remarks

The default value is null and the digital signature will not be time-stamped. When this property is set to a valid Aspose.Words.Saving.PdfDigitalSignatureTimestampSettings object, then the digital signature in the PDF document will be time-stamped.

 English