UNPKG

moac-api

Version:
71 lines (60 loc) 1.65 kB
var crypto = require('crypto'); var secp256k1 = require('secp256k1'); var keccak = require('keccak'); var accountCrypto = require('./accountCrypto'); /*** * 注册 * @param pwd * @returns */ function register(pwd) { var account = {}; var newInfo = accountCrypto.create(pwd); var privateKey = newInfo.privateKey; var address = newInfo.address; var keyStore = JSON.stringify(accountCrypto.encrypt(privateKey, pwd)); account.address = address; account.privateKey = privateKey account.keyStore = keyStore; return account; } /*** * 登录(0-登录失败 1-登录成功 2-登录失败<密码错误>) * @param addr * @param pwd * @param keyStore * @returns */ function login(addr, pwd, keyStore) { if (typeof(keyStore) == 'string') { keyStore = JSON.parse(keyStore); } var decryptVal = accountCrypto.decrypt(keyStore, pwd); var address = decryptVal.address + ''; if (address.toLowerCase() != addr.toLowerCase()) { throw new Error('possibly address wrong!'); } return decryptVal.privateKey; // try { // // var keyStoreObj = JSON.parse(keyStore); // var decryptVal = accountCrypto.decrypt(keyStoreObj, pwd); // var address = decryptVal.address + ''; // if (address.toLowerCase() == addr.toLowerCase()) { // return 1 // } else { // return 0; // 登录失败 // } // } catch (e) { // if (e.message == "Key derivation failed - possibly wrong password") { // return 2; // 密码错误 // } else { // console.log(e.message); // return 0; // 登录失败 // } // } } module.exports = { register: register, login: login };