update hash.js. use for sha512-hmacs.
This commit is contained in:
parent
40fca0dda8
commit
916fca9c2f
@ -58,7 +58,6 @@ var utils = bcoin.utils;
|
|||||||
var assert = utils.assert;
|
var assert = utils.assert;
|
||||||
|
|
||||||
var EventEmitter = require('events').EventEmitter;
|
var EventEmitter = require('events').EventEmitter;
|
||||||
var crypto = require('crypto');
|
|
||||||
|
|
||||||
var english = require('../../etc/english.json');
|
var english = require('../../etc/english.json');
|
||||||
|
|
||||||
@ -91,8 +90,7 @@ HDSeed.prototype.createSeed = function(passphrase) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
HDSeed._entropy = function(size) {
|
HDSeed._entropy = function(size) {
|
||||||
// XXX Do not use crypto
|
return randomBytes(size);
|
||||||
return Array.prototype.slice.call(crypto.randomBytes(size));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
HDSeed._mnemonic = function(entropy) {
|
HDSeed._mnemonic = function(entropy) {
|
||||||
@ -361,7 +359,7 @@ HDPriv._getIndexes = function(path) {
|
|||||||
if (!step || step[0] === '-') {
|
if (!step || step[0] === '-') {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var index = +step; // cast to number
|
var index = +step;
|
||||||
if (hard) {
|
if (hard) {
|
||||||
index += HARDENED;
|
index += HARDENED;
|
||||||
}
|
}
|
||||||
@ -563,11 +561,30 @@ HDPub.prototype.deriveString = function(path) {
|
|||||||
* Helpers
|
* Helpers
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
var isBrowser = (typeof process !== 'undefined' && process.browser)
|
||||||
|
|| typeof window !== 'undefined';
|
||||||
|
|
||||||
function sha512hmac(data, salt) {
|
function sha512hmac(data, salt) {
|
||||||
// XXX Do not use crypto
|
if (isBrowser) {
|
||||||
|
var hmac = hash.hmac(hash.sha512, utils.toArray(salt));
|
||||||
|
return hmac.update(utils.toArray(data)).digest();
|
||||||
|
}
|
||||||
|
var crypto = require('crypto');
|
||||||
var hmac = crypto.createHmac('sha512', new Buffer(salt));
|
var hmac = crypto.createHmac('sha512', new Buffer(salt));
|
||||||
var hash = hmac.update(new Buffer(data)).digest();
|
var h = hmac.update(new Buffer(data)).digest();
|
||||||
return Array.prototype.slice.call(hash);
|
return Array.prototype.slice.call(h);
|
||||||
|
}
|
||||||
|
|
||||||
|
function randomBytes(size) {
|
||||||
|
if (isBrowser) {
|
||||||
|
var a = Uint8Array(size);
|
||||||
|
(window.crypto || window.msCrypto).getRandomValues(a);
|
||||||
|
var buf = new Array(size);
|
||||||
|
utils.copy(a, buf, 0);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
var crypto = require('crypto');
|
||||||
|
return Array.prototype.slice.call(crypto.randomBytes(size));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -448,10 +448,7 @@ Wallet.prototype.fill = function fill(tx, cb) {
|
|||||||
return tx;
|
return tx;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
// P2SH Multisig redeem script
|
||||||
* P2SH+Multisig Redemption
|
|
||||||
*/
|
|
||||||
|
|
||||||
Wallet.prototype.getRedemption = function() {
|
Wallet.prototype.getRedemption = function() {
|
||||||
var sharedKeys = this.sharedKeys.slice().map(utils.toKeyArray);
|
var sharedKeys = this.sharedKeys.slice().map(utils.toKeyArray);
|
||||||
if (sharedKeys.length < this.m) {
|
if (sharedKeys.length < this.m) {
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
"async": "^0.8.0",
|
"async": "^0.8.0",
|
||||||
"bn.js": "^0.10.0",
|
"bn.js": "^0.10.0",
|
||||||
"elliptic": "^3.0.3",
|
"elliptic": "^3.0.3",
|
||||||
"hash.js": "^0.2.0",
|
"hash.js": "^1.0.3",
|
||||||
"inherits": "^2.0.1"
|
"inherits": "^2.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user