4

I have found a library about Elliptic Curve Cryptography in JavaScript. I have learned how to encrypt the message. But, I didn't find how to decrypt it to the original message.

The code for encryption:

var EC = require('elliptic').ec;
var ec = new EC('secp256k1');
 
var msg = "hello";

let myKey = ec.keyFromPrivate('29f3c33a550d3810e6b82b7b510672118aeabcf8b19e00172e4623cbf480d2b8');
const sig = myKey.sign(msg, 'base64');
var derSign = sig.toDER('hex');
console.log (derSign)

output:

3044022076e7fbf80454f764e346dd359eb7f2002802e68d30a689d77d6211aa2c6e9d7302201b5f35d92b8f4aefd5f69d9d21e3dfba75404e4d5a89e09239b2accf43ff6d63

I want to return the signature to hello again. How I could do that, please?

ismsm
  • 143
  • 2
  • 11
  • 1
    Encryption is usually done with ECIES when elliptic curves are required. Keep in mind that encryption needs the public key of the recipient and decryption needs the private key of the recipient. – Artjom B. Jan 27 '21 at 23:27

1 Answers1

2

I don't see any encrypt and decrypt function in elliptic, even in source code of library. In your demo code, it's a signature, not an encrypted message. You could use verify to validate the message whether is changed or not by some evil people..

console.log(myKey.verify(msg, derSign)); // true
console.log(myKey.verify(msg+"something_else", derSign)); // false

When the output is false, it's mean you message is changed, and true mean the message is not changed. That's how signature work, not encrypt or decrypt message.

So, if you want to encrypt and decrypt message with ecc, I guess you might use this library eccrypto.

Jack Yu
  • 2,190
  • 1
  • 8
  • 14