Konzistence digest algoritmu CMS

HotPDF diagnostikuje nekonzistentní identifikátory algoritmů CMS dříve, než přečte podepsané rozsahy dokumentu, vypočítá hash obsahu, sestaví cesty certifikátů nebo vyvolá poskytovatele podpisů

Kontroly konzistence

Aktuální SignerInfo.digestAlgorithm musí být přítomen v obklopující sadě SignedData.digestAlgorithms, zatímco nesouvisející další algoritmy zůstávají povoleny pro interoperabilní kontejnery s více podepisovateli

OID podpisů specifických pro digest typicky RSA PKCS#1 v1.5 a ECDSA a explicitní hash v parametrech RSA-PSS musí vybrat stejný digest jako SignerInfo.digestAlgorithm

Pokud je přítomen podepsaný atribut CMSAlgorithmProtection podle RFC 6211, musí se vyskytnout jednou s jednou hodnotou a jeho chráněné hodnoty AlgorithmIdentifier digestu a podpisu se musí shodovat se skutečnými poli SignerInfo

Chybějící a DER NULL parametry se porovnávají jako ekvivalentní pro identifikátory algoritmů bez parametrů; ostatní parametry se porovnávají přesně, takže parametrizované mechanismy podpisů nelze tiše normalizovat

Strojově čitelný výsledek

HPDFParseCMSSignature zachovává úspěšně analyzovaná metadata, ale nastavuje THPDFSignatureInfo.Status na svDigestAlgorithmMismatch, když kontrola konzistence selže

Ověřování vrací svDigestAlgorithmMismatch, zprávy o validaci používají vfcDigestAlgorithmMismatch a JSON vydává digestAlgorithmMismatch, aniž by podmínku srazil do malformovaného CMS, nepodporovaného algoritmu nebo neshody digestu obsahu

THPDFSignatureInfo.DigestAlgorithmOID zaznamenává OID podepisovatelského digestu a THPDFSignatureInfo.DigestConsistencyIssue vybírá jednu z následujících příčin

JSON objekty podepisovatelů vystavují stejné informace jako digestAlgorithmOID a digestConsistencyIssue s hodnotami signerDigestNotDeclared, signatureDigestMismatch, algorithmProtectionDigestMismatch nebo algorithmProtectionSignatureMismatch

Časová razítka a priorita

Časová razítka dokumentu podle RFC 3161 a nepodepsané tokeny časového razítka podpisu používají stejné kontroly a jejich hodnota THPDFTimestampInfo.DigestConsistencyIssue identifikuje nekonzistentní vnořený CMS kontejner

Strukturální chyby stále selhávají jako malformovaný CMS, neznámé podepisovatelské digesty zůstávají nepodporované a první deterministický problém konzistence je zachován v pořadí kontejner, ochrana algoritmu a poté mechanismus podpisu

Viz moderní poskytovatele podpisů a THotPDF.VerifyLoadedSignatureWithOptions pro kontrakty ověřování poskytovatele a načteného dokumentu