diff --git a/src/hdnode.js b/src/hdnode.js index 0b2399c..8c8a41d 100644 --- a/src/hdnode.js +++ b/src/hdnode.js @@ -31,6 +31,7 @@ function HDNode(K, chainCode, network) { network = network || networks.bitcoin assert(Buffer.isBuffer(chainCode), 'Expected Buffer, got ' + chainCode) + assert.equal(chainCode.length, 32, 'Expected chainCode length of 32, got ' + chainCode.length) assert(network.bip32, 'Unknown BIP32 constants for network') this.chainCode = chainCode diff --git a/test/hdnode.js b/test/hdnode.js index bc951a2..265b5d6 100644 --- a/test/hdnode.js +++ b/test/hdnode.js @@ -49,7 +49,13 @@ describe('HDNode', function() { assert.equal(hd.network, networks.testnet) }) - it('throws an exception when an unknown network is given', function() { + it('throws when an invalid length chain code is given', function() { + assert.throws(function() { + new HDNode(d, chainCode.slice(0, 20), networks.testnet) + }, /Expected chainCode length of 32, got 20/) + }) + + it('throws when an unknown network is given', function() { assert.throws(function() { new HDNode(d, chainCode, {}) }, /Unknown BIP32 constants for network/)