Serijska validacija potpisa sa deljenim keševima

HotPDF može da validira svaki potpis učitanog dokumenta u jednom prolazu kroz tri deljena keša: keš putanje sertifikata ključan po CMS skupu sertifikata i efektivnim opcijama validacije, keš vremenskih žigova ključan po CMS blobu i /ByteRange te skladište dokaza THPDFRevocationEvidenceCache ključano po izdavaocu i serijskom broju

THotPDF.ValidateLoadedSignatureBatch

Ulazna tačka na nivou dokumenta nabraja svako polje potpisa, vrši proveru bajtova svakog /ByteRange u odnosu na izvor, prikuplja DSS i /VRI dokaze i pokreće validaciju putanje sertifikata sa deljenim keševima. WorkerLimit veći od jedan evaluira putanje na paralelnim radnicima

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;

Deljeni keševi

Potpisi koji ponavljaju isti lanac potpisnika ponovo koriste prethodnu presudu putanje umesto ponovnog računanja: ključevi keša putanje pokrivaju CMS skup sertifikata, tačke poverenja, međusertifikate, svaki OCSP, CRL i delta-CRL blob u redosledu evaluacije, režim povlačenja, vreme validacije i kompletan skup pravila. Dokaz ubrizgan iz keša označava se kao izvor dokaza vesCache

Keš povlačenja čuva svaki OCSP odgovor i CRL viđen tokom serije, ključan po DN izdavaoca, serijskom broju i prozoru važnosti, tako da kasniji potpisi i kasnije serije koje dele istu instancu THPDFRevocationEvidenceCache razrešavaju povlačenje bez ponovnog pružanja dokaza

Keš vremenskih žigova pamti presude provere bajtova za vremenske žigove celog CMS dokumenta (ETSI.RFC3161) i ugrađene tokene vremenskih žigova potpisa. Pogodak keša na ugrađenom tokenu postavlja THPDFCMSVerifyOptions.SkipSignatureTimestampVerification, preskačući ponovnu proveru tokena dok se primarni CMS potpis i dalje u potpunosti proverava

Samostalni serijski motor

THPDFSignatureValidationBatch prihvata zadatke čiji Info već nosi presudu provere bajtova, za pozivaoce koji poseduju izvorni tok ili verifikuju van komponente. FailFast zaustavlja raspoređivanje nakon prve negativne presude, a THPDFCancellationToken ostavlja preostale unose kao sbsCancelled

Batch:= THPDFSignatureValidationBatch.Create(Options);
try
  Batch.AddJob(Job);
  Result:= Batch.Run;
finally
  Batch.Free;
end;

Strukturirani rezultati

Svaki unos izveštava o statusu potpisa i sertifikata, kešu koji je ponovo korišćen i dijagnosticiranju po potpisu; HPDFSignatureBatchResultToJSON prikazuje čitavu seriju sa statistikama keša kao JSON čitljiv mašini