|
|
|
|
@@ -1,26 +1,28 @@
|
|
|
|
|
const crypto = require('crypto');
|
|
|
|
|
const algorithm = 'aes-256-ctr';
|
|
|
|
|
const algorithm = 'aes-256-ecb';
|
|
|
|
|
const bip32 = require('bip32');
|
|
|
|
|
|
|
|
|
|
// NOTE I'm not a cryptographer... so don't be reusing any code from below as I don't have no idea what I'm doing
|
|
|
|
|
|
|
|
|
|
const iv = null; // If I knew what I was doing I would have a value assigned here...
|
|
|
|
|
|
|
|
|
|
module.exports.encrypt = (plainText, password) => {
|
|
|
|
|
// TODO encrypt text
|
|
|
|
|
// const cipher = crypto.createCipheriv(algorithm, password);
|
|
|
|
|
const key = crypto.createHash('sha256').update(password, 'utf8').digest();
|
|
|
|
|
const cipher = crypto.createCipheriv(algorithm, key, iv);
|
|
|
|
|
|
|
|
|
|
// var cipherText = cipher.update(plainText, 'utf8', 'hex');
|
|
|
|
|
// cipher += cipher.final('hex');
|
|
|
|
|
|
|
|
|
|
// console.log("CipherText: ", cipherText);
|
|
|
|
|
return plainText;
|
|
|
|
|
var cipherText = cipher.update(plainText, 'utf8', 'hex');
|
|
|
|
|
cipherText += cipher.final('hex');
|
|
|
|
|
return cipherText;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports.decrypt = (cipherText, password) => {
|
|
|
|
|
// TODO decrypt cipherText
|
|
|
|
|
// const decipher = crypto.createDecipheriv(algorithm, password)
|
|
|
|
|
const key = crypto.createHash('sha256').update(password, 'utf8').digest();
|
|
|
|
|
const decipher = crypto.createDecipheriv(algorithm, key, iv);
|
|
|
|
|
|
|
|
|
|
// var plainText = decipher.update(cipherText, 'hex', 'utf8');
|
|
|
|
|
// plainText += decipher.final('utf8');
|
|
|
|
|
var plainText = decipher.update(cipherText, 'hex', 'utf8');
|
|
|
|
|
plainText += decipher.final('utf8');
|
|
|
|
|
|
|
|
|
|
return cipherText;
|
|
|
|
|
return plainText;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports.randomDerivationPath = function(hardenedDerivation) {
|
|
|
|
|
|