THPDFSignatureInfo Record

Opisuje jeden wczytany podpis PDF: od tożsamości certyfikatów, przez pokrycie zakresów bajtów, po werdykt weryfikacji

Deklaracja

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;

Jednostka

HPDFSignVerify

Pola

PolePrzeznaczenie
FieldNameNazwa częściowa pola formularza podpisu
SubFilterWartość wpisu /SubFilter w słowniku podpisu
SignerNameCN podmiotu certyfikatu podpisującego
SubjectDNZrenderowana nazwa wyróżniająca podmiotu certyfikatu
IssuerDNZrenderowana nazwa wyróżniająca wystawcy certyfikatu
SerialNumberHexNumer seryjny certyfikatu w zapisie szesnastkowym
ValidFromnotBefore certyfikatu, 0 gdy brak
ValidTonotAfter certyfikatu, 0 gdy brak
SigningTimePodpisany atrybut 1.2.840.113549.1.9.5, w przeciwnym razie wpis /M, a ostatecznie 0
HashAlgorithmNazwa rodziny digestów: SHA-1, SHA-2, SHA-3 lub SHAKE256
DigestAlgorithmOIDIdentyfikator obiektu algorytmu digest
DigestConsistencyIssueWykryta niezgodność algorytmów digest wewnątrz struktury CMS
SignaturePolicySzczegóły polityki podpisu, gdy podpis ją niesie
ReasonWartość wpisu /Reason
LocationWartość wpisu /Location
ContactInfoWartość wpisu /ContactInfo
ByteRangePary offsetu i długości /ByteRange opisujące pokryte przedziały bajtów
CoversWholeDocumentTrue, gdy zakres bajtów obejmuje cały plik poza luką /Contents
SignedRevisionLengthDługość prefiksu źródła objętego tym podpisem
UnsignedTrailingBytesBajty dopisane po podpisanej rewizji
CertificateTimeValidityCzy czas podpisania mieści się w oknie ważności certyfikatu
StatusWerdykt weryfikacji typu THPDFSignatureVerifyStatus
PublicKeyAlgorithmRodzina kluczy publicznych: RSA, ECDSA, EdDSA lub ML-DSA
SignatureAlgorithmNazwa algorytmu podpisu CMS
SignatureAlgorithmOIDIdentyfikator obiektu algorytmu podpisu
CurveNameNazwa krzywej ECDSA, na przykład P-256
TimestampSzczegóły znacznika czasu RFC 3161 podpisu lub dokumentu
CMSAttributesPodsumowanie podpisanych atrybutów CMS
CertificateValidationWynik walidacji łańcucha certyfikatów

Uwagi dotyczące użycia

Powiązane API