PDFium Delphi Component Docs

Méthodes ValidatePadesTrust

Composant : TPdf  ·  Unité : PDFium
Valide l’intégrité des signatures PAdES, la confiance système courante, les preuves de révocation facultatives et les jetons d’horodatage RFC 3161

Syntaxe

function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;

function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean;

Description

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

Options

NetworkPolicyptnpOffline n’utilise que les données de certificats en cache tandis que ptnpOnline permet la récupération de chaîne Windows
CheckRevocationDemande 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
CheckTimeStampsValide les jetons d’horodatage de signature et de Document Time-stamp lorsqu’ils sont présents
UrlRetrievalTimeoutMsBorne 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
QualifiedValidationTimeSélectionne l’heure d’évaluation UTC de l’historique de service, zéro utilisant l’heure courante
CancellationTokenS’arrête à la prochaine frontière d’étape de validation
OnProgressReçoit l’étape, l’index de signature, le nombre de signatures et le pourcentage global

Résultat

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

Remarques

Exemple

var
  Options: TPadesTrustValidationOptions;
  Validation: TPadesValidationResult;
begin
  Options := TPadesTrustValidationOptions.Default;
  Options.NetworkPolicy := ptnpOnline;
  Options.CheckRevocation := True;
  Validation := Pdf1.ValidatePadesTrust(Options);
end;

Voir aussi

ValidatePades FPdfTrustedList AnalyzeSignatureRevisions RenewPadesArchiveTimestamp