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