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:
-
digestAlgorithm
para el algoritmo de resumen (hash) y sus parámetros asociados, y -
signatureAlgorithm
para 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
digestAlgorithm
contienesha-1
( RFC3370 Sección 2.1 ). ¿Hay alguna diferencia entre elegirrsaEncryption
vs.sha1WithRSAEncryption
para el camposignatureAlgorithm
? -
¿Qué sucede si pongo
sha-1
endigestAlgorithm
pero seleccionomd5WithRSAEncryption
parasignatureAlgorithm
?