Batch-signaturvalidering med delade cachear
HotPDF kan validera varje signatur i ett inläst dokument i ett svep genom tre delade cachear: en certifikatsökvägscache nycklad av CMS-certifikatsuppsättningen och de effektiva valideringsalternativen, en tidsstämpelcache nycklad av CMS-blobben och /ByteRange samt THPDFRevocationEvidenceCache-bevisarkivet nycklat av utfärdare och serienummer
THotPDF.ValidateLoadedSignatureBatch
Startpunkten på dokumentnivå räknar upp varje signaturfält, verifierar varje /ByteRange byte för byte mot källan, samlar DSS- och /VRI-bevis samt kör certifikatsökvägsvalidering med de delade cachearna. WorkerLimit som är större än ett utvärderar sökvägar på parallella arbetare
var
Options: THPDFSignatureBatchOptions;
Result: THPDFSignatureBatchResult;
begin
PDF.LoadFromFile('Signed.pdf');
Options:= THPDFSignatureBatchOptions.Default;
Options.CertificateOptions.TrustAnchors:= MyAnchors;
Result:= PDF.ValidateLoadedSignatureBatch(Options);
if Result.AllSignaturesValid then
WriteLn('All ', Result.SignatureCount, ' signatures valid');
end;
Delade cachear
Signaturer som upprepar samma signerarkedja återanvänder det tidigare sökvägsbeslutet i stället för att beräkna om det: sökvägscache-nicklarna täcker CMS-certifikatsuppsättningen, förtroendeankaren, mellanliggande, varje OCSP-, CRL- och delta-CRL-blobb i utvärderingsordning, återkallelseläge, valideringstid och det fullständiga policyblocket. Bevis som injiceras från en cache taggas med vesCache-beviskällan
Återkallelsecachen lagrar varje OCSP-svar och CRL som setts under en batch, nycklad av utfärdar-DN, serienummer och giltighetsfönster, så att senare signaturer och senare batchar som delar samma THPDFRevocationEvidenceCache-instans löser upp återkallelse utan att återleverera bevis
Tidsstämpelcachen memoierar byte-verifieringsbeslut för hela-CMS-dokumenttidsstämplar (ETSI.RFC3161) och inbäddade signaturtidsstämpel-token. En cacheträff på en inbäddad token sätter THPDFCMSVerifyOptions.SkipSignatureTimestampVerification, vilket hoppar över token-återverifieringen medan den primära CMS-signaturen fortfarande kontrolleras fullständigt
Fristående batch-motor
THPDFSignatureValidationBatch accepterar jobb vars Info redan bär byte-verifieringsbeslutet, för anropare som äger källströmmen eller verifierar utanför komponenten. FailFast slutar sända ut efter det första negativa beslutet, och en THPDFCancellationToken lämnar återstående poster som sbsCancelled
Batch:= THPDFSignatureValidationBatch.Create(Options);
try
Batch.AddJob(Job);
Result:= Batch.Run;
finally
Batch.Free;
end;
Strukturerade resultat
Varje post rapporterar signatur- och certifikatstatusen, den cache den återanvände samt per-signaturdiagnostik; HPDFSignatureBatchResultToJSON renderar hela batchen med cachstatistik som maskinläsbar JSON