function WinCryptoAvailable: Boolean;
function WinCmsVerificationAvailable: Boolean;
function VerifyWinDetachedCms(const CmsDer: TBytes; Segment1: Pointer; Segment1Length: Cardinal; Segment2: Pointer; Segment2Length: Cardinal): TWinCmsVerifyResult;
function VerifyWinDetachedCmsEx(const CmsDer: TBytes; Segment1: Pointer; Segment1Length: Cardinal; Segment2: Pointer; Segment2Length: Cardinal; const Options: TWinCmsVerifyOptions): TWinCmsVerifyResult;
function VerifyWinAttachedCmsEx(const CmsDer: TBytes; const Options: TWinCmsVerifyOptions): TWinCmsVerifyResult;
function ResolveWinSigner(const Options: TPadesSignerOptions): TPadesResolvedSigner;
function TestBuildWinCmsTrust(SignerCert: Pointer;
const Options: TWinCmsVerifyOptions; GetChain, VerifyPolicy,
FreeChain: Pointer): TWinCmsVerifyResult; // PDFIUMPAS_CRYPTO_TESTS only
FPdfCryptoWin är den Windows-specifika kryptobackenden som FPdfCrypto konsumerar. Den öppnar current-user- och local-machine-certifikatbutikerna via CryptoAPI, lokaliserar certifikatet som matchar det begärda tumavtrycket, hämtar det tillhörande NCRYPT-privatnyckelhandtaget och returnerar en TPadesResolvedSigner vars ICmsSigner signerar via CNG
WinCryptoAvailable gör den lätta kontrollen att Crypt32-/ncrypt-bindningarna kan lösas upp, så att anropare kan avgöra vid uppstart om PAdES-signering kommer att vara möjlig på den här maskinen
VerifyWinDetachedCms validerar ett fristående CMS-värde mot två anroparägda bytesegment, returnerar signerarcertifikatet och utvärderar dess kedja med Windows baspolicy i enbart cache-läge utan nätverkshämtning
De utökade verifieringsfunktionerna accepterar TWinCmsVerifyOptions så att anropare kan aktivera onlinehämtning av certifikat, begära återkallningskontroll, sätta en hämtningstimeout och observera verifieringscheckpoints
Signaturgiltighet och certifikattillit är oberoende resultat, så en autentisk signatur från ett obetrott eller självsignerat certifikat förblir skiljbar från manipulerat innehåll
| Function | Description |
|---|---|
WinCryptoAvailable | Returnerar True när Windows Crypt32- och ncrypt-bindningarna kan lösas upp vid körning |
WinCmsVerificationAvailable | Returnerar True när fristående CMS-verifiering och certifikatkedjepolicy-API:er är tillgängliga |
VerifyWinDetachedCms | Verifierar CMS:ens signerade attribut och signatur över två fristående innehållssegment och rapporterar aktuell systemtillit i enbart cache-läge separat |
VerifyWinDetachedCmsEx | Verifierar fristående CMS-innehåll med explicita alternativ för onlinehämtning, återkallning, timeout och checkpoints |
VerifyWinAttachedCmsEx | Verifierar ett bifogat CMS-värde och utvärderar dess signerarcertifikat med de angivna alternativen |
ResolveWinSigner | Löser upp ett tumavtryck till en signerare, certifikat-DER och kedja med Windows-certifikatbutiken och CNG-privatnyckeln |
TestBuildWinCmsTrust | Testvillkorad krok som bara kompileras under PDFIUMPAS_CRYPTO_TESTS: byter CNG-funktionspekarna för kedjepolicyn mot anroparlevererade stubbar, kör tillitsbyggnaden med signaturstatusen förinställd på valid och återställer pekarna, så kryptoenhetstesterna kan öva BuildWinCmsTrust utan en riktig certifikatkedja |
| Type | Members and purpose |
|---|---|
TWinCmsVerifyStatus | wcvsUnavailable, wcvsValid, wcvsInvalid, wcvsUnsupported eller wcvsIndeterminate |
TWinCmsVerifyStage | wcvstCryptographicSignature, wcvstChainBuild, wcvstOnlineRetrieval eller wcvstRevocationCheck |
TWinCmsVerifyCheckpoint | Callback för objektmetod som tar emot varje TWinCmsVerifyStage |
TWinCmsVerifyOptions | OnlineRetrieval, CheckRevocation, CollectChainCertificates, UrlRetrievalTimeoutMs, OnCheckpoint och den statiska fabriken Default |
TWinCmsVerifyResult | Alias av TPdfCmsVerifyResult, med SignatureStatus, TrustStatus, RevocationStatus, SignatureError, TrustError, SignerCertificate, ChainCertificates, RevocationReason och RevocationError |
Med CheckRevocation påslagen bygger backenden en separat återkallningskedja och fyller RevocationStatus, RevocationReason och RevocationError. Underkända återkallningskontroller skriver inte över signaturresultatet eller den oberoende utvärderade TrustStatus och TrustError
För en välbildad nativ kedja ger bekräftad återkallning wcvsInvalid med pcrrCertificateRevoked. Utan bekräftad återkallning ger en obetrodd kedja wcvsIndeterminate med pcrrChainUntrusted; ofullständiga nativa strukturer och andra ouppklarade återkallningskontroller förblir wcvsIndeterminate med pcrrUnknown
Ett giltigt resultat kräver en betrodd kedja, inga kedjefel, minst ett certifikat som kräver återkallningskontroll och ett lyckat nativt återkallningsresultat för varje sådant certifikat. Bara ett slutcertifikat som uttryckligen är markerat som självsignerat, eller en betrodd CA-ankare, undantas från det täckningskravet; en kedja med bara roten eller saknat evidens per certifikat förblir indeterminerad
RevocationError bevarar ett rått DWORD från CERT_REVOCATION_INFO.dwRevocationResult, eller det omedelbara GetLastError-värdet när anropet av återkallningskedjan misslyckas. Noll betyder att ingen nativ diagnostik finns, även när en kedjestatus fastställer återkallning utan motsvarande leverantörskod. De aggregerade CERT_TRUST_STATUS.dwErrorStatus-bitarna används för klassificering och kopieras inte in i det här fältet som ett påhittat nativt fel
Tolka råvärdet i dess Windows-leverantörs- eller API-kontext; det är inte garanterat att det är ett HRESULT. Offline-, inaktuellt eller okänt återkallningsevidens identifierar inte utgånga CRL:er, felformade CRL:er eller felaktiga CRL-signaturer, så denna backend härleder inte de där detaljerade orsakerna
Med OnlineRetrieval = False använder både kedjebyggnad och återkallningskontroll enbart cachad hämtning. Aktiverad onlinehämtning tillåter Windows kedjemotor att hämta stödevidensen inom den konfigurerade hämtningstimeouten
PadesCryptoAvailable = False om ingen annan backend är registreradTWinCmsVerifyOptions.Default bevarar verifiering i enbart cache-läge; välj onlinehämtning och återkallningskontroll endast när applikationen accepterar nätverksåtkomst och dess latensRevocationReason: TPdfCmsRevocationReason och RevocationError: Cardinal. När återkallning är avstängd eller dess pass inte nås behåller fälten pcrrNone och noll; samma värden följer en lyckad kontroll, så använd RevocationStatus för slutsatsenNativeRevocationError och NativeTimeStampRevocationError