THPDFSignatureInfo Record
Beschreibt eine geladene PDF-Signatur von den Zertifikatsidentitäten über die Byte-Range-Abdeckung bis zum Verifikationsurteil
Deklaration
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
Felder
| Feld | Zweck |
|---|---|
FieldName | Teilname des Signaturformularfelds |
SubFilter | Wert des /SubFilter-Eintrags im Signature-Dictionary |
SignerName | CN des Subjekts des Signaturzertifikats |
SubjectDN | Aufbereiteter Distinguished Name des Zertifikatssubjekts |
IssuerDN | Aufbereiteter Distinguished Name des Zertifikatsausstellers |
SerialNumberHex | Seriennummer des Zertifikats, hexadezimal kodiert |
ValidFrom | notBefore des Zertifikats, 0 wenn nicht vorhanden |
ValidTo | notAfter des Zertifikats, 0 wenn nicht vorhanden |
SigningTime | Signiertes Attribut 1.2.840.113549.1.9.5, sonst der /M-Eintrag, sonst 0 |
HashAlgorithm | Name der Digest-Familie: SHA-1, SHA-2, SHA-3 oder SHAKE256 |
DigestAlgorithmOID | Objektbezeichner des Digest-Algorithmus |
DigestConsistencyIssue | Erkannte Diskrepanz zwischen Digest-Algorithmen innerhalb der CMS-Struktur |
SignaturePolicy | Details zur Signatur-Policy, wenn die Signatur eine Policy trägt |
Reason | Wert des /Reason-Eintrags |
Location | Wert des /Location-Eintrags |
ContactInfo | Wert des /ContactInfo-Eintrags |
ByteRange | /ByteRange-Offset- und Längenpaare, die die abgedeckten Byteintervalle beschreiben |
CoversWholeDocument | True, wenn der Bytebereich die ganze Datei bis auf die /Contents-Lücke umspannt |
SignedRevisionLength | Länge des Quellpräfixes, das diese Signatur abdeckt |
UnsignedTrailingBytes | Nach der signierten Revision angehängte Bytes |
CertificateTimeValidity | Ob die Signierzeit innerhalb des Gültigkeitsfensters des Zertifikats liegt |
Status | Verifikationsurteil vom Typ THPDFSignatureVerifyStatus |
PublicKeyAlgorithm | Public-Key-Familie: RSA, ECDSA, EdDSA oder ML-DSA |
SignatureAlgorithm | Name des CMS-Signaturalgorithmus |
SignatureAlgorithmOID | Objektbezeichner des Signaturalgorithmus |
CurveName | Name der ECDSA-Kurve, etwa P-256 |
Timestamp | Details zum RFC-3161-Signatur- oder Dokumentzeitstempel |
CMSAttributes | Zusammenfassung der signierten CMS-Attribute |
CertificateValidation | Ergebnis der Zertifikatsketten-Validierung |
Verwendungshinweise
GetLoadedSignatureInfoliefert die beschreibenden Felder;VerifyLoadedSignatureundVerifyLoadedSignatureExfüllen die Status- und Validierungsfelder nach der Digest-PrüfungCoversWholeDocumentzeigt zusammen mitUnsignedTrailingBytes, ob spätere Revisionen das Dokument nach der Signierung geändert haben- Derselbe Record speist die Zertifikatsvalidierung, daher deckt ein einziger Aufruf Identitäten, Abdeckung, Algorithmen und Kettenprüfungen ab