moac-api
Version:
moac api for dapp
71 lines (60 loc) • 1.65 kB
JavaScript
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
};