Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

meetsiraja/ethereum-rsa

Repository files navigation

ethereum-rsa

npm License: MIT

Encrypt and Decrypt message using Ethereum keys.

How it works?

  • Let's say, Alice wants to send secured message to Bob. This is How it will work:
  1. Alice encrypt message using his privatekey and Bob's publickey.
  2. Alice sends encrypted message to Bob.
  3. Bob decrypt message using his privatekey and Alice publickey.
Benifits:
  • Only Bob can read the message
  • Bob can be sure that the message really comes from Alice

Installation

npm install ethereum-rsa --save

Initialization

const EthRSA = require('ethereum-rsa');

Retrive PublicKey from PrivateKey:

This function will return the uncompressed publicKey from privateKey.

let publicKey = EthRSA.publicKeyByPrivateKey("4a2e11580d318f86079775229a377194d3629bb8448dfbfb8352d0cc4fc3f008");
console.log(publicKey);

Output:

04de9432ee891cbc70ff41acbcb253d06317703e943de2f2cb7aaae71dfa91ba0d8c4ed05dc7a6b804134b9225a539699bedb222e73900ebeea3bbf4161045f007

Encryption of Message:

Encrypt the message using sender's private key and recipient public key.

Parameters:
  • message: Message in plain text.
  • senderPrivateKey: Private key of the sender.
  • recipientPublicKey: Public key of the recipient. Public key should be in uncompressed format & 04 attached at left.
API:
EthRSA.encryptMessage(message, senderPrivateKey, recipientPublicKey);
Example:
EthRSA.encryptMessage(
 "Hey There!",
 "4a2e11580d318f86079775229a377194d3629bb8448dfbfb8352d0cc4fc3f008",
 "044f93e10b7a052260c4686dbfca7ac09d5d830c01bfe544b92438f65ebf961d64acf9992fd70565920f303bca209f7a4a96f10510a2ed0922485b4758cc2b180a"
)
.then(console.log);
Output:
br+Tol1WJkejU+rvUCm7dGm2IeOLF/SiMOi3i3Ho3G4=

Decryption of Message:

Decrypt the message using sender's public key and recipient private key. Here public key should be in uncompressed format & with 04 attached left side.

Parameters:
  • cipherText: Encrypted message.
  • recipientPrivateKey: Private key of the recipient.
  • senderPublicKey: Public key of the sender. Public key should be in uncompressed format & 04 attached at left.
API:
EthRSA.decryptMessage(cipherText, recipientPrivateKey, senderPublicKey);
Example:
EthRSA.decryptMessage(
 "br+Tol1WJkejU+rvUCm7dGm2IeOLF/SiMOi3i3Ho3G4=",
 "e4a2d1f1568c1eb7ffacdbaea7607d9e768fd3d3d97ec5119ccf5d8bb6c0e613",
 "04de9432ee891cbc70ff41acbcb253d06317703e943de2f2cb7aaae71dfa91ba0d8c4ed05dc7a6b804134b9225a539699bedb222e73900ebeea3bbf4161045f007"
)
.then(console.log);
Output:
Hey There!

Running tests:

npm test

Contributing

  • Issues & Pull requests are welcome! Fork, branch, and submit PR.

Changelog

Licence

MIT

AltStyle によって変換されたページ (->オリジナル) /