Validacija potpisa u seriji s dijeljenim predmemorijama
HotPDF može validirati svaki potpis učitanog dokumenta u jednom prolazu kroz tri dijeljene predmemorije: predmemoriju putanje certifikata ključanu skupom CMS certifikata i učinkovitim opcijama validacije, predmemoriju vremenskih oznaka ključanu CMS blobom i /ByteRange te pohranu dokaza THPDFRevocationEvidenceCache ključanu izdavateljem i serijskim brojem
THotPDF.ValidateLoadedSignatureBatch
Ulazna točka na razini dokumenta enumerira svako polje potpisa, bajtno provjerava svaki /ByteRange prema izvoru, prikuplja DSS i /VRI dokaze te pokreće validaciju putanje certifikata s dijeljenim predmemorijama. WorkerLimit veći od jedan procjenjuje 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;
Dijeljene predmemorije
Potpisi koji ponavljaju isti lanac potpisnika ponovno koriste prethodnu presudu putanje umjesto ponovnog izračuna: ključevi predmemorije putanje pokrivaju skup CMS certifikata, sidra povjerenja, međuprodukte, svaki OCSP, CRL i delta-CRL blob u redoslijedu evaluacije, način opoziva, vrijeme validacije i cijeli blok pravila. Dokazi uneseni iz predmemorije označeni su izvorom dokaza vesCache
Predmemorija opoziva pohranjuje svaki OCSP odgovor i CRL viđen tijekom serije, ključan DN-om izdavatelja, serijskim brojem i prozorom valjanosti, tako da kasniji potpisi i kasnije serije koje dijele istu instancu THPDFRevocationEvidenceCache razrješuju opoziv bez ponovnog isporučivanja dokaza
Predmemorija vremenskih oznaka pamti presude bajtne verifikacije za vremenske oznake dokumenta cijelog CMS-a (ETSI.RFC3161) i tokena vremenskih oznaka ugrađenih u potpis. Pogodak predmemorije na ugrađeni token postavlja THPDFCMSVerifyOptions.SkipSignatureTimestampVerification, preskačući ponovnu verifikaciju tokena dok se primarni CMS potpis još uvijek u potpunosti provjerava
Samostalni serijski motor
THPDFSignatureValidationBatch prihvaća poslove čiji Info već nosi presudu bajtne verifikacije, za pozivatelje koji posjeduju izvorni tok ili provjeravaju izvan 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 izvještava o statusu potpisa i certifikata, predmemoriji koju je ponovno koristio i dijagnostici po potpisu; HPDFSignatureBatchResultToJSON renderira cijelu seriju sa statistikom predmemorije kao strojno čitljiv JSON