Dávkové ověřování podpisů
HotPDF ověřuje více podpisů načteného dokumentu v určeném pořadí a pro každý podpis vrací samostatný výsledek, diagnostiku a stav oprávnění Všechna ověření přitom sdílejí tři mezipaměti — certifikátových cest, časových razítek vázaných na CMS blob a /ByteRange — a ukladiště důkazů THPDFRevocationEvidenceCache
Omezené zpracování
Pracovní postup omezuje počet podpisů, velikost dat i délku řetězce certifikátů, aby neověřený dokument nemohl spotřebovat neomezené prostředky Vstupní bod na úrovni dokumentu bajtově ověří každý /ByteRange proti zdroji, sebere důkazy DSS a /VRI a provede ověření certifikátových cest se sdílenými mezipaměťmi; počet paralelních pracovníků pro vyhodnocování cest řídí WorkerLimit
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;Použití
Pro důvěryhodné posouzení zadejte kotvy důvěry, čas ověření a pravidla odvolání; bez nich HotPDF neprovádí síťové dotazy ani nevytváří nevyjádřený závěr o důvěřevesCache
THotPDF.ValidateLoadedSignatureBatchHPDFSignatureBatchResultToJSON
Mezipaměť časových razítek si pamatuje výsledky bajtového ověřování pro časová razítka celého dokumentu CMS (ETSI.RFC3161) i pro vložené tokeny časového razítka podpisu. Zásah do mezipaměti u vloženého tokenu nastaví THPDFCMSVerifyOptions.SkipSignatureTimestampVerification, takže token se znovu neověřuje, zatímco primární podpis CMS se dál kontroluje v plném rozsahu
Samostatný dávkový engine
THPDFSignatureValidationBatch přijímá úlohy, jejichž Info už obsahuje výsledek bajtového ověření — hodí se pro volající, kteří vlastní zdrojový stream nebo ověřují mimo komponentu. FailFast po prvním negativním výsledku přestane úlohy odesílat a THPDFCancellationToken ponechá zbývající položky ve stavu sbsCancelled
Batch:= THPDFSignatureValidationBatch.Create(Options);
try
Batch.AddJob(Job);
Result:= Batch.Run;
finally
Batch.Free;
end;
Strukturované výsledky
Každá položka uvádí stav podpisu i certifikátu, mezipaměť, kterou využila, a diagnostiku konkrétního podpisu; HPDFSignatureBatchResultToJSON vykreslí celou dávku včetně statistik mezipamětí jako strojově čitelné JSON