https://github.com/myetherwallet/jsonsignandencrypt
https://github.com/myetherwallet/jsonsignandencrypt
decryption ecies encryption javascript json signing
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/myetherwallet/jsonsignandencrypt
- Owner: MyEtherWallet
- License: mit
- Created: 2017-03-17T01:57:20.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-17T05:12:56.000Z (over 9 years ago)
- Last Synced: 2024-10-31T09:12:00.031Z (over 1 year ago)
- Topics: decryption, ecies, encryption, javascript, json, signing
- Language: JavaScript
- Size: 4.88 KB
- Stars: 15
- Watchers: 9
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# JSON sigining and encryption
library to make signing and encrypting json object easier
# Features!
- Generate deterministic string to verify based on json and sign the string
- No more signing failures due to JSON object not maintaining the same order
- ECIES encryption/decryption on JSON
### Installation
```sh
$ npm install json-sign-and-encrypt
```
### Examples
Generate ethereum address:
```
var signUtils = require("../index.js");
var crypto = require("crypto");
var objectToEncrypt = {
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
var clientPrivKey = crypto.randomBytes(32);
var clientpubKey = signUtils.getPublicKey(clientPrivKey);
var serverPrivKey = crypto.randomBytes(32);
var serverPubKey = signUtils.getPublicKey(serverPrivKey);
//signing and encrypting
signUtils.signAndEncrypt(objectToEncrypt, clientPrivKey, serverPubKey).then(function(encrypted) {
console.log(encrypted);
//decrypting and verifying
signUtils.decryptAndVerify(encrypted, serverPrivKey, clientpubKey).then(function(decrypted) {
//encrypted is the encrypted object
console.log(decrypted);
}).catch(function(err) {
//will throw error on verification failure
});
});
```
License
----
MIT