function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;
function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean;
Les deux méthodes capturent le fichier d’origine exact, la mémoire tampon, le flux personnalisé ou la source progressive achevée conservés par le composant actif et ne valident jamais une copie réenregistrée par PDFium
Chaque signature ordinaire est vérifiée par rapport à son ByteRange d’origine, aux attributs signés CMS et à la valeur de signature, à la liaison signing-certificate-v2, à la chaîne de certificats courante du backend configuré et aux preuves de révocation facultatives
Les horodatages de signature et les Document Time-stamps valident en outre leur empreinte de message SHA-256, la signature CMS attachée, la chaîne TSA et l’état de révocation facultatif
Le certificat du signataire d’horodatage doit avoir une extension Extended Key Usage critique contenant uniquement id-kp-timeStamping, conformément à RFC 3161 section 2.3 ; une EKU absente, non critique, mixte ou différente donne un TimeStampTrustStatus invalide même si la signature CMS du jeton et sa chaîne de base sont valides ; la signature externe du document conserve ses résultats indépendants
La surcharge asynchrone capture la source avant la diffusion et signale l’achèvement via TPadesTrustValidationReply
| NetworkPolicy | ptnpOffline n’utilise que les données de certificats en cache tandis que ptnpOnline permet la récupération de chaîne Windows |
| CheckRevocation | Demande l’évaluation de révocation de la chaîne du backend configuré ; Windows exclut le certificat racine, tandis qu’OpenSSL vérifie les CRL configurées contre la chaîne |
| CheckTimeStamps | Valide les jetons d’horodatage de signature et de Document Time-stamp lorsqu’ils sont présents |
| UrlRetrievalTimeoutMs | Borne la récupération d’URL native utilisée par le traitement de chaîne et de révocation |
| QualifiedTrustEvaluator | Évalue facultativement le signataire et la chaîne collectée par rapport à un instantané authentifié hors ligne de liste de confiance |
| QualifiedValidationTime | Sélectionne l’heure d’évaluation UTC de l’historique de service, zéro utilisant l’heure courante |
| CancellationToken | S’arrête à la prochaine frontière d’étape de validation |
| OnProgress | Reçoit l’étape, l’index de signature, le nombre de signatures et le pourcentage global |
TPadesValidationResult.Signatures rapporte des valeurs indépendantes ByteRangeStatus, CmsSignatureStatus, AlgorithmPolicyStatus, SigningCertificateStatus, CertificateTrustStatus, QualifiedTrustStatus, RevocationStatus, TimeStampStatus, TimeStampSignatureStatus, TimeStampTrustStatus et TimeStampRevocationStatus, tandis que QualifiedTrust identifie le territoire, le fournisseur, le service, le type, le statut et l’heure de début correspondants
AlgorithmInfo enregistre les OID d’empreinte et de signature CMS ainsi que les OID de clé publique et de courbe nommée du certificat de signataire, et applique les règles ISO/TS 32002 NIST, Brainpool, Ed25519, Ed448 et courbe-vers-empreinte avant d’accepter l’intégrité
Les algorithmes non pris en charge, les services de confiance de plateforme indisponibles, les preuves de révocation incomplètes et la validation annulée ne sont pas promus à des états valides
Chaque entrée de signature inclut RevocationReason et NativeRevocationError issus de sa vérification CMS, plus TimeStampRevocationReason et NativeTimeStampRevocationError indépendants issus de la vérification du token d’horodatage. Les champs de raison utilisent TPdfCmsRevocationReason ; les champs d’erreur native sont des Cardinal dans l’espace d’erreurs du backend sélectionné, comme les codes X509_V_ERR_* d’OpenSSL ou un DWORD brut de fournisseur Windows ou de GetLastError. Les valeurs Windows sont préservées sans conversion vers un espace HRESULT commun
La paire d’horodatage décrit un horodatage de signature intégré ou un Document Time-stamp, sans écraser la paire de la signature ordinaire. Les diagnostics d’horodatage ne sont remplis qu’une fois les contrôles de structure du token et d’empreinte de message passés, au point de laisser la vérification CMS s’exécuter
Avec CheckRevocation = False, les raisons de diagnostic restent pcrrNone et les erreurs restent zéro. Les mêmes défauts s’appliquent quand une vérification n’est pas atteinte ou que son backend ne fournit pas de raison détaillée ; lisez donc toujours le statut correspondant au lieu de traiter un diagnostic vide comme un succès
Active soit True et un instantané complet de la source d’origineOnProgress s’exécute sur le thread de travail lorsqu’il est appelé par ValidatePadesTrustAsync et ne doit pas manipuler directement les contrôles d’interfaceTPdfFuture
var
Options: TPadesTrustValidationOptions;
Validation: TPadesValidationResult;
begin
Options := TPadesTrustValidationOptions.Default;
Options.NetworkPolicy := ptnpOnline;
Options.CheckRevocation := True;
Validation := Pdf1.ValidatePadesTrust(Options);
end;