Estoy escribiendo un código en nodejs/browser. He creado con éxito direcciones ethereum con la biblioteca secp256k1. También pude firmar y verificar mensajes. Ahora quiero cifrar/descifrar un mensaje con la clave pública y privada de las direcciones generadas. ¿Alguien ha hecho esto antes? ¿Puedo usar CryptoJS para lograr mi objetivo?
Gracias @Edmunx Edgar, intenté usar ECIES, pero no se pudo instalar debido a una subdependencia. Ahora usé bitcore-lib junto con bitcore-ecies . Esto funciona como se esperaba.
EDITAR: Creé un módulo npm que hace exactamente estas cosas y también tiene algunas optimizaciones de rendimiento y tutoriales : github:eth-crypto .
Aquí está mi código para cualquier persona con la misma pregunta:
// run 'npm install eth-crypto --save'
const EthCrypto = require('eth-crypto');
// create identitiy with key-pairs and address
const alice = EthCrypto.createIdentity();
const secretMessage = 'My name is Satoshi Buterin';
const encrypted = await EthCrypto.encryptWithPublicKey(
alice.publicKey, // encrypt with alice's publicKey
secretMessage
);
const decrypted = await EthCrypto.decryptWithPrivateKey(
alice.privateKey,
encrypted
);
if(decrypted === secretMessage) console.log('success');
Suponiendo que tenga la clave pública de la persona a la que desea enviar un mensaje (si ya ha firmado una transacción, puede recuperarla de la firma), debería ser posible cifrar y descifrar utilizando ECIES. Aparentemente, hay una biblioteca de JavaScript para esto, supongo que puede usarla en un navegador: https://bitcointalk.org/index.php?topic=627927.0
No tengo idea de si estas bibliotecas son lo suficientemente buenas como para usarlas de forma segura.
Otro enfoque es generar un par de claves separado que en realidad esté diseñado para el cifrado, luego usar la clave Ethereum para firmar la clave pública y enviarla a la otra parte.
Malone
var pubKey = new bitcore.PublicKey.fromPrivateKey(privKey);
Ahora puede cifrar y descifrar mensajes. ¿Alguna sugerencia sobre cómo puedo usar esta biblioteca sin tener una solución alternativa? ¡Gracias!pubkey
Malone
bitcore-ecies
problemas de rendimiento en este momento. Gracias de nuevo.Vixon
hecho en sueños
pash
pash
pubkey
Javier59
eth_decrypt
( docs .metamask.io/guide/rpc-api.html#other-rpc-methods )