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

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