From b09dd73cbe114ab66d2813ec617f41c0e094dfd7 Mon Sep 17 00:00:00 2001 From: Daniel Cousens Date: Wed, 30 Apr 2014 05:07:41 +1000 Subject: [PATCH] Enforces bytesToWordArray only operates on byte arrays --- src/convert.js | 2 ++ test/hdwallet.js | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/convert.js b/src/convert.js index 8f5d35e..b0449c8 100644 --- a/src/convert.js +++ b/src/convert.js @@ -1,3 +1,4 @@ +var assert = require('assert') var Crypto = require('crypto-js') var WordArray = Crypto.lib.WordArray @@ -77,6 +78,7 @@ function varIntToNum(bytes) { } function bytesToWords(bytes) { + assert(Array.isArray(bytes) || Buffer.isBuffer(bytes), 'Input must be a byte array') var words = [] for (var i = 0, b = 0; i < bytes.length; i++, b += 8) { words[b >>> 5] |= bytes[i] << (24 - b % 32) diff --git a/test/hdwallet.js b/test/hdwallet.js index 2488fdd..028d3a3 100644 --- a/test/hdwallet.js +++ b/test/hdwallet.js @@ -233,17 +233,17 @@ describe('HDWallet', function() { describe('network types', function() { it('ensures that a bitcoin Wallet generates bitcoin addresses', function() { - var wallet = new HDWallet('foobar', 'bitcoin') - assert.equal(wallet.getAddress().toString(), '1JNymexJHEr5u1BndiChMStFkCgPm4EQ6o') + var wallet = new HDWallet(new Buffer('foobar'), 'bitcoin') + assert.equal(wallet.getAddress().toString(), '17SnB9hyGwJPoKpLb9eVPHjsujyEuBpMAA') }) it('ensures that a testnet Wallet generates testnet addresses', function() { - var wallet = new HDWallet('foobar', 'testnet') - assert.equal(wallet.getAddress().toString(), 'mxtw4i3H6GHLg7fQMHB5BN6acCH6kQ7aoY') + var wallet = new HDWallet(new Buffer('foobar'), 'testnet') + assert.equal(wallet.getAddress().toString(), 'mmxjUCnx5xjeaSHxJicsDCxCmjZwq8KTbv') }) it('throws an excption when unknown network type is passed in', function() { - assert.throws(function() { new HDWallet("foobar", "doge") }) + assert.throws(function() { new HDWallet(new Buffer('foobar'), 'doge') }) }) }) })