Batch Signature Validation with Shared Caches
HotPDF có thể xác thực mọi chữ ký của một tài liệu đã nạp trong một lần duyệt qua ba cache dùng chung: một cache đường dẫn chứng chỉ khóa theo tập chứng chỉ CMS và các tùy chọn xác thực hiệu lực, một cache dấu thời gian khóa theo blob CMS và /ByteRange, và kho bằng chứng THPDFRevocationEvidenceCache khóa theo nhà phát hành và số sê-ri
THotPDF.ValidateLoadedSignatureBatch
Điểm vào cấp tài liệu liệt kê mọi field chữ ký, xác minh byte từng /ByteRange so với nguồn, thu thập bằng chứng DSS và /VRI, và chạy xác thực đường dẫn chứng chỉ với các cache dùng chung. WorkerLimit lớn hơn một đánh giá các đường dẫn trên worker song song
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;
Cache dùng chung
Chữ ký lặp lại cùng chuỗi người ký tái sử dụng phán quyết đường dẫn trước đó thay vì tính lại: các khóa cache đường dẫn bao phủ tập chứng chỉ CMS, trust anchor, trung gian, mọi blob OCSP, CRL, và delta-CRL theo thứ tự đánh giá, chế độ thu hồi, thời gian xác thực, và toàn bộ khối chính sách. Bằng chứng được chèn từ cache được gắn thẻ nguồn bằng chứng vesCache
Cache thu hồi lưu mọi phản hồi OCSP và CRL thấy trong một batch, khóa theo DN nhà phát hành, số sê-ri, và cửa sổ hiệu lực, nên các chữ ký sau và các batch sau dùng chung cùng thể hiện THPDFRevocationEvidenceCache giải quyết thu hồi mà không cần cung cấp lại bằng chứng
Cache dấu thời gian ghi nhớ các phán quyết xác minh byte cho dấu thời gian tài liệu toàn CMS (ETSI.RFC3161) và token dấu thời gian chữ ký nhúng. Một lần trúng cache trên token nhúng đặt THPDFCMSVerifyOptions.SkipSignatureTimestampVerification, bỏ qua việc xác minh lại token trong khi chữ ký CMS chính vẫn được kiểm tra đầy đủ
Engine batch độc lập
THPDFSignatureValidationBatch chấp nhận các job có Info đã mang phán quyết xác minh byte, cho những caller sở hữu stream nguồn hoặc xác minh bên ngoài thành phần. FailFast dừng điều phối sau phán quyết âm đầu tiên, và một THPDFCancellationToken để các mục còn lại ở trạng thái sbsCancelled
Batch:= THPDFSignatureValidationBatch.Create(Options);
try
Batch.AddJob(Job);
Result:= Batch.Run;
finally
Batch.Free;
end;
Kết quả có cấu trúc
Mỗi mục báo cáo trạng thái chữ ký và chứng chỉ, cache nó đã tái sử dụng, và chẩn đoán theo từng chữ ký; HPDFSignatureBatchResultToJSON kết xuất toàn bộ batch với thống kê cache dưới dạng JSON máy đọc được