Consistencia del algoritmo de resumen CMS

HotPDF diagnostica identificadores de algoritmo CMS inconsistentes antes de leer los rangos del documento firmado, calcular el resumen del contenido, construir rutas de certificados o invocar un proveedor de firma

Comprobaciones de consistencia

El SignerInfo.digestAlgorithm actual debe estar presente en el conjunto SignedData.digestAlgorithms envolvente, mientras que los algoritmos adicionales no relacionados siguen estando permitidos para contenedores interoperables con varios firmantes

Los OID de firma RSA PKCS#1 v1.5 y ECDSA específicos del resumen, y el hash explícito en los parámetros RSA-PSS, deben seleccionar el mismo resumen que SignerInfo.digestAlgorithm

Cuando el atributo firmado CMSAlgorithmProtection de RFC 6211 está presente, debe aparecer una vez con un valor, y sus valores protegidos de AlgorithmIdentifier de resumen y firma deben coincidir con los campos reales de SignerInfo

Los parámetros ausentes y DER NULL se comparan como equivalentes para identificadores de algoritmo sin parámetros; otros parámetros se comparan exactamente para que los mecanismos de firma parametrizados no puedan normalizarse en silencio

Resultado legible por máquina

HPDFParseCMSSignature conserva los metadatos analizados correctamente, pero establece THPDFSignatureInfo.Status en svDigestAlgorithmMismatch cuando falla una comprobación de consistencia

La verificación devuelve svDigestAlgorithmMismatch, los informes de validación usan vfcDigestAlgorithmMismatch y JSON emite digestAlgorithmMismatch sin colapsar la condición en CMS malformado, algoritmo no admitido o discrepancia de resumen de contenido

THPDFSignatureInfo.DigestAlgorithmOID registra el OID de resumen del firmante y THPDFSignatureInfo.DigestConsistencyIssue selecciona una de las siguientes causas

Los objetos de firmante JSON exponen la misma información como digestAlgorithmOID y digestConsistencyIssue con los valores signerDigestNotDeclared, signatureDigestMismatch, algorithmProtectionDigestMismatch o algorithmProtectionSignatureMismatch

Sellos de tiempo y precedencia

Los sellos de tiempo de documento RFC 3161 y los tokens de sello de tiempo de firma sin firmar usan las mismas comprobaciones, y su valor THPDFTimestampInfo.DigestConsistencyIssue identifica un contenedor CMS anidado incoherente

Los errores estructurales aún fallan como CMS malformado, los resúmenes de firmante desconocidos siguen sin admitirse y el primer problema de consistencia determinista se conserva en el orden contenedor, protección de algoritmo y, luego, mecanismo de firma

Consulte proveedores de firma modernos y THotPDF.VerifyLoadedSignatureWithOptions para los contratos de verificación de proveedores y documentos cargados