know-js
Version:
JavaScript library for sending Know transactions from the client or server
40 lines (32 loc) • 1.53 kB
JavaScript
var eccrypto = require("eccrypto");
var knowjs = require('../index');
var wif = require('wif');
var secp256k1 = require("secp256k1");
var tmp = '038f49917f167381c39be4340348a362fa700919cc7054ee255df7facc8942fa02';
var publicKey = secp256k1.publicKeyConvert(new Buffer(tmp, 'hex'), false);
eccrypto.encrypt(publicKey, Buffer("test")).then(function(encrypted) {
var data = {
iv: encrypted.iv.toString('hex'),
ephemPublicKey: encrypted.ephemPublicKey.toString('hex'),
ciphertext: encrypted.ciphertext.toString('hex'),
mac: encrypted.mac.toString('hex')
};
console.log('encrypted', data);
});
var passphrase = "grocery divorce dove ginger glove corn myself narrow course income occur pill";
var privateKeyA = knowjs.crypto.getKeys(passphrase).toWIF();
privateKeyA = wif.decode(privateKeyA).privateKey;
var data = {
iv: 'babd5c731c763435bad88c791bdddb2c',
ephemPublicKey: '049e231f6f602aa1b01a7bd03529f6829bf8530b545bcb5a63e62b26ce7776d93dc8e078d28cb065979e6f69df53255df348f3164b7e7db54c914b087495ea44d9',
ciphertext: '9cec69dda9fad0ed266d3df38d6d013b',
mac: '606448575a6589165df08f7e800994e31c7f80c6dae2b2c057592d1e35b5662f'
};
data.iv = new Buffer(data.iv, 'hex');
data.ephemPublicKey = new Buffer(data.ephemPublicKey, 'hex');
data.ciphertext = new Buffer(data.ciphertext, 'hex');
data.mac = new Buffer(data.mac, 'hex');
// B decrypting the message.
eccrypto.decrypt(privateKeyA, data).then(function(plaintext) {
console.log("Message:", plaintext.toString());
});