Enregistrement THPDFSignatureInfo
Décrit une signature PDF chargée, des identités de certificats jusqu'au verdict de vérification, en passant par la couverture de plage d'octets
Déclaration
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
Champs
| Champ | Objectif |
|---|---|
FieldName | Nom partiel du champ de formulaire de signature |
SubFilter | Valeur de l'entrée /SubFilter du dictionnaire de signature |
SignerName | CN du sujet du certificat du signataire |
SubjectDN | Nom distinctif de sujet rendu du certificat |
IssuerDN | Nom distinctif d'émetteur rendu du certificat |
SerialNumberHex | Numéro de série du certificat, encodé en hexadécimal |
ValidFrom | notBefore du certificat, 0 quand absent |
ValidTo | notAfter du certificat, 0 quand absent |
SigningTime | Attribut signé 1.2.840.113549.1.9.5, sinon l'entrée /M, sinon 0 |
HashAlgorithm | Nom de famille de digest : SHA-1, SHA-2, SHA-3 ou SHAKE256 |
DigestAlgorithmOID | Identifiant d'objet de l'algorithme de digest |
DigestConsistencyIssue | Divergence détectée entre les algorithmes de digest à l'intérieur de la structure CMS |
SignaturePolicy | Détails de politique de signature quand la signature porte une politique |
Reason | Valeur de l'entrée /Reason |
Location | Valeur de l'entrée /Location |
ContactInfo | Valeur de l'entrée /ContactInfo |
ByteRange | Paires décalage/longueur du /ByteRange décrivant les intervalles d'octets couverts |
CoversWholeDocument | True quand la plage d'octets couvre tout le fichier sauf la lacune /Contents |
SignedRevisionLength | Longueur du préfixe source couvert par cette signature |
UnsignedTrailingBytes | Octets ajoutés après la révision signée |
CertificateTimeValidity | Si l'heure de signature tombe à l'intérieur de la fenêtre de validité du certificat |
Status | Verdict de vérification de type THPDFSignatureVerifyStatus |
PublicKeyAlgorithm | Famille de clé publique : RSA, ECDSA, EdDSA ou ML-DSA |
SignatureAlgorithm | Nom d'algorithme de signature CMS |
SignatureAlgorithmOID | Identifiant d'objet de l'algorithme de signature |
CurveName | Nom de courbe ECDSA, comme P-256 |
Timestamp | Détails d'horodatage de signature ou de document RFC 3161 |
CMSAttributes | Résumé des attributs CMS signés |
CertificateValidation | Issue de la validation de chaîne de certificats |
Notes d'utilisation
GetLoadedSignatureInforenvoie les champs descriptifs ;VerifyLoadedSignatureetVerifyLoadedSignatureExremplissent les champs de statut et de validation après vérification des digestsCoversWholeDocumentavecUnsignedTrailingBytesmontre si des révisions ultérieures ont changé le document après la signature- Le même enregistrement alimente la validation de certificats, si bien qu'un seul appel couvre identités, couverture, algorithmes et contrôles de chaîne