UNPKG

keyvenant

Version:

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

76 lines 4.66 kB
/** * 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. */ import { createKeystore, recoverFromKeystore } from './lib/keystore'; import { exportToFile, importFromFile } from './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' } }; export default 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 createKeystore(password, salt, addrVersion, privateKeyVersion); } /** * dump to keystore file * @param password */ dump(password) { let keystore = this.create(password); let name = 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 = importFromFile(filepath); let salt = this.config.secretKey.salt; console.log('// keystore from file', keystore); let privateKey = recoverFromKeystore(password, salt, keystore); console.log('// private key', privateKey); return privateKey; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFMUQsaUJBQWlCO0FBQ2pCLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxHQUFHO1lBQ1osT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNELFVBQVUsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsOEJBQThCO1FBQzlCLHNFQUFzRTtRQUN0RSxJQUFJLEVBQUUsa0NBQWtDO0tBQ3pDO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBUztJQUc1QixZQUFZLEtBQVc7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksYUFBYSxDQUFBO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFFBQWdCO1FBQ3JCLElBQUksV0FBVyxHQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztZQUM3QyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU87WUFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUE7UUFFeEMsSUFBSSxpQkFBaUIsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUE7UUFDL0QsSUFBSSxJQUFJLEdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFBO1FBRTdDLE9BQU8sY0FBYyxDQUNuQixRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsRUFDWCxpQkFBaUIsQ0FDbEIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsUUFBZ0I7UUFDbkIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNwQyxJQUFJLElBQUksR0FBVyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBTyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDeEMsSUFBSSxRQUFRLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksSUFBSSxHQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQTtRQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBRTlDLElBQUksVUFBVSxHQUFXLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFFdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUN6QyxPQUFPLFVBQVUsQ0FBQTtJQUNuQixDQUFDO0NBQ0YifQ==