Estoy confundido acerca de la selección de algoritmos para la sintaxis de mensajes criptográficos (también conocida como CMS, PKCS # 7) objetos firmados ( RFC5652 Sección 5.1 ).
La estructura SignerInfo ( RFC5652 Sección 5.3 ) tiene dos campos de identificación de algoritmos separados:
-
digestAlgorithmpara el algoritmo de resumen (hash) y sus parámetros asociados, y -
signatureAlgorithmpara el algoritmo de firma y sus parámetros asociados.
(Esto contrasta con los certificados ( RFC5280 ), CRLs ( RFC5280 ), y solicitudes de certificación ( RFC2986 , RFC4211 ) que no tienen un campo de algoritmo de resumen separado.)
Para el campo signatureAlgorithm , puedes elegir rsaEncryption ( RFC3370 Sección 3.2 ), o puede elegir una variante que a su vez especifique un algoritmo de resumen, por ejemplo, sha1WithRSAEncryption o md5WithRSAEncryption .
¿Cuál es la relación entre el algoritmo de resumen del algoritmo de firma y el algoritmo de resumen especificado en el campo digestAlgorithm ?
Subpreguntas específicas:
-
Supongamos que
digestAlgorithmcontienesha-1( RFC3370 Sección 2.1 ). ¿Hay alguna diferencia entre elegirrsaEncryptionvs.sha1WithRSAEncryptionpara el camposignatureAlgorithm? -
¿Qué sucede si pongo
sha-1endigestAlgorithmpero seleccionomd5WithRSAEncryptionparasignatureAlgorithm?