function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;
function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean;
Beide methoden leggen de exacte originele bron vast die de actieve component bewaart — bestand, geheugenbuffer, custom stream of voltooide progressieve bron — en valideren nooit een kopie die PDFium opnieuw heeft opgeslagen
Elke gewone handtekening wordt gecontroleerd tegen zijn originele ByteRange, CMS signed attributes en handtekeningwaarde, de signing-certificate-v2-binding, de actuele certificaatketen van de geconfigureerde backend en optioneel revocation-bewijs
Handtekening-timestamps en Document Time-stamps valideren bovendien hun SHA-256 message imprint, de bijgevoegde CMS-handtekening, de TSA-keten en optionele revocation-status
Het timestamp-signercertificaat moet een kritische Extended Key Usage-extensie hebben die alleen id-kp-timeStamping bevat, zoals vereist door RFC 3161 sectie 2.3. Een ontbrekende, niet-kritische, gemengde of andere EKU levert een ongeldige TimeStampTrustStatus op, zelfs wanneer de CMS-handtekening en de basiscertificaatketen van het token geldig zijn; de buitenste documenthandtekening behoudt zijn onafhankelijke resultaten
De asynchrone overload legt de bron vast vóór de dispatch en meldt voltooiing via TPadesTrustValidationReply
| NetworkPolicy | ptnpOffline gebruikt uitsluitend gecachte certificaatgegevens, terwijl ptnpOnline Windows-ketenopvraag toestaat |
| CheckRevocation | Vraagt de keten-revocationevaluatie van de geconfigureerde backend aan; Windows sluit het rootcertificaat uit, terwijl OpenSSL geconfigureerde CRL's tegen de keten controleert |
| CheckTimeStamps | Valideert handtekening-timestamp- en Document Time-stamp-tokens wanneer aanwezig |
| UrlRetrievalTimeoutMs | Begrenst de native URL-opvraag die door keten- en revocationverwerking wordt gebruikt |
| QualifiedTrustEvaluator | Evalueert de signer en de verzamelde keten optioneel tegen een geauthenticeerde offline trusted-list-snapshot |
| QualifiedValidationTime | Kiest de UTC-servicehistorie-evaluatietijd, waarbij nul de actuele tijd gebruikt |
| CancellationToken | Stopt bij de eerstvolgende validatiefase-grens |
| OnProgress | Ontvangt de fase, de handtekeningindex, het aantal handtekeningen en het totale percentage |
TPadesValidationResult.Signatures rapporteert onafhankelijke ByteRangeStatus-, CmsSignatureStatus-, AlgorithmPolicyStatus-, SigningCertificateStatus-, CertificateTrustStatus-, QualifiedTrustStatus-, RevocationStatus-, TimeStampStatus-, TimeStampSignatureStatus-, TimeStampTrustStatus- en TimeStampRevocationStatus-waarden, terwijl QualifiedTrust de gematchte territory, provider, service, type, status en starttijd identificeert
AlgorithmInfo registreert de CMS-digest- en handtekening-OIDs plus de public-key- en named-curve-OIDs van het handtekeningcertificaat, en past de ISO/TS 32002-regels voor NIST, Brainpool, Ed25519, Ed448 en curve-naar-digest toe voordat integriteit wordt geaccepteerd
Niet-ondersteunde algoritmen, onbeschikbare platform-trustservices, onvolledig revocation-bewijs en geannuleerde validatie worden niet tot geldige statussen gepromoveerd
Elke handtekeningentry bevat RevocationReason en NativeRevocationError uit zijn CMS-verificatie, plus onafhankelijke TimeStampRevocationReason en NativeTimeStampRevocationError uit de verificatie van het timestamp-token. De redenvelden gebruiken TPdfCmsRevocationReason; de native foutvelden zijn Cardinal-waarden in de foutruimte van de gekozen backend, zoals de X509_V_ERR_*-codes van OpenSSL of een ruwe Windows-provider- of GetLastError-DWORD. Windows-waarden blijven onaangetast en worden niet naar een gemeenschappelijke HRESULT-ruimte omgezet
Het timestamppaar beschrijft een ingesloten signature timestamp of een Document Time-stamp, zonder het gewone handtekeningenpaar te overschrijven. Timestampdiagnostiek wordt pas gevuld nadat de tokenstructuur- en message-imprint-controles CMS-verificatie toelaten
Met CheckRevocation = False blijven diagnostische redenen op pcrrNone en fouten op nul staan. Dezelfde defaults gelden wanneer een controle niet wordt bereikt of zijn backend geen gedetailleerde reden levert, dus lees altijd de bijbehorende status en behandel een lege diagnose nooit als succes
Active True is en dat er een complete snapshot van de originele bron isOnProgress draait op de workerthread wanneer het via ValidatePadesTrustAsync wordt aangeroepen en mag UI-controls niet rechtstreeks manipulerenTPdfFuture-mainthread-synchronisatiemodus
var
Options: TPadesTrustValidationOptions;
Validation: TPadesValidationResult;
begin
Options := TPadesTrustValidationOptions.Default;
Options.NetworkPolicy := ptnpOnline;
Options.CheckRevocation := True;
Validation := Pdf1.ValidatePadesTrust(Options);
end;