function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;
function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean;
Beide Methoden erfassen die exakte ursprüngliche Datei, den Speicherpuffer, den benutzerdefinierten Stream oder die vollständig geladene progressive Quelle, die von der aktiven Komponente vorgehalten wird, und prüfen niemals eine von PDFium neu gespeicherte Kopie
Jede gewöhnliche Signatur wird gegen ihre ursprüngliche ByteRange, die CMS-signierten Attribute und den Signaturwert, die signing-certificate-v2-Bindung, die aktuelle Zertifikatskette des konfigurierten Backends und optionale Sperrnachweise geprüft
Signaturzeitstempel und Document Time-stamps validieren zusätzlich ihren SHA-256-Nachrichten-Imprint, die beigefügte CMS-Signatur, die TSA-Kette und den optionalen Sperrstatus
Das TSA-Signaturzertifikat muss nach RFC 3161 Abschnitt 2.3 eine kritische Extended-Key-Usage-Erweiterung mit ausschließlich id-kp-timeStamping haben; fehlende, nicht kritische, gemischte oder andere EKU ergibt ungültiges TimeStampTrustStatus, selbst bei gültiger Token-CMS-Signatur und Basiskette; die äußere Dokumentensignatur behält unabhängige Ergebnisse
Die asynchrone Überladung erfasst die Quelle vor der Ausführung und meldet den Abschluss über TPadesTrustValidationReply
| NetworkPolicy | ptnpOffline verwendet ausschließlich zwischengespeicherte Zertifikatsdaten, während ptnpOnline das Abrufen der Windows-Kette erlaubt |
| CheckRevocation | Fordert die Ketten-Sperrprüfung des konfigurierten Backends an; Windows schließt das Root-Zertifikat aus, während OpenSSL konfigurierte CRLs gegen die Kette prüft |
| CheckTimeStamps | Validiert Signaturzeitstempel- und Document Time-stamp-Token, wenn vorhanden |
| UrlRetrievalTimeoutMs | Begrenzt den nativen URL-Abruf, der von Ketten- und Sperrverarbeitung verwendet wird |
| QualifiedTrustEvaluator | Bewertet Signaturgeber und gesammelte Kette optional gegen einen authentifizierten Offline-Trusted-List-Snapshot |
| QualifiedValidationTime | Wählt den UTC-Auswertungszeitpunkt des Service-Verlaufs; null verwendet die aktuelle Zeit |
| CancellationToken | Stoppt an der nächsten Validierungsstufen-Grenze |
| OnProgress | Empfängt die Stufe, den Signaturindex, die Signaturanzahl und den Gesamtprozentsatz |
TPadesValidationResult.Signatures meldet unabhängige Werte für ByteRangeStatus, CmsSignatureStatus, AlgorithmPolicyStatus, SigningCertificateStatus, CertificateTrustStatus, QualifiedTrustStatus, RevocationStatus, TimeStampStatus, TimeStampSignatureStatus, TimeStampTrustStatus und TimeStampRevocationStatus, während QualifiedTrust das übereinstimmende Gebiet, den Anbieter, den Dienst, den Typ, den Status und die Startzeit identifiziert
AlgorithmInfo zeichnet die CMS-Digest- und Signatur-OIDs sowie die Public-Key- und Named-Curve-OIDs des Signaturzertifikats auf und wendet die ISO/TS-32002-Regeln für NIST, Brainpool, Ed25519, Ed448 und Kurve-zu-Digest an, bevor die Integrität akzeptiert wird
Nicht unterstützte Algorithmen, nicht verfügbare Plattform-Vertrauensdienste, unvollständige Sperrnachweise und abgebrochene Validierungen werden nicht in gültige Zustände überführt
Jeder Signatureintrag enthält RevocationReason und NativeRevocationError aus seiner CMS-Verifikation, plus unabhängige TimeStampRevocationReason und NativeTimeStampRevocationError aus der Zeitstempel-Token-Verifikation. Die Grundfelder verwenden TPdfCmsRevocationReason; native Fehlerfelder sind Cardinal-Werte im Fehlerraum des gewählten Backends, etwa OpenSSLs X509_V_ERR_*-Codes oder ein roher Windows-Provider- bzw. GetLastError-DWORD. Windows-Werte werden ohne Umrechnung in einen gemeinsamen HRESULT-Raum bewahrt
Das Zeitstempel-Paar beschreibt einen eingebetteten Signaturzeitstempel oder einen Document Time-stamp, ohne das gewöhnliche Signaturpaar zu überschreiben. Zeitstempel-Diagnosen füllen sich erst, wenn Tokenstruktur und Message-Imprint-Prüfung der CMS-Verifikation erlauben zu laufen
Mit CheckRevocation = False bleiben Diagnosegründe auf pcrrNone und Fehler auf null. Denselben Defaults begegnet man, wenn eine Prüfung nicht erreicht wird oder ihr Backend keinen detaillierten Grund liefert; lesen Sie also immer den zugehörigen Status, statt eine leere Diagnose als Erfolg zu werten
Active True ist und ein vollständiger Snapshot der Originalquelle vorliegtOnProgress läuft im Worker-Thread, wenn es von ValidatePadesTrustAsync aufgerufen wird, und darf UI-Steuerelemente nicht direkt manipulierenTPdfFuture
var
Options: TPadesTrustValidationOptions;
Validation: TPadesValidationResult;
begin
Options := TPadesTrustValidationOptions.Default;
Options.NetworkPolicy := ptnpOnline;
Options.CheckRevocation := True;
Validation := Pdf1.ValidatePadesTrust(Options);
end;