THPDFSignatureInfo Record

Describes a single loaded PDF signature, from certificate identities via byte-range coverage through to the verification verdict

Declaration

THPDFSignatureInfo= record
  FieldName: AnsiString;       // signature form field partial name
  SubFilter: AnsiString;       // /SubFilter of the signature dictionary
  SignerName: AnsiString;      // CN of the signer certificate subject
  SubjectDN: AnsiString;       // rendered subject distinguished name
  IssuerDN: AnsiString;        // rendered issuer distinguished name
  SerialNumberHex: AnsiString; // certificate serial number, hex encoded
  ValidFrom: TDateTime;        // certificate notBefore (0 when absent)
  ValidTo: TDateTime;          // certificate notAfter (0 when absent)
  SigningTime: TDateTime;      // signed attribute 1.2.840.113549.1.9.5,
                               // else the /M entry, else 0
  HashAlgorithm: AnsiString;   // SHA-1, SHA-2, SHA-3, or SHAKE256
  DigestAlgorithmOID: AnsiString;
  DigestConsistencyIssue: THPDFCMSDigestConsistencyIssue;
  SignaturePolicy: THPDFSignaturePolicyInfo;
  Reason: AnsiString;          // /Reason from the signature dictionary
  Location: AnsiString;        // /Location
  ContactInfo: AnsiString;     // /ContactInfo
  ByteRange: array of Int64;   // /ByteRange pairs (offset, length, ...)
  CoversWholeDocument: boolean; // ByteRange spans the file except /Contents
  SignedRevisionLength: Int64; // source prefix covered by this signature
  UnsignedTrailingBytes: Int64; // bytes appended after the signed revision
  CertificateTimeValidity: THPDFSignatureTimeValidity;
  Status: THPDFSignatureVerifyStatus;
  PublicKeyAlgorithm: AnsiString; // RSA, ECDSA, EdDSA, or ML-DSA
  SignatureAlgorithm: AnsiString; // CMS signature algorithm name
  SignatureAlgorithmOID: AnsiString;
  CurveName: AnsiString;          // ECDSA curve, such as 'P-256'
  Timestamp: THPDFTimestampInfo;  // RFC 3161 signature or document timestamp
  CMSAttributes: THPDFCMSAttributeSummary;
  CertificateValidation: THPDFCertificateValidationInfo;
end;

Unit

HPDFSignVerify

Fields

FieldPurpose
FieldNamePartially qualified name of the signature form field
SubFilterContents of the /SubFilter entry in the signature dictionary
SignerNameCN taken from the signer certificate subject
SubjectDNRendered subject distinguished name for the certificate
IssuerDNRendered issuer distinguished name for the certificate
SerialNumberHexCertificate serial number, encoded in hex
ValidFromCertificate notBefore; 0 where absent
ValidToCertificate notAfter; 0 where absent
SigningTimeSigned attribute 1.2.840.113549.1.9.5, otherwise the /M entry, otherwise 0
HashAlgorithmDigest family name: SHA-1, SHA-2, SHA-3 or SHAKE256
DigestAlgorithmOIDObject identifier of the digest algorithm
DigestConsistencyIssueA mismatch found between digest algorithms within the CMS structure
SignaturePolicySignature policy details where the signature carries a policy
ReasonContents of the /Reason entry
LocationContents of the /Location entry
ContactInfoContents of the /ContactInfo entry
ByteRange/ByteRange offset and length pairs describing the byte intervals that are covered
CoversWholeDocumentTrue where the byte range spans the whole file apart from the /Contents gap
SignedRevisionLengthLength of the source prefix that this signature covers
UnsignedTrailingBytesBytes that were appended after the signed revision
CertificateTimeValidityWhether the signing time falls within the certificate validity window
StatusVerification verdict, of type THPDFSignatureVerifyStatus
PublicKeyAlgorithmPublic key family: RSA, ECDSA, EdDSA or ML-DSA
SignatureAlgorithmName of the CMS signature algorithm
SignatureAlgorithmOIDObject identifier of the signature algorithm
CurveNameECDSA curve name, for instance P-256
TimestampDetails of the RFC 3161 signature or document timestamp
CMSAttributesSummary of the CMS attributes that were signed
CertificateValidationOutcome of the certificate chain validation

Usage notes

Related APIs