diff --git a/utils/package.json b/utils/package.json index 8b18bd1c6..5615992bf 100644 --- a/utils/package.json +++ b/utils/package.json @@ -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", diff --git a/utils/pbkdf2.js b/utils/pbkdf2.js index 6196a8cca..21ddc5882 100644 --- a/utils/pbkdf2.js +++ b/utils/pbkdf2.js @@ -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; diff --git a/wallet/hdnode.js b/wallet/hdnode.js index f4d50da25..5d4fa93de 100644 --- a/wallet/hdnode.js +++ b/wallet/hdnode.js @@ -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++) { diff --git a/wallet/package.json b/wallet/package.json index ae6cfa88d..0039f38c4 100644 --- a/wallet/package.json +++ b/wallet/package.json @@ -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",