Fixed slice for limited environments in HD and PBKDF2.
This commit is contained in:
parent
d49beb8374
commit
a9bc2b5ea8
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ethers-utils",
|
||||
"version": "2.1.5",
|
||||
"version": "2.1.6",
|
||||
"description": "Utilities for the Ethers Ethereum library.",
|
||||
"bugs": {
|
||||
"url": "http://github.com/ethers-io/ethers.js/issues",
|
||||
|
@ -1,3 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
var convert = require('./convert');
|
||||
|
||||
function pbkdf2(password, salt, iterations, keylen, createHmac) {
|
||||
var hLen
|
||||
@ -39,31 +42,10 @@ function pbkdf2(password, salt, iterations, keylen, createHmac) {
|
||||
var destPos = (i - 1) * hLen
|
||||
var len = (i === l ? r : hLen)
|
||||
//T.copy(DK, destPos, 0, len)
|
||||
DK.set(Array.prototype.slice.call(T, 0, len), destPos);
|
||||
|
||||
DK.set(convert.arrayify(T).slice(0, len), destPos);
|
||||
}
|
||||
|
||||
return DK
|
||||
return convert.arrayify(DK)
|
||||
}
|
||||
|
||||
/*
|
||||
var hmac = require('./hmac.js');
|
||||
var utf8 = require('./utf8.js');
|
||||
var p = require('pbkdf2');
|
||||
|
||||
var pw = utf8.toUtf8Bytes('password');
|
||||
var sa = utf8.toUtf8Bytes('salt');
|
||||
|
||||
var t0 = (new Date()).getTime();
|
||||
for (var i = 0; i < 100; i++) {
|
||||
pbkdf2(pw, sa, 1000, 40, hmac.createSha512Hmac);
|
||||
}
|
||||
var t1 = (new Date()).getTime();
|
||||
for (var i = 0; i < 100; i++) {
|
||||
p.pbkdf2Sync('password', 'salt', 1000, 40, 'sha512');
|
||||
}
|
||||
var t2 = (new Date()).getTime();
|
||||
|
||||
console.log('TT', t1 - t0, t2 - t1);
|
||||
*/
|
||||
module.exports = pbkdf2;
|
||||
|
@ -82,7 +82,7 @@ utils.defineProperty(HDNode.prototype, '_derive', function(index) {
|
||||
// Data += ser_32(i)
|
||||
for (var i = 24; i >= 0; i -= 8) { data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff); }
|
||||
|
||||
var I = utils.createSha512Hmac(this.chainCode).update(data).digest();
|
||||
var I = utils.arrayify(utils.createSha512Hmac(this.chainCode).update(data).digest());
|
||||
var IL = utils.bigNumberify(I.slice(0, 32));
|
||||
var IR = I.slice(32);
|
||||
|
||||
@ -130,7 +130,7 @@ utils.defineProperty(HDNode, 'fromSeed', function(seed) {
|
||||
seed = utils.arrayify(seed);
|
||||
if (seed.length < 16 || seed.length > 64) { throw new Error('invalid seed'); }
|
||||
|
||||
var I = utils.createSha512Hmac(MasterSecret).update(seed).digest();
|
||||
var I = utils.arrayify(utils.createSha512Hmac(MasterSecret).update(seed).digest());
|
||||
|
||||
return new HDNode(secp256k1.keyFromPrivate(I.slice(0, 32)), I.slice(32), 0, 0, 0);
|
||||
});
|
||||
@ -160,7 +160,7 @@ function mnemonicToEntropy(mnemonic) {
|
||||
var words = mnemonic.toLowerCase().split(' ');
|
||||
if ((words.length % 3) !== 0) { throw new Error('invalid mnemonic'); }
|
||||
|
||||
var entropy = new Uint8Array(Math.ceil(11 * words.length / 8));
|
||||
var entropy = utils.arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));
|
||||
|
||||
var offset = 0;
|
||||
for (var i = 0; i < words.length; i++) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ethers-wallet",
|
||||
"version": "2.1.3",
|
||||
"version": "2.1.4",
|
||||
"description": "Wallet and signing library for Ethereum.",
|
||||
"bugs": {
|
||||
"url": "http://github.com/ethers-io/ethers.js/issues",
|
||||
|
Loading…
Reference in New Issue
Block a user