Estoy usando la biblioteca criptográfica de NodeJS y Crypto-JS . Desde la biblioteca criptográfica, estoy generando un cliente ECDH y generando las claves a partir de las cuales usar su clave privada para el cifrado AES con Crypto-JS en el futuro. la función de encriptación AES requiere que pase una clave privada, lo cual se hizo pero no la tomaría como un búfer. Funciona cuando uso la versión de cadena hexadecimal, pero soy ingenuo y no estoy seguro de si esto tiene la fuerza de la clave privada ECDH que codifiqué en cadena hexadecimal.
Fragmentos de código para analizar (suponga que la variable inData es una cadena):
var privBIN = programData.volatile.modularVariables.key; //some ECDH secret hex encoded var inData = 'something'; var cipherInData = programData.volatile.modularVariables.cipherText(inData,privBIN);clave y valor en el objeto programData:
cipherText: (content, key)=>{console.log(`content: ${content}`); console.log(`key: ${key}`); return cryptojs.AES.encrypt(content,key).toString()},Lo anterior cifra bien el texto en AES, pero sustituye priveBIN por:
var privBIN = Buffer.from(programData.volatile.modularVariables.key,programData.volatile.modularVariables.encoding.hex);y de repente me da el siguiente error (incluí donde en crypto-js tiene problemas):
(node:15028) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '0' of undefined at Object.xorBlock (C:\Users\Mickell\Desktop\CPHR\node_modules\crypto-js\cipher-core.js:371:44) at Object.processBlock (C:\Users\Mickell\Desktop\CPHR\node_modules\crypto-js\cipher-core.js:314:27) at Object._doProcessBlock (C:\Users\Mickell\Desktop\CPHR\node_modules\crypto-js\cipher-core.js:486:25) at Object._process (C:\Users\Mickell\Desktop\CPHR\node_modules\crypto-js\core.js:632:27) at Object._doFinalize (C:\Users\Mickell\Desktop\CPHR\node_modules\crypto-js\cipher-core.js:501:46) at Object.finalize (C:\Users\Mickell\Desktop\CPHR\node_modules\crypto-js\cipher-core.js:163:44) at Object.encrypt (C:\Users\Mickell\Desktop\CPHR\node_modules\crypto-js\cipher-core.js:685:41) at Object.encrypt (C:\Users\Mickell\Desktop\CPHR\node_modules\crypto-js\cipher-core.js:201:59)Preguntas: ¿alguien puede explicar si la versión codificada hexadecimal de la clave privada del cliente ECDH es suficiente? ¿O es completamente insignificante y es la clave privada como búfer que debo pasar y cómo? Gracias por tu tiempo :).