En node.js tengo pensado utilizar crypto con un clave publica/privada elíptica:
Código:
openssl ecparam -name secp256k1 -genkey -noout -out private.pem
openssl ec -in private.pem -out public.pem -pubout
La clave publica se la pasare al navegador y necesito una librería para cifrar con ella y pasar el resultado al servidor que descifrara con crypto.
No estoy seguro si utilizar secp256k1 u otra curva.
Encontré una lista de librerías y necesito recomendación https://gist.github.com/jo/8619441
Con RSA y Forge no tengo problema pero prefiero EC:
Código
var privateKeyPEM = '-----BEGIN RSA PRIVATE KEY--....Q=-----END RSA PRIVATE KEY-----'; var publicKeyPEM = '-----BEGIN PUBLIC KEY-----MI...AB-----END PUBLIC KEY-----'; var publicKey = forge.pki.publicKeyFromPem(publicKeyPEM); var privateKey = forge.pki.privateKeyFromPem(privateKeyPEM); var encryptedText = publicKey.encrypt('password'); console.log(encryptedText); var decryptedText = privateKey.decrypt(encryptedText); console.log(decryptedText);
Gracias
Un saludo