Záznam THPDFSignatureInfo
Popisuje jeden načtený PDF podpis od identit certifikátu přes pokrytí byte range až po verdikt ověření
Deklarace
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;
Jednotka
HPDFSignVerify
Pole
| Pole | Účel |
|---|---|
FieldName | Částečný název formulářového pole podpisu |
SubFilter | Hodnota položky /SubFilter ve slovníku podpisu |
SignerName | CN subjektu certifikátu podepisujícího |
SubjectDN | Vykreslené distinguished name subjektu certifikátu |
IssuerDN | Vykreslené distinguished name vystavitele certifikátu |
SerialNumberHex | Sériové číslo certifikátu, hex kódované |
ValidFrom | notBefore certifikátu, 0 když chybí |
ValidTo | notAfter certifikátu, 0 když chybí |
SigningTime | Podepsaný atribut 1.2.840.113549.1.9.5, jinak položka /M, jinak 0 |
HashAlgorithm | Název rodiny digestu: SHA-1, SHA-2, SHA-3 nebo SHAKE256 |
DigestAlgorithmOID | Objektový identifikátor digest algoritmu |
DigestConsistencyIssue | Zjištěný nesoulad digest algoritmů uvnitř struktury CMS |
SignaturePolicy | Detaily politiky podpisu, když podpis politiku nese |
Reason | Hodnota položky /Reason |
Location | Hodnota položky /Location |
ContactInfo | Hodnota položky /ContactInfo |
ByteRange | Offset a délka z /ByteRange popisující pokryté bajtové intervaly |
CoversWholeDocument | True, když byte range pokrývá celý soubor kromě mezery /Contents |
SignedRevisionLength | Délka zdrojového prefixu pokrytého tímto podpisem |
UnsignedTrailingBytes | Bajty připojené za podepsanou revizí |
CertificateTimeValidity | Zda čas podpisu spadá do okna platnosti certifikátu |
Status | Verdikt ověření typu THPDFSignatureVerifyStatus |
PublicKeyAlgorithm | Rodina veřejného klíče: RSA, ECDSA, EdDSA nebo ML-DSA |
SignatureAlgorithm | Název podpisového algoritmu CMS |
SignatureAlgorithmOID | Objektový identifikátor podpisového algoritmu |
CurveName | Název ECDSA křivky, například P-256 |
Timestamp | Detaily RFC 3161 signature timestampu nebo document timestampu |
CMSAttributes | Souhrn podepsaných atributů CMS |
CertificateValidation | Výsledek validace řetězce certifikátů |
Poznámky k použití
GetLoadedSignatureInfovrací popisná pole;VerifyLoadedSignatureaVerifyLoadedSignatureExpo zkontrolování digestů vyplní statusová a validační poleCoversWholeDocumentspolu sUnsignedTrailingBytesukazuje, zda pozdější revize dokument po podepsání změnily- Tentýž záznam živí validaci certifikátů, takže jedno volání pokryje identity, pokrytí, algoritmy i kontroly řetězce