Запись THPDFSignatureInfo

Описывает одну загруженную PDF-подпись: от личностей сертификатов через покрытие byte range до вердикта проверки

Объявление

THPDFSignatureInfo= record
  FieldName: AnsiString;       // signature form field partial name
  SubFilter: AnsiString;       // /SubFilter of the signature dictionary
  SignerName: AnsiString;      // CN субъекта сертификата подписанта
  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
  SignatureAlgorithmOID: AnsiString;
  CurveName: AnsiString;          // ECDSA curve, such as 'P-256'
  Timestamp: THPDFTimestampInfo;  // RFC 3161 signature or document timestamp
  CMSAttributes: THPDFCMSAttributeSummary;
  CertificateValidation: THPDFCertificateValidationInfo;
end;

Модуль

HPDFSignVerify

Поля

ПолеНазначение
FieldNameЧастичное имя поля формы подписи
SubFilterЗначение записи /SubFilter в словаре подписи
SignerNameCN субъекта сертификата подписанта
SubjectDNОтформатированное distinguished name субъекта сертификата
IssuerDNОтформатированное distinguished name издателя сертификата
SerialNumberHexСерийный номер сертификата в hex
ValidFromnotBefore сертификата, 0 при отсутствии
ValidTonotAfter сертификата, 0 при отсутствии
SigningTimeПодписанный атрибут 1.2.840.113549.1.9.5, иначе запись /M, иначе 0
HashAlgorithmИмя семейства digest: SHA-1, SHA-2, SHA-3 или SHAKE256
DigestAlgorithmOIDOID алгоритма digest
DigestConsistencyIssueОбнаруженное расхождение digest-алгоритмов внутри CMS-структуры
SignaturePolicyДетали политики подписи, когда подпись несёт политику
ReasonЗначение записи /Reason
LocationЗначение записи /Location
ContactInfoЗначение записи /ContactInfo
ByteRangeПары смещение-длина /ByteRange, описывающие покрытые интервалы байтов
CoversWholeDocumentTrue, когда byte range покрывает весь файл, кроме промежутка /Contents
SignedRevisionLengthДлина префикса источника, покрытого этой подписью
UnsignedTrailingBytesБайты, добавленные после подписанной ревизии
CertificateTimeValidityПопадает ли время подписания в окно действия сертификата
StatusВердикт проверки типа THPDFSignatureVerifyStatus
PublicKeyAlgorithmСемейство открытого ключа: RSA, ECDSA, EdDSA или ML-DSA
SignatureAlgorithmИмя алгоритма подписи CMS
SignatureAlgorithmOIDOID алгоритма подписи
CurveNameИмя кривой ECDSA, например P-256
TimestampДетали signature timestamp или document timestamp по RFC 3161
CMSAttributesСводка подписанных CMS-атрибутов
CertificateValidationИтог валидации цепочки сертификатов

Примечания по использованию

Связанные API