38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
const persistence = require("../core/persistence/persistence");
|
|
const cryptoUtil = require("../core/cryptoUtil");
|
|
|
|
const bip39 = require('bip39');
|
|
const bip32 = require('bip32');
|
|
|
|
module.exports.description = "Create keys using a randomly generated seed";
|
|
|
|
module.exports.builder = (yargs) => {
|
|
|
|
}
|
|
|
|
module.exports.handler = (argv) => {
|
|
console.log("Create keys using a randomly generated seed");
|
|
persistence().LoadDB()
|
|
.then(db => {
|
|
const mnemonic = bip39.generateMnemonic();
|
|
console.log("Backup generated Mnemonic: ", mnemonic);
|
|
|
|
// TODO: validate user backed up mnemonic
|
|
const seed = bip39.mnemonicToSeedSync(mnemonic);
|
|
const node = bip32.fromSeed(seed);
|
|
|
|
// TODO: Get user key password
|
|
const password = "vanished";
|
|
// TODO: Encrypt text securely...
|
|
const encryptedPrivateKey = cryptoUtil.encrypt(node.toBase58(), password);
|
|
|
|
// Check if a key exist...
|
|
db.Key.create({
|
|
encryptedPrivateKey: encryptedPrivateKey.cipherText,
|
|
iv: encryptedPrivateKey.iv,
|
|
name: "FirstKey"
|
|
}).then(key => {
|
|
console.log("Successfully created: ", key.name)
|
|
})
|
|
})
|
|
} |