Paylaşılan Önbelleklerle Toplu İmza Doğrulama
HotPDF, yüklenen bir belgenin her imzasını üç paylaşılan önbellekten geçen tek geçişte doğrulayabilir: CMS sertifika kümesi ve etkin doğrulama seçenekleriyle anahtarlanan bir sertifika yolu önbelleği, CMS bloğu ve /ByteRange ile anahtarlanan bir zaman damgası önbelleği ve veren ve seri ile anahtarlanan THPDFRevocationEvidenceCache kanıt deposu
THotPDF.ValidateLoadedSignatureBatch
Belge düzeyindeki giriş noktası her imza alanını numaralandırır, her /ByteRange değerini kaynağa karşı bayt olarak doğrular, DSS ve /VRI kanıtını toplar ve paylaşılan önbelleklerle sertifika yolu doğrulamasını çalıştırır. Birden büyük WorkerLimit yolları paralel çalışanlarda değerlendirir
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;
Paylaşılan önbellekler
Aynı imzalayan zincirini tekrarlayan imzalar, önceki yol kararını yeniden hesaplamak yerine yeniden kullanır: yol önbellek anahtarları CMS sertifika kümesini, güven köklerini, ara sertifikaları, değerlendirme sırasındaki her OCSP, CRL ve delta-CRL bloğunu, iptal modunu, doğrulama süresini ve eksiksiz politika bloğunu kapsar. Önbellekten eklenen kanıt vesCache kanıt kaynağıyla etiketlenir
İptal önbelleği, bir toplu sırasında görülen her OCSP yanıtını ve CRL'yi veren DN, seri numarası ve geçerlilik penceresiyle anahtarlayarak saklar; böylece aynı THPDFRevocationEvidenceCache örneğini paylaşan daha sonraki imzalar ve toplular, kanıtı yeniden sağlamadan iptali çözer
Zaman damgası önbelleği, tüm-CMS belge zaman damgaları (ETSI.RFC3161) ve gömülü imza zaman damgası belirteçleri için bayt doğrulama kararlarını önbelleğe alır. Gömülü bir belirteçteki önbellek isabeti, birincil CMS imzası tamamen denetlenirken belirtecin yeniden doğrulanmasını atlayarak THPDFCMSVerifyOptions.SkipSignatureTimestampVerification ayarlar
Bağımsız toplu motor
THPDFSignatureValidationBatch, bayt doğrulama kararını zaten taşıyan Info değerine sahip işleri kabul eder; kaynak akışına sahip olan veya bileşen dışında doğrulayan çağıranlar için. FailFast ilk olumsuz karardan sonra gönderimi durdurur ve bir THPDFCancellationToken kalan girdileri sbsCancelled bırakır
Batch:= THPDFSignatureValidationBatch.Create(Options);
try
Batch.AddJob(Job);
Result:= Batch.Run;
finally
Batch.Free;
end;
Yapılandırılmış sonuçlar
Her girdi, imza ve sertifika durumunu, yeniden kullandığı önbelleği ve imza başına tanılamaları raporlar; HPDFSignatureBatchResultToJSON tüm topluyu önbellek istatistikleriyle makine tarafından okunabilir JSON olarak işler