CMS-digestalgoritme-consistentie
HotPDF diagnosticeert inconsistente CMS-algoritme-identificaties vóór het lezen van getekende documentbereiken, het hashen van inhoud, het bouwen van certificaatpaden of het aanroepen van een handtekeningprovider
Consistentiecontroles
De huidige SignerInfo.digestAlgorithm moet aanwezig zijn in de omringende SignedData.digestAlgorithms-verzameling, terwijl niet-gerelateerde extra algoritmen toegestaan blijven voor interoperabele multi-ondertekenaarcontainers
Digest-specifieke RSA-PKCS#1-v1.5- en ECDSA-handtekening-OID's, en de expliciete hash in RSA-PSS-parameters, moeten hetzelfde digest selecteren als SignerInfo.digestAlgorithm
Wanneer het RFC-6211-CMSAlgorithmProtection-ondertekend attribuut aanwezig is, moet het één keer voorkomen met één waarde, en moeten de beschermde digest- en handtekening-AlgorithmIdentifier-waarden overeenkomen met de werkelijke SignerInfo-velden
Afwezige en DER-NULL-parameters worden als gelijkwaardig vergeleken voor parameterloze algoritme-identificaties; andere parameters worden exact vergeleken zodat geparametriseerde handtekeningmechanismen niet stilletjes kunnen worden genormaliseerd
Machine-leesbaar resultaat
HPDFParseCMSSignature behoudt succesvol geparsede metagegevens maar stelt THPDFSignatureInfo.Status in op svDigestAlgorithmMismatch wanneer een consistentiecontrole faalt
Verificatie retourneert svDigestAlgorithmMismatch, validatierapporten gebruiken vfcDigestAlgorithmMismatch en JSON zendt digestAlgorithmMismatch uit zonder de conditie samen te voegen in verkeerd gevormde CMS, niet-ondersteund algoritme of inhoud-digest-mismatch
THPDFSignatureInfo.DigestAlgorithmOID registreert de ondertekenaar-digest-OID en THPDFSignatureInfo.DigestConsistencyIssue selecteert één van de volgende oorzaken
dciSignerDigestNotDeclared— het bekende ondertekenaar-digest ontbreekt in de buitenste digestverzamelingdciSignatureDigestMismatch— een vast of geparametriseerd handtekeningmechanisme selecteert een ander digestdciAlgorithmProtectionDigestMismatch— de beschermde digest-identificatie verschilt van de ondertekenaar-digest-identificatiedciAlgorithmProtectionSignatureMismatch— de beschermde handtekeningidentificatie verschilt van de ondertekenaar-handtekeningidentificatie
JSON-ondertekenaars-objecten stellen dezelfde informatie beschikbaar als digestAlgorithmOID en digestConsistencyIssue met de waarden signerDigestNotDeclared, signatureDigestMismatch, algorithmProtectionDigestMismatch of algorithmProtectionSignatureMismatch
Tijdstempels en voorrang
RFC-3161-documenttijdstempels en ongetekende handtekeningtijdstempeltokens gebruiken dezelfde controles, en hun THPDFTimestampInfo.DigestConsistencyIssue-waarde identificeert een inconsistente geneste CMS-container
Structurele fouten mislukken nog steeds als verkeerd gevormde CMS, onbekende ondertekenaar-digests blijven niet-ondersteund, en de eerste deterministische consistentie-issue wordt behouden in container-, algoritmebeschermings-, dan handtekeningmechanisme-volgorde
Zie moderne handtekeningproviders en THotPDF.VerifyLoadedSignatureWithOptions voor de verificatiecontracten van providers en geladen documenten