Запис THPDFSignatureInfo

Описує один завантажений підпис PDF — від ідентичностей сертифікатів і покриття байтового діапазону до вердикту перевірки

Оголошення

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

Поля

ПолеПризначення
FieldNameЧасткова назва поля форми підписа
SubFilterЗначення запису /SubFilter у словнику підписа
SignerNameCN суб'єкта сертифіката підписувача
SubjectDNВідрендерована distinguished name суб'єкта сертифіката
IssuerDNВідрендерована distinguished name видавця сертифіката
SerialNumberHexСерійний номер сертифіката у шістнадцятковому кодуванні
ValidFromnotBefore сертифіката; 0, коли відсутній
ValidTonotAfter сертифіката; 0, коли відсутній
SigningTimeПідписаний атрибут 1.2.840.113549.1.9.5, інакше запис /M, інакше 0
HashAlgorithmНазва сімейства дайджестів: SHA-1, SHA-2, SHA-3 чи SHAKE256
DigestAlgorithmOIDІдентифікатор об'єкта алгоритму дайджеста
DigestConsistencyIssueВиявлено невідповідність алгоритмів дайджеста всередині структури CMS
SignaturePolicyПодробиці політики підпису, коли підпис несе політику
ReasonЗначення запису /Reason
LocationЗначення запису /Location
ContactInfoЗначення запису /ContactInfo
ByteRangeПари зміщення та довжини /ByteRange, що описують покриті байтові інтервали
CoversWholeDocumentTrue, коли байтовий діапазон сягає всього файла, окрім розриву /Contents
SignedRevisionLengthДовжина префікса джерела, покритого цим підписом
UnsignedTrailingBytesБайти, додані після підписаної ревізії
CertificateTimeValidityЧи час підписання потрапляє у вікно чинності сертифіката
StatusВердикт перевірки типу THPDFSignatureVerifyStatus
PublicKeyAlgorithmСімейство відкритих ключів: RSA, ECDSA, EdDSA чи ML-DSA
SignatureAlgorithmНазва алгоритму підпису CMS
SignatureAlgorithmOIDІдентифікатор об'єкта алгоритму підпису
CurveNameНазва кривої ECDSA, як-от P-256
TimestampПодробиці підписа RFC 3161 чи документного штампа часу
CMSAttributesПідсумок підписаних атрибутів CMS
CertificateValidationРезультат перевірки ланцюжка сертифікатів

Примітки щодо використання

Пов'язані API