PDFium Delphi Component Docs

Metodi ValidatePadesTrust

Componente: TPdf  ·  Unità: PDFium
Valida l'integrità delle firme PAdES, il trust di sistema corrente, le evidenze di revoca facoltative e i token timestamp RFC 3161

Sintassi

function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;

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

Descrizione

Entrambi i metodi catturano l'esatto file originale, buffer di memoria, stream personalizzato o sorgente progressiva completata conservati dal componente attivo e non validano mai una copia risalvata da PDFium

Ogni firma ordinaria viene verificata rispetto al suo ByteRange originale, agli attributi firmati CMS e al valore della firma, al binding signing-certificate-v2, alla catena di certificati corrente del backend configurato e alle evidenze di revoca facoltative

I timestamp delle firme e i Document Time-stamp validano inoltre il message imprint SHA-256, la firma CMS allegata, la catena TSA e lo stato di revoca facoltativo

Il certificato del firmatario del timestamp deve avere un'estensione Extended Key Usage critical contenente solo id-kp-timeStamping, come richiesto da RFC 3161 section 2.3. EKU mancante, noncritical, misto o diverso rende TimeStampTrustStatus non valido anche con firma CMS del token e catena di base validi; la firma esterna del documento mantiene risultati indipendenti

L'overload asincrono cattura la sorgente prima dell'invio e riporta il completamento tramite TPadesTrustValidationReply

Opzioni

NetworkPolicyptnpOffline usa solo i dati dei certificati in cache mentre ptnpOnline consente il recupero della catena tramite Windows
CheckRevocationRichiede la valutazione della revoca della catena del backend configurato; Windows esclude il certificato radice, mentre OpenSSL verifica le CRL configurate contro la catena
CheckTimeStampsValida i token timestamp delle firme e i Document Time-stamp quando presenti
UrlRetrievalTimeoutMsLimita il recupero URL nativo usato dall'elaborazione della catena e della revoca
QualifiedTrustEvaluatorValuta facoltativamente il firmatario e la catena raccolta rispetto a uno snapshot autenticato offline della trusted list
QualifiedValidationTimeSeleziona il tempo di valutazione UTC della cronologia del servizio, con zero che usa il tempo corrente
CancellationTokenSi ferma al confine della successiva fase di validazione
OnProgressRiceve la fase, l'indice della firma, il numero di firme e la percentuale complessiva

Risultato

TPadesValidationResult.Signatures riporta valori indipendenti ByteRangeStatus, CmsSignatureStatus, AlgorithmPolicyStatus, SigningCertificateStatus, CertificateTrustStatus, QualifiedTrustStatus, RevocationStatus, TimeStampStatus, TimeStampSignatureStatus, TimeStampTrustStatus e TimeStampRevocationStatus, mentre QualifiedTrust identifica il territorio, il provider, il servizio, il tipo, lo stato e l'ora di inizio corrispondenti

AlgorithmInfo registra gli OID di digest e firma CMS più gli OID di chiave pubblica e curva denominata del certificato di firma, e applica le regole ISO/TS 32002 su NIST, Brainpool, Ed25519, Ed448 e sulla corrispondenza curva-digest prima che l'integrità venga accettata

Gli algoritmi non supportati, i servizi di trust della piattaforma non disponibili, le evidenze di revoca incomplete e la validazione annullata non vengono promossi a stati validi

Ogni voce di firma include RevocationReason e NativeRevocationError dalla sua verifica CMS, più TimeStampRevocationReason e NativeTimeStampRevocationError indipendenti dalla verifica del token di timestamp. I campi dei motivi usano TPdfCmsRevocationReason; i campi di errore nativo sono valori Cardinal nello spazio di errori del backend selezionato, come i codici X509_V_ERR_* di OpenSSL o un DWORD grezzo del provider Windows o di GetLastError. I valori Windows vengono preservati senza conversione in uno spazio HRESULT comune

La coppia del timestamp descrive un timestamp di firma incorporato o un Document Time-stamp, senza sovrascrivere la coppia della firma ordinaria. La diagnostica del timestamp viene popolata solo dopo che i controlli di struttura del token e di message imprint consentono l'esecuzione della verifica CMS

Con CheckRevocation = False, i motivi diagnostici restano pcrrNone e gli errori restano zero. Gli stessi default valgono quando un controllo non viene raggiunto o il suo backend non fornisce un motivo dettagliato, quindi leggere sempre lo stato corrispondente invece di trattare una diagnostica vuota come un successo

Note

Esempio

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

Vedere anche

ValidatePades FPdfTrustedList AnalyzeSignatureRevisions RenewPadesArchiveTimestamp