Batchvalidering af signaturer med delte caches
HotPDF kan validere alle signaturer i et indlæst dokument i én gennemgang med tre delte caches: en cache til certifikatstier, der er nøglet efter CMS-certifikatsættet og de effektive valideringsindstillinger, en tidsstempelcache nøglet efter CMS-blobben og /ByteRange, samt bevislageret THPDFRevocationEvidenceCache, der er nøglet efter udsteder og serienummer
THotPDF.ValidateLoadedSignatureBatch
Indgangspunktet på dokumentniveau opregner hvert signaturfelt, byteverificerer hvert /ByteRange mod kilden, indsamler DSS- og /VRI-beviser og udfører validering af certifikatsti med de delte caches. WorkerLimit større end én evaluerer stier på parallelle arbejdere
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;
Delte caches
Signaturer, der gentager den samme underskriverkæde, genbruger den tidligere stiafgørelse i stedet for at genberegne den. Sticachens nøgler omfatter CMS-certifikatsættet, tillidsankre, mellemcertifikater, alle OCSP-, CRL- og delta-CRL-blobs i evalueringsrækkefølge, tilbagekaldelsestilstand, valideringstid og den komplette politikblok. Bevis, der indsættes fra en cache, mærkes med beviskilden vesCache
Tilbagekaldelsescachen gemmer hvert OCSP-svar og hver CRL, der ses under en batch, nøglet efter udsteder-DN, serienummer og gyldighedsvindue, så senere signaturer og senere batches, der deler den samme THPDFRevocationEvidenceCache-instans, kan opløse tilbagekaldelse uden at få beviser leveret igen
Tidsstempelcachen memoiserer afgørelser om byteverifikation for dokumenttidsstempler med hele CMS (ETSI.RFC3161) og indlejrede signaturtidsstempeltokens. Et cachetræf på et indlejret token angiver THPDFCMSVerifyOptions.SkipSignatureTimestampVerification og springer tokenets genverifikation over, mens den primære CMS-signatur stadig kontrolleres fuldt ud
Selvstændig batchmotor
THPDFSignatureValidationBatch accepterer job, hvis Info allerede har resultatet af byteverifikationen, til kaldere der ejer kildestreamen eller verificerer uden for komponenten. FailFast stopper udsendelse efter den første negative afgørelse, og et THPDFCancellationToken efterlader resterende poster som sbsCancelled
Batch:= THPDFSignatureValidationBatch.Create(Options);
try
Batch.AddJob(Job);
Result:= Batch.Run;
finally
Batch.Free;
end;
Strukturerede resultater
Hver post rapporterer signatur- og certifikatstatus, den cache den genbrugte og diagnosticering pr. signatur. HPDFSignatureBatchResultToJSON gengiver hele batchen med cachestatistik som maskinlæsbar JSON