Las claves API de los usuarios deberían utilizar relleno OAEP

Entro en frío aquí, pero ese error parece incorrecto. Esto no es una característica que se haya eliminado en Node, es un problema con alguna instalación de OpenSSL. De la documentación de Node:

El uso de crypto.constants.RSA_PKCS1_PADDING en crypto.privateDecrypt() requiere que OpenSSL admita el rechazo implícito (rsa_pkcs1_implicit_rejection).

Ver también [Bug]: RSA_PKCS1_PADDING is no longer supported for private decryption · Issue #487 · bropat/eufy-security-client · GitHub

Probando localmente, esto funciona para mí: An example of RSA Encryption implemented in Node.js · GitHub incluso cuando cambio a usar crypto.constants.RSA_PKCS1_PADDING para el relleno tanto para cifrar como para descifrar. Estoy en OpenSSL 3.4.0 y Node 23.6.1.

Lo complicado de usar una configuración del sitio es que los clientes no sabrán qué relleno admite la instancia específica. Eso hace que la compatibilidad entre instancias/servicios sea más difícil de entender.

Creo que deberíamos aclarar la implementación existente, es decir, señalar explícitamente que estamos usando RSA_PKCS1_PADDING y luego pensar en una actualización. Quizás necesitemos introducir versionado para este endpoint, para que los clientes puedan usar limpiamente el relleno correcto antes/después de dicha versión.

2 Me gusta