Buenas
En node.js tengo pensado utilizar crypto con un clave publica/privada elíptica:
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:
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