UNPKG

keyvenant

Version:

Keyvenant is a JavaScript tool to generate and export CovenantSQL keys to facilitate key management locally and in web extensions.

79 lines 4.64 kB
"use strict"; /** * Copyright 2018 The CovenantSQL Authors. * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); const keystore_1 = require("./lib/keystore"); const utils_1 = require("./lib/utils"); // default config const defaultConfig = { isMainNet: false, versions: { address: { mainNet: 0x0, testNet: 0x6f }, privateKey: 0x23 }, secretKey: { // deprecated salt for testnet // salt: Buffer.from('auxten-key-salt-auxten', 'utf8').toString('hex') salt: 'c04ea47149654131794b6a702f394543' } }; class Keyvenant { constructor(props) { this.config = (props && props.config) || defaultConfig; } /** * create keystore & return * @param password * @return keystore object */ create(password) { let addrVersion = this.config.isMainNet ? this.config.versions.address.mainNet : this.config.versions.address.testNet; let privateKeyVersion = this.config.versions.privateKey; let salt = this.config.secretKey.salt; return keystore_1.createKeystore(password, salt, addrVersion, privateKeyVersion); } /** * dump to keystore file * @param password */ dump(password) { let keystore = this.create(password); let name = utils_1.exportToFile(keystore); console.log('Keystore exported: ', name); } /** * recover private key from keystore and password * only in Node env * @param password * @param filepath keystore filepath * @return private key string in hex */ recover(password, filepath) { let keystore = utils_1.importFromFile(filepath); let salt = this.config.secretKey.salt; console.log('// keystore from file', keystore); let privateKey = keystore_1.recoverFromKeystore(password, salt, keystore); console.log('// private key', privateKey); return privateKey; } } exports.default = Keyvenant; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHOztBQUVILDZDQUFvRTtBQUNwRSx1Q0FBMEQ7QUFFMUQsaUJBQWlCO0FBQ2pCLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxHQUFHO1lBQ1osT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNELFVBQVUsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsOEJBQThCO1FBQzlCLHNFQUFzRTtRQUN0RSxJQUFJLEVBQUUsa0NBQWtDO0tBQ3pDO0NBQ0YsQ0FBQTtBQUVELE1BQXFCLFNBQVM7SUFHNUIsWUFBWSxLQUFXO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGFBQWEsQ0FBQTtJQUN4RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxRQUFnQjtRQUNyQixJQUFJLFdBQVcsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQ3RDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFBO1FBRXhDLElBQUksaUJBQWlCLEdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFBO1FBQy9ELElBQUksSUFBSSxHQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQTtRQUU3QyxPQUFPLHlCQUFjLENBQ25CLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLGlCQUFpQixDQUNsQixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxRQUFnQjtRQUNuQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3BDLElBQUksSUFBSSxHQUFXLG9CQUFZLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBTyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDeEMsSUFBSSxRQUFRLEdBQUcsc0JBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxJQUFJLElBQUksR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUE7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUU5QyxJQUFJLFVBQVUsR0FBVyw4QkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBRXRFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDekMsT0FBTyxVQUFVLENBQUE7SUFDbkIsQ0FBQztDQUNGO0FBdkRELDRCQXVEQyJ9