CMS-digest-algoritmkonsistens
HotPDF diagnostiserar inkonsekventa CMS-algoritmidentifierare före läsning av signerade dokumentintervall, hashning av innehåll, uppbyggnad av certifikatsökvägar eller anrop av en signaturleverantör
Konsistenskontroller
Den aktuella SignerInfo.digestAlgorithm måste finnas i den omslutande SignedData.digestAlgorithms-uppsättningen, medan orelaterade extra algoritmer förblir tillåtna för interoperabla multi-signerar-behållare
Digest-specifika RSA PKCS#1 v1.5- och ECDSA-signatur-OID:er samt den explicita hashen i RSA-PSS-parametrar måste välja samma digest som SignerInfo.digestAlgorithm
När RFC 6211-CMSAlgorithmProtection-signerade attributet finns, måste det förekomma en gång med ett värde, och dess skyddade digest- och signatur-AlgorithmIdentifier-värden måste matcha de faktiska SignerInfo-fälten
Frånvarande och DER NULL-parametrar jämförs som likvärdiga för algoritmidentifierare utan parametrar; andra parametrar jämförs exakt så att parametriserade signaturmekanismer inte kan normaliseras tyst
Maskinläsbart resultat
HPDFParseCMSSignature bevarar framgångsrikt parsat metadata men sätter THPDFSignatureInfo.Status till svDigestAlgorithmMismatch när en konsistenskontroll misslyckas
Verifiering returnerar svDigestAlgorithmMismatch, valideringsrapporter använder vfcDigestAlgorithmMismatch och JSON avger digestAlgorithmMismatch utan att kollapsa villkoret till felformaterad CMS, icke-stödd algoritm eller innehållsdigest-mismatch
THPDFSignatureInfo.DigestAlgorithmOID registrerar signerarens digest-OID och THPDFSignatureInfo.DigestConsistencyIssue väljer en av följande orsaker
dciSignerDigestNotDeclared— den kända signerardigesten saknas i den yttre digestuppsättningendciSignatureDigestMismatch— en fast eller parametriserad signaturmekanism väljer en annan digestdciAlgorithmProtectionDigestMismatch— den skyddade digestidentifieraren skiljer sig från signerardigestidentifierarendciAlgorithmProtectionSignatureMismatch— den skyddade signaturidentifieraren skiljer sig från signeraridentitetens signaturidentifierare
JSON-signerarobjekt exponerar samma information som digestAlgorithmOID och digestConsistencyIssue med värdena signerDigestNotDeclared, signatureDigestMismatch, algorithmProtectionDigestMismatch eller algorithmProtectionSignatureMismatch
Tidsstämplar och företräde
RFC 3161-dokumenttidsstämplar och osignerade signaturtidsstämpel-token använder samma kontroller, och deras THPDFTimestampInfo.DigestConsistencyIssue-värde identifierar en inkonsekvent nästlad CMS-behållare
Strukturella fel misslyckas fortfarande som felformaterad CMS, okända signerardigester förblir icke-stödda och den första deterministiska konsistensfrågan behålls i behållar-, algoritmskydds- och sedan signaturmekanismordning
Se moderna signaturleverantörer och THotPDF.VerifyLoadedSignatureWithOptions för leverantörs- och inläst-dokument-verifieringskontrakt