TPDFlibSignatureVerifier

Sécurité et signatures

Description

Énumère les champs de signature PDF et les signataires CMS, valide une signature sélectionnée sans charger l'intégralité du PDF en mémoire, et signale la couverture exacte de la révision signée séparément de l'intégrité cryptographique

Le vérificateur accepte un fichier, un flux détenu par l'appelant ou une chaîne d'octets ANSI via OpenPDF, OpenPDFStream ou OpenPDFString

Sélection

Count := Verifier.GetSignatureCount;
Verifier.GetSignatureFieldName(0, FieldName);
SignerCount := Verifier.GetSignerCount(0);
Result := Verifier.VerifySignatureByName(FieldName, 0, Report);

VerifySignatureByIndex sélectionne le champ PDF par index de base zéro, tandis que VerifySignatureByName utilise le nom pleinement qualifié du champ AcroForm, et les deux méthodes acceptent un index de signataire CMS de base zéro

Rapport de vérification

IntegrityResultRésultat d'intégrité cryptographique CMS ou PKCS#7 hérité pour le signataire sélectionné
CoverageStatusscInvalid, scSignedRevision ou scWholeDocument
ByteRangeValidVrai uniquement lorsque toutes les plages sont bornées, l'écart du Contents est exact et la révision signée se termine par son propre %%EOF
ContentsGapValidVrai uniquement lorsque les octets omis correspondent exactement au jeton /Contents hexadécimal sélectionné
HasLaterRevisionsVrai lorsque la signature sélectionnée est valide pour une révision incrémentale antérieure mais que des octets ultérieurs existent
SignedRevisionLengthLongueur en octets de la révision authentifiée par la signature sélectionnée
DocumentLengthLongueur actuelle du PDF en octets
NativeErrorCode d'erreur Windows CryptoAPI en cas d'échec de la validation de l'intégrité

Méthodes de compatibilité

VerifySignature, GetSignatureMetadata, GetSignerCertificate et VerifySignerCertificateChain restent disponibles et sélectionnent le champ 0 et le signataire 0

Utilisez GetSignatureMetadataByIndex, GetSignatureMetadataByName, GetSignerCertificateByIndex, GetSignerCertificateByName, VerifySignerCertificateChainByIndex ou VerifySignerCertificateChainByName pour une sélection explicite