PdfSignatureInfo Class
A signature of a document, as PdfSignatureVerifier found and checked it: the integrity of the bytes it covers, the cryptographic signature, the time stamp and the information of the signature dictionary.
public sealed class PdfSignatureInfoRemarks
The verification does not decide whether the signer is trusted: build the chain of PdfSignatureInfo.Certificate with X509Chain and the trust anchors and revocation policy of the application.
Properties
| Name | Description |
|---|---|
| AreModificationsPermitted | Gets a value indicating whether the PdfSignatureInfo.Modifications are allowed by the certification level and the field lock of the signature. Without certification and lock, every change is allowed: check PdfSignatureInfo.CoversWholeDocument. |
| ByteRanges | Gets the byte ranges of the file the signature covers: offsets and lengths. |
| Certificate | Gets the certificate of the signer, or of the time stamp authority of a document time stamp. |
| Certificates | Gets the certificates the signature embeds. |
| CertificationLevel | Gets the changes the signature allows after it when it is a certification signature (DocMDP), or null. |
| ContactInfo | Gets the contact information of the signer (/ContactInfo). |
| CoversWholeDocument | Gets a value indicating whether the signature covers the whole file: no revision was appended after it. |
| Error | Gets the reason the signature could not be checked, or null. |
| FieldLock | Gets the fields the signature locks (FieldMDP), or null. |
| FieldName | Gets the fully qualified name of the signature field. |
| IsDocumentIntact | Gets a value indicating whether the bytes the signature covers are those that were signed: their digest matches. |
| IsDocumentTimestamp | Gets a value indicating whether the signature is a document time stamp (ETSI.RFC3161), not the signature of a person. |
| IsSignatureValid | Gets a value indicating whether the cryptographic signature is valid for the certificate of the signer. |
| IsSigningCertificateValid | Gets a value indicating whether the ESS signing certificate attribute (RFC 5035) identifies PdfSignatureInfo.Certificate: null when the signature has no such attribute and its format does not require it. A PAdES signature (ETSI.CAdES.detached) requires it. |
| IsTimestampValid | Gets a value indicating whether the time stamps are valid, all of them: null for a signature without time stamp. |
| IsValid | Gets a value indicating whether the signature is valid: intact, cryptographically valid, with a valid time stamp when it has one, an ESS signing certificate that identifies the certificate of the signer when it has one, and no change after it that its certification or its field lock forbids. |
| Location | Gets the place of the signature (/Location). |
| Modifications | Gets the objects the revisions appended after the signature added or changed; empty when the signature covers the whole document. It is a summary of the changes for the application to review, built from the structure of the document, not a proof that the document shows the same content. |
| Reason | Gets the reason of the signature (/Reason). |
| SignerName | Gets the name of the signer (/Name), as it was signed. |
| SigningTime | Gets the time of the signature the signer claims (/M): it is not proven, unlike PdfSignatureInfo.TimestampTime. |
| SubFilter | Gets the format of the signature (/SubFilter): ETSI.CAdES.detached, adbe.pkcs7.detached, adbe.pkcs7.sha1 or ETSI.RFC3161. |
| TimestampTime | Gets the time of the time stamp of the signature (PAdES B-T), the earliest valid one when it has several, or of a document time stamp. |
AreModificationsPermitted
PdfSignatureInfo.csGets a value indicating whether the PdfSignatureInfo.Modifications are allowed by the certification level and the field lock of the signature. Without certification and lock, every change is allowed: check PdfSignatureInfo.CoversWholeDocument.
public bool AreModificationsPermitted { get; }Property value
ByteRanges
PdfSignatureInfo.csGets the byte ranges of the file the signature covers: offsets and lengths.
public IReadOnlyList<(long Offset, long Length)> ByteRanges { get; }Property value
Certificate
PdfSignatureInfo.csGets the certificate of the signer, or of the time stamp authority of a document time stamp.
public X509Certificate2? Certificate { get; }Property value
Certificates
PdfSignatureInfo.csGets the certificates the signature embeds.
public X509Certificate2Collection Certificates { get; }Property value
CertificationLevel
PdfSignatureInfo.csGets the changes the signature allows after it when it is a certification signature (DocMDP), or null.
public PdfCertificationLevel? CertificationLevel { get; }Property value
ContactInfo
PdfSignatureInfo.csCoversWholeDocument
PdfSignatureInfo.csError
PdfSignatureInfo.csFieldLock
PdfSignatureInfo.csGets the fields the signature locks (FieldMDP), or null.
public PdfFieldLock? FieldLock { get; }Property value
FieldName
PdfSignatureInfo.csIsDocumentIntact
PdfSignatureInfo.csIsDocumentTimestamp
PdfSignatureInfo.csIsSignatureValid
PdfSignatureInfo.csIsSigningCertificateValid
PdfSignatureInfo.csGets a value indicating whether the ESS signing certificate attribute (RFC 5035) identifies PdfSignatureInfo.Certificate: null when the signature has no such attribute and its format does not require it. A PAdES signature (ETSI.CAdES.detached) requires it.
public bool? IsSigningCertificateValid { get; }Property value
IsTimestampValid
PdfSignatureInfo.csIsValid
PdfSignatureInfo.csGets a value indicating whether the signature is valid: intact, cryptographically valid, with a valid time stamp when it has one, an ESS signing certificate that identifies the certificate of the signer when it has one, and no change after it that its certification or its field lock forbids.
public bool IsValid { get; }Property value
Location
PdfSignatureInfo.csModifications
PdfSignatureInfo.csGets the objects the revisions appended after the signature added or changed; empty when the signature covers the whole document. It is a summary of the changes for the application to review, built from the structure of the document, not a proof that the document shows the same content.
public IReadOnlyList<PdfModification> Modifications { get; }Property value
Reason
PdfSignatureInfo.csSignerName
PdfSignatureInfo.csSigningTime
PdfSignatureInfo.csGets the time of the signature the signer claims (/M): it is not proven, unlike PdfSignatureInfo.TimestampTime.
public DateTimeOffset? SigningTime { get; }Property value
SubFilter
PdfSignatureInfo.csTimestampTime
PdfSignatureInfo.csGets the time of the time stamp of the signature (PAdES B-T), the earliest valid one when it has several, or of a document time stamp.
public DateTimeOffset? TimestampTime { get; }