Estoy trabajando en un proyecto y necesito abrir el socket tls entre el servidor NodeJS y un dispositivo (servidor http integrado en la tarjeta electrónica, que opera en un PIC ).
Este dispositivo solo es compatible con el algoritmo de cifrado RC4-MD5 , pero está obsoleto desde el Nodo 9 (actualmente estoy trabajando en el Nodo 14.17.5 )
¿Cómo puedo implementar el algoritmo RC4-MDR5 en NodeJS sin degradar la versión de mi nodo?
Mi código en realidad:
const tls = require('tls'); let tlsOpts = { // TLS options key: fs.readFileSync(path.resolve('dist/assets/cert/privkey.pem')), cert: fs.readFileSync(path.resolve('dist/assets/cert/cert.pem')), rejectUnauthorized: false, ciphers: 'RC4-MD5' // This line throw error: SSL routines:SSL_CTX_set_cipher_list:no cipher match }; this.server = tls.createServer(tlsOpts, async (socket) => { // Create server socket.setEncoding('utf8'); this.events(socket); // Create event listeners (data, error, close, etc...) }).listen(this.config.get('TCP_PORT'), () => { this.logger.log('TCP server started (port '+this.config.get('TCP_PORT')+')'); // Log server start });Editar: para ir más allá, ¿cómo puedo implementar mi propio algoritmo de cifrado y usarlo con el paquete node tls?
Ex:
let tlsOpts = { // TLS options key: fs.readFileSync(path.resolve('dist/assets/cert/privkey.pem')), cert: fs.readFileSync(path.resolve('dist/assets/cert/cert.pem')), rejectUnauthorized: false, ciphers: 'My-Custom-Cipher' // Here use my custom algorithm }Nota: estoy usando el marco NestJS, por eso tengo la sintaxis "esto.[...]" en mi código.
Gracias.