diff --git a/lib/bcoin/address.js b/lib/bcoin/address.js index f0ce5a80..87563476 100644 --- a/lib/bcoin/address.js +++ b/lib/bcoin/address.js @@ -154,7 +154,7 @@ Address.prototype.removeKey = function removeKey(key) { }; Address.prototype.getPrivateKey = function getPrivateKey(enc) { - return this.key.getPrivate(enc); + return this.key.getPrivateKey(enc); }; Address.toSecret = function toSecret(privateKey, compressed) { @@ -218,12 +218,12 @@ Address.prototype.getPublicKey = function getPublicKey(enc) { if (this._pub) return this._pub; - this._pub = this.key.getPublic(); + this._pub = this.key.getPublicKey(); return this._pub; } - return this.key.getPublic(enc); + return this.key.getPublicKey(enc); }; Address.prototype.getKeyHash = function getKeyHash() { diff --git a/lib/bcoin/hd.js b/lib/bcoin/hd.js index 01a5ddd7..6d3ced77 100644 --- a/lib/bcoin/hd.js +++ b/lib/bcoin/hd.js @@ -78,25 +78,16 @@ function HDSeed(options) { options = options || {}; this.bits = options.bits || 128; - this.entropy = options.entropy || HDSeed._entropy(this.bits / 8); + this.entropy = options.entropy || elliptic.rand(this.bits / 8); this.mnemonic = options.mnemonic || HDSeed._mnemonic(this.entropy); this.seed = this.createSeed(options.passphrase); } -HDSeed.create = function create(options) { - var obj = new HDSeed(options); - return obj.seed || obj; -}; - HDSeed.prototype.createSeed = function createSeed(passphrase) { this.passphrase = passphrase || ''; return pbkdf2(this.mnemonic, 'mnemonic' + passphrase, 2048, 64); }; -HDSeed._entropy = function _entropy(size) { - return randomBytes(size); -}; - HDSeed._mnemonic = function _mnemonic(entropy) { var bin = ''; var mnemonic = []; @@ -1003,16 +994,22 @@ HDPublicKey.prototype.deriveString = function deriveString(path) { return this.pair.validate.apply(this.pair, arguments); }; - HD.prototype.getPublic = - HD.prototype.getPublicKey = function getPublicKey() { + HD.prototype.getPublic = function getPublic() { return this.pair.getPublic.apply(this.pair, arguments); }; - HD.prototype.getPrivate = - HD.prototype.getPrivateKey = function getPrivateKey() { + HD.prototype.getPrivate = function getPrivate() { return this.pair.getPrivate.apply(this.pair, arguments); }; + HD.prototype.getPublicKey = function getPublicKey() { + return bcoin.keypair.prototype.getPublicKey.apply(this, arguments); + }; + + HD.prototype.getPrivateKey = function getPrivateKey() { + return bcoin.keypair.prototype.getPrivateKey.apply(this, arguments); + }; + HD.prototype.sign = function sign(msg) { return this.pair.sign.apply(this.pair, arguments); }; @@ -1028,10 +1025,12 @@ HDPublicKey.prototype.deriveString = function deriveString(path) { HD.prototype.__defineGetter__('priv', function() { return this.pair.priv; }); + + HD.prototype.compressed = true; }); HDPrivateKey.prototype.toSecret = function toSecret() { - return bcoin.keypair.toSecret(this.privateKey, true); + return bcoin.keypair.toSecret(this.privateKey, this.compressed); }; HDPrivateKey.fromSecret = function fromSecret(privateKey) { @@ -1056,18 +1055,6 @@ function sha512hmac(data, salt) { return Array.prototype.slice.call(h); } -function randomBytes(size) { - if (isBrowser) { - var a = Uint8Array(size); - var buf = new Array(size); - (window.crypto || window.msCrypto).getRandomValues(a); - utils.copy(a, buf, 0); - return buf; - } - var crypto = require('crypto'); - return Array.prototype.slice.call(crypto.randomBytes(size)); -} - function array32(data) { var b = []; utils.writeU32BE(b, data, 0); diff --git a/lib/bcoin/keypair.js b/lib/bcoin/keypair.js index 47eb51e6..461a6c69 100644 --- a/lib/bcoin/keypair.js +++ b/lib/bcoin/keypair.js @@ -99,7 +99,14 @@ KeyPair.prototype.verify = function verify(msg, signature) { return this.pair.verify.apply(this.pair, arguments); }; -KeyPair.prototype.getPrivate = +KeyPair.prototype.getPrivate = function getPrivate(enc) { + return this.pair.getPrivate.apply(this.pair, arguments); +}; + +KeyPair.prototype.getPublic = function getPublic(enc) { + return this.pair.getPublic.apply(this.pair, arguments); +}; + KeyPair.prototype.getPrivateKey = function getPrivateKey(enc) { var privateKey = this.pair.getPrivate(); @@ -117,7 +124,6 @@ KeyPair.prototype.getPrivateKey = function getPrivateKey(enc) { return privateKey; }; -KeyPair.prototype.getPublic = KeyPair.prototype.getPublicKey = function getPublicKey(enc) { var publicKey = this.pair.getPublic(this.compressed, 'array'); @@ -131,7 +137,7 @@ KeyPair.prototype.getPublicKey = function getPublicKey(enc) { }; KeyPair.prototype.toSecret = function toSecret() { - return KeyPair.toSecret(this.getPrivate(), this.compressed); + return KeyPair.toSecret(this.getPrivateKey(), this.compressed); }; KeyPair.toSecret = function toSecret(privateKey, compressed) {