PDFium Delphi Component Docs

ValidatePadesTrust metoder

Component: TPdf  ·  Unit: PDFium
Validerar PAdES-signaturintegritet, aktuell systemtillit, valfri återkallningsbevisning och RFC 3161-tidsstempel-token

Syntax

function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;

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

Description

Båda metoderna fångar exakt den ursprungliga fil, minnesbuffert, egen ström eller färdigställda progressiva källa som den aktiva komponenten bevarar och validerar aldrig en PDFium-sparad kopia

Varje vanlig signatur kontrolleras mot sin ursprungliga ByteRange, CMS-signerade attribut och signaturvärde, signing-certificate-v2-bindning, den konfigurerade backendens aktuella certifikatkedja samt valfri återkallningsbevisning

Signaturtidsstämplar och Document Time-stamps validerar dessutom sitt SHA-256-message imprint, bifogad CMS-signatur, TSA-kedja och valfritt återkallningstillstånd

Tidsstämpelsignerarens certifikat måste ha en kritisk Extended Key Usage-utökning som bara innehåller id-kp-timeStamping, enligt RFC 3161 avsnitt 2.3. En saknad, icke-kritisk, blandad eller annan EKU ger en ogiltig TimeStampTrustStatus även när tokenens CMS-signatur och grundläggande certifikatkedja är giltiga; den yttre dokumentsignaturen behåller sina oberoende resultat

Den asynkrona överlagringen fångar källan innan uppgiften skickas iväg och rapporterar färdigställande via TPadesTrustValidationReply

Options

NetworkPolicyptnpOffline använder enbart cachade certifikatdata medan ptnpOnline tillåter Windows-kedjehämtning
CheckRevocationBegär den konfigurerade backendens kedjeåterkallningsbedömning; Windows exkluderar rotcertifikatet, medan OpenSSL kontrollerar konfigurerade CRL:er mot kedjan
CheckTimeStampsValiderar signaturtidsstämpel- och Document Time-stamp-token när de finns
UrlRetrievalTimeoutMsBegränsar den ursprungliga URL-hämtningen som kedje- och återkallningshanteringen använder
QualifiedTrustEvaluatorUtvärderar valfritt signeraren och den insamlade kedjan mot en autentiserad offline-ögonblicksbild av en trusted list
QualifiedValidationTimeVäljer UTC-tiden för service history-bedömningen, där noll använder aktuell tid
CancellationTokenStoppar vid nästa valideringsstegsgräns
OnProgressTar emot steget, signaturindex, antal signaturer och total procentsats

Result

TPadesValidationResult.Signatures rapporterar oberoende värden för ByteRangeStatus, CmsSignatureStatus, AlgorithmPolicyStatus, SigningCertificateStatus, CertificateTrustStatus, QualifiedTrustStatus, RevocationStatus, TimeStampStatus, TimeStampSignatureStatus, TimeStampTrustStatus och TimeStampRevocationStatus, medan QualifiedTrust identifierar matchat territorium, leverantör, tjänst, typ, status och starttid

AlgorithmInfo registrerar CMS-digest- och signatur-OID:er plus signerarcertifikatets publiknyckel- och namngivna kurv-OID:er, och tillämpar ISO/TS 32002-reglerna för NIST, Brainpool, Ed25519, Ed448 och kurva-till-digest innan integriteten godtas

Algoritmer utan stöd, otillgängliga plattformstjänster för tillit, ofullständig återkallningsbevisning och avbruten validering räknas aldrig upp till giltiga tillstånd

Varje signaturpost innehåller RevocationReason och NativeRevocationError från sin CMS-verifiering, plus oberoende TimeStampRevocationReason och NativeTimeStampRevocationError från verifieringen av tidsstämpeltokens. Orsakfälten använder TPdfCmsRevocationReason; de nativa felfälten är Cardinal-värden i den valda backendens felutrymme, som OpenSSLs X509_V_ERR_*-koder eller ett rått Windows-leverantörs- eller GetLastError-DWORD. Windows-värden bevaras utan konvertering till ett gemensamt HRESULT-utrymme

Tidsstämpelparet beskriver en inbäddad signaturtidsstämpel eller en Document Time-stamp, utan att skriva över det vanliga signaturparet. Tidsstämpeldiagnostiken fylls först när tokenstrukturen och message imprint-kontrollerna låter CMS-verifieringen köras

Med CheckRevocation = False förblir diagnostikorsakerna pcrrNone och felen noll. Samma standardvärden gäller när en kontroll inte nås eller dess backend inte levererar någon detaljerad orsak, så läs alltid motsvarande status i stället för att behandla en tom diagnostik som framgång

Remarks

Example

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

See Also

ValidatePades FPdfTrustedList AnalyzeSignatureRevisions RenewPadesArchiveTimestamp