He estado cifrando mensajes y especificando el relleno RSA-OAEP con OpenSSL 1.0.2k, usando el siguiente comando:
openssl cms -encrypt -in content.txt -out message.msg \
-recip public-key.pem -keyopt rsa_padding_mode:oaep
Y puede descifrarlos bien cuando aún se usa v1.0.2k.
Al intentar descifrar el mensaje en un entorno con OpenSSL 1.0.1e, esperaría que el descifrado fallaría, como en la documentación de OpenSSL cms, dice:
La compatibilidad con RSA-OAEP y RSA-PSS se agregó por primera vez a OpenSSL 1.1.0
Sin embargo, cuando uso el siguiente comando para intentar descifrar el mensaje (esto estaría dentro del entorno v1.0.1e), el mensaje se descifra correctamente y muestra el contenido original en texto sin formato.
openssl cms -decrypt -in message.msg -recip \
recipient-combined-key.pem -inkey private-key.pem
Espero que el descifrado falle en este caso, ¿es probable que la versión sin soporte para RSA-OAEP no tenga conocimiento del esquema de relleno utilizado?
También he probado los mensajes firmados utilizando el relleno RSA-PSS, y en ese caso, la firma no se puede verificar en la versión anterior de OpenSSL sin el soporte de RSA-PSS. ¿Alguien puede explicar por qué este es el caso del relleno PSS y no del relleno OAEP?