THPDFSignatureInfo Record
Descrive una firma PDF caricata, dalle identità dei certificati alla copertura del byte range fino al verdetto di verifica
Dichiarazione
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
Campi
| Campo | Scopo |
|---|---|
FieldName | Nome parziale del campo modulo della firma |
SubFilter | Valore della voce /SubFilter nel dizionario della firma |
SignerName | CN del soggetto del certificato del firmatario |
SubjectDN | Distinguished name del soggetto del certificato, in forma resa |
IssuerDN | Distinguished name dell'emittente del certificato, in forma resa |
SerialNumberHex | Numero di serie del certificato, codificato in esadecimale |
ValidFrom | notBefore del certificato, 0 quando assente |
ValidTo | notAfter del certificato, 0 quando assente |
SigningTime | Attributo firmato 1.2.840.113549.1.9.5, altrimenti la voce /M, altrimenti 0 |
HashAlgorithm | Nome della famiglia di digest: SHA-1, SHA-2, SHA-3 o SHAKE256 |
DigestAlgorithmOID | Identificatore d'oggetto dell'algoritmo di digest |
DigestConsistencyIssue | Disallineamento rilevato tra gli algoritmi di digest dentro la struttura CMS |
SignaturePolicy | Dettagli della politica di firma quando la firma ne porta una |
Reason | Valore della voce /Reason |
Location | Valore della voce /Location |
ContactInfo | Valore della voce /ContactInfo |
ByteRange | Coppie offset/lunghezza del /ByteRange che descrivono gli intervalli di byte coperti |
CoversWholeDocument | True quando il byte range copre l'intero file tranne il varco del /Contents |
SignedRevisionLength | Lunghezza del prefisso della sorgente coperto da questa firma |
UnsignedTrailingBytes | Byte aggiunti dopo la revisione firmata |
CertificateTimeValidity | Se l'ora di firma cade dentro la finestra di validità del certificato |
Status | Verdetto di verifica di tipo THPDFSignatureVerifyStatus |
PublicKeyAlgorithm | Famiglia di chiave pubblica: RSA, ECDSA, EdDSA o ML-DSA |
SignatureAlgorithm | Nome dell'algoritmo di firma CMS |
SignatureAlgorithmOID | Identificatore d'oggetto dell'algoritmo di firma |
CurveName | Nome della curva ECDSA, come P-256 |
Timestamp | Dettagli del timestamp di firma o di documento RFC 3161 |
CMSAttributes | Riepilogo degli attributi CMS firmati |
CertificateValidation | Esito della validazione della catena di certificati |
Note sull'utilizzo
GetLoadedSignatureInforestituisce i campi descrittivi;VerifyLoadedSignatureeVerifyLoadedSignatureExriempiono i campi di stato e validazione dopo il controllo dei digestCoversWholeDocumentinsieme aUnsignedTrailingBytesmostra se revisioni successive hanno modificato il documento dopo la firma- Lo stesso record alimenta la validazione dei certificati, quindi una chiamata copre identità, copertura, algoritmi e controlli della catena