CMS Özet Algoritması Tutarlılığı

HotPDF, imzalı belge aralıklarını okumadan, içeriği hash'lemeden, sertifika yolları oluşturmadan veya bir imza sağlayıcı çağırmadan önce tutarsız CMS algoritma tanımlayıcılarını teşhis eder

Tutarlılık denetimleri

Güncel SignerInfo.digestAlgorithm, onu saran SignedData.digestAlgorithms kümesinde bulunmalıdır; ilgisiz fazladan algoritmalara ise birlikte çalışabilir çoklu imzalayan container'lar için izin verilmeye devam eder

Öze özgü RSA PKCS#1 v1.5 ve ECDSA imza OID'leri ile RSA-PSS parametrelerindeki açık hash, SignerInfo.digestAlgorithm ile aynı özeti seçmelidir

RFC 6211 CMSAlgorithmProtection imzalı özniteliği mevcutsa tek bir değerle yalnızca bir kez yer almalıdır; korunan özet ve imza AlgorithmIdentifier değerleri gerçek SignerInfo alanlarıyla eşleşmelidir

Parametresiz algoritma tanımlayıcılarında parametre yokluğu ile DER NULL parametresi eşdeğer sayılarak karşılaştırılır; diğer parametreler birebir karşılaştırılır, böylece parametreli imza mekanizmaları sessizce normalleştirilemez

Makine tarafından okunabilir sonuç

HPDFParseCMSSignature, başarıyla ayrıştırılmış meta verileri korur ancak bir tutarlılık denetimi başarısız olduğunda THPDFSignatureInfo.Status değerini svDigestAlgorithmMismatch yapar

Doğrulama svDigestAlgorithmMismatch döndürür, doğrulama raporları vfcDigestAlgorithmMismatch kullanır ve JSON digestAlgorithmMismatch yayınlar; bu durum hatalı biçimli CMS, desteklenmeyen algoritma ya da içerik özeti uyuşmazlığına indirgenmez

THPDFSignatureInfo.DigestAlgorithmOID imzalayan özet OID'sini kaydeder, THPDFSignatureInfo.DigestConsistencyIssue ise aşağıdaki nedenlerden birini seçer

JSON imzalayan nesneleri aynı bilgiyi digestAlgorithmOID ve digestConsistencyIssue alanlarıyla sunar; değerler signerDigestNotDeclared, signatureDigestMismatch, algorithmProtectionDigestMismatch veya algorithmProtectionSignatureMismatch olur

Zaman damgaları ve öncelik sırası

RFC 3161 belge zaman damgaları ve imzasız signature-timestamp token'ları aynı denetimleri kullanır; bunların THPDFTimestampInfo.DigestConsistencyIssue değeri, tutarsız iç içe CMS container'ını teşhis eder

Yapısal hatalar yine hatalı biçimli CMS olarak başarısız olur, bilinmeyen imzalayan özetleri desteklenmeyen kalır ve ilk deterministik tutarlılık sorunu; container, algoritma koruması, ardından imza mekanizması sırasıyla saklanır

Sağlayıcı ve yüklü belge doğrulama sözleşmeleri için modern imza sağlayıcılarına ve THotPDF.VerifyLoadedSignatureWithOptions sayfasına bakın