CMS Digest-Algorithm Consistency
HotPDF dijagnosticira nedosljedne CMS identifikatore algoritma prije čitanja potpisanih raspona dokumenta, hashiranja sadržaja, izgradnje lanaca certifikata ili pozivanja signature providera
Provjere dosljednosti
Aktualni SignerInfo.digestAlgorithm mora biti prisutan u skupu SignedData.digestAlgorithms koji ga okružuje, dok nepovezani dodatni algoritmi ostaju dopušteni radi interoperabilnih spremnika s više potpisnika
OID-ovi potpisa specifični za digest — RSA PKCS#1 v1.5 potpis i ECDSA potpis — te eksplicitni hash u parametrima RSA-PSS moraju odabrati isti sažetak kao SignerInfo.digestAlgorithm
Kada je prisutan potpisani atribut CMSAlgorithmProtection iz RFC 6211, mora se pojaviti jednom s jednom vrijednošću, a njegovi zaštićeni digest i AlgorithmIdentifier vrijednosti potpisa moraju odgovarati stvarnim poljima SignerInfo
Nepostojeći i DER NULL parametri uspoređuju se kao jednaki za identifikatore algoritma bez parametara; ostali parametri uspoređuju se točno, tako da se parametarski mehanizmi potpisa ne mogu tiho normalizirati
Strojno čitljiv rezultat
HPDFParseCMSSignature zadržava uspješno parsirane metapodatke, ali postavlja THPDFSignatureInfo.Status na svDigestAlgorithmMismatch kada se provjera dosljednosti ne uspije
Verifikacija vraća svDigestAlgorithmMismatch, izvješća o provjeri koriste vfcDigestAlgorithmMismatch, a JSON ispisuje digestAlgorithmMismatch bez sažimanja uvjeta u malformirani CMS, nepodržani algoritam ili nepodudaranje digest sadržaja
THPDFSignatureInfo.DigestAlgorithmOID bilježi OID digest potpisnika, a THPDFSignatureInfo.DigestConsistencyIssue odabire jedan od sljedećih uzroka
dciSignerDigestNotDeclared— poznati digest potpisnika nije prisutan u vanjskom skupu digestovadciSignatureDigestMismatch— fiksni ili parametarski mehanizam potpisa odabire drugi digestdciAlgorithmProtectionDigestMismatch— zaštićeni identifikator digesta razlikuje se od identifikatora digesta potpisnikadciAlgorithmProtectionSignatureMismatch— zaštićeni identifikator potpisa razlikuje se od identifikatora potpisa potpisnika
JSON objekti potpisnika izlažu iste informacije kao digestAlgorithmOID i digestConsistencyIssue s vrijednostima signerDigestNotDeclared, signatureDigestMismatch, algorithmProtectionDigestMismatch ili algorithmProtectionSignatureMismatch
Vremenski žigovi i prvenstvo
Vremenski žigovi dokumenta RFC 3161 i nepotpisani tokeni signature-timestamp koriste iste provjere, a njihova THPDFTimestampInfo.DigestConsistencyIssue vrijednost identificira nedosljedan ugniježđeni CMS spremnik
Strukturne greške i dalje padaju kao malformirani CMS, nepoznati digestovi potpisnika ostaju nepodržani, a prvi deterministički problem dosljednosti zadržava se u redoslijedu spremnik, algorithm-protection, zatim signature-mechanism
Vidi modern signature providers i THotPDF.VerifyLoadedSignatureWithOptions za ugovore verifikacije providera i učitane dokumente