Skip to content

# PDFCmsDigitalSignature

Namespace: O2S.Components.PDF4NET.DigitalSignatures

Defines a basic PDF digital signature based on the Cryptographic Message Syntax standard.

    public class PDFCmsDigitalSignature : PDFDigitalSignature

Inheritance Object → PDFBaseDigitalSignature → PDFDigitalSignature → PDFCmsDigitalSignature

## Fields

### OnComputeSignature

Gets or sets the delegate to be called when the digital signature needs to be computed.

    public ComputeSignature OnComputeSignature;

Remarks

Use this event to provide your own implementation for computing the digital signature.
If this event is not set, the default library method for computing the digital signature will be used.

### OnCrlInformationNeeded

Gets or sets the delegate to be called when CRL information is needed for embedding it in the signature.

    public CrlInformationNeeded OnCrlInformationNeeded;

### OnOcspInformationNeeded

Gets or sets the delegate to be called when OCSP information is needed for embedding it in the signature.

    public OcspInformationNeeded OnOcspInformationNeeded;

### OnSignatureTimestampNeeded

Gets or sets the delegate to be called when a timestamp needs to be applied on a digital signature.

    public SignatureTimestampNeeded OnSignatureTimestampNeeded;

## Constructors

### PDFCmsDigitalSignature()

Initializes a new PDFCmsDigitalSignature object.

    public PDFCmsDigitalSignature()

## Properties

### Certificate

Gets or sets the sign certificate.

    public X509Certificate2 Certificate { get; set; }

Property Value

X509Certificate2
A that represents the certificate used to sign the document.

Remarks

This property is not used by PDFDocumentTimeStamp signatures.

### CertificateChain

Gets or sets the certificate chain.

    public X509Certificate2[] CertificateChain { get; set; }

Property Value

X509Certificate2[]
An array of objects representing the chain associated with the signing certificate

Remarks

The certificates in the chain must be in "ascending" order. The first certificate is the parent of PDFBaseDigitalSignature.Certificate, the second certificate is the parent of first one and so on.
When this property is set, the PDFDigitalSignature.CertificateIncludeOption property is ignored.

### CertificateIncludeOption

Gets or sets the option that controls whether the root and entire chain associated with the signing certificate are included with the digital signature.

    public PDFX509CertificateIncludeOption CertificateIncludeOption { get; set; }

Property Value

PDFX509CertificateIncludeOption
A PDFX509CertificateIncludeOption enum member specifying how the certificate chain is included in the signature.

Remarks

This property is not used by PDFDocumentTimeStamp signatures.
This property is ignored when PDFCmsDigitalSignature.CertificateChain property is set to an array of certificates.

### ContactInfo

Gets or sets the contact information.

    public string ContactInfo { get; set; }

Property Value

String
Information provided by the signer to enable a recipient to contact the signer to verify the signature.

Remarks

This property should not be set for PDFDocumentTimeStamp signatures.

### CosDictionary

Gets the signature dictionary.

    public PDFCosDictionary CosDictionary { get; }

Property Value

PDFCosDictionary
The COS signature object for setting custom values for the signature.

### CrlInformation

Gets the CRL information.

    public List<Byte[]> CrlInformation { get; }

Property Value

List<Byte[]>

### Location

Gets or sets the location.

    public string Location { get; set; }

Property Value

String
The CPU host name or physical location of the signing.

Remarks

This property should not be set for PDFDocumentTimeStamp signatures.

### Name

Gets or sets the name.

    public string Name { get; set; }

Property Value

String
The name of the person or authority signing the document.

Remarks

This property should not be set for PDFDocumentTimeStamp signatures.

### OcspDigestAlgorithm

Gets or sets the OCSP digest algorithm.

    public PDFDigitalSignatureDigestAlgorithm OcspDigestAlgorithm { get; set; }

Property Value

PDFDigitalSignatureDigestAlgorithm
A PDFDigitalSignatureDigestAlgorithm enum member specifying the digest algorithm used in the OCSP request.

### OcspInformation

Gets the OCSP information.

    public List<Byte[]> OcspInformation { get; }

Property Value

List<Byte[]>

### Reason

Gets or sets the sign reason.

    public string Reason { get; set; }

Property Value

String
The reason for the signing.

Remarks

This property should not be set for PDFDocumentTimeStamp signatures.

### SignatureDate

Gets or sets the sign date.

    public DateTime SignatureDate { get; set; }

Property Value

DateTime
The date and time when the signature was applied.

### SignatureDigestAlgorithm

Gets or sets the signature digest algorithm.

    public PDFDigitalSignatureDigestAlgorithm SignatureDigestAlgorithm { get; set; }

Property Value

PDFDigitalSignatureDigestAlgorithm
A PDFDigitalSignatureDigestAlgorithm enum member specifying the digest algorithm used in the computation of the digital signature.

### SignaturePolicyIdentifier

Gets or sets the signature policy identifier.

    public Byte[] SignaturePolicyIdentifier { get; set; }

Property Value

Byte[]
The DER encoded signature policy identifier.

Remarks

When this property is set to a non null value, the signature-policy-identifier signed attribute is added to the signature.
The library does not verify and validate the content of this property. If this property does not include proper DER encoded content, the generated signature will be invalid.
This property is not used by PDFDocumentTimeStamp signatures.

### TimestampDigestAlgorithm

Gets or sets the timestamp digest algorithm.

    public PDFDigitalSignatureDigestAlgorithm TimestampDigestAlgorithm { get; set; }

Property Value

PDFDigitalSignatureDigestAlgorithm
A PDFDigitalSignatureDigestAlgorithm enum member specifying the digest algorithm used in the timestamp request.