From 9cc05a488a36cae93c1633f27c9e783831590ca4 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Thu, 21 Jul 2016 05:27:42 -0700 Subject: [PATCH] utils. --- lib/bcoin/bip151.js | 8 +------- lib/bcoin/utils.js | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/lib/bcoin/bip151.js b/lib/bcoin/bip151.js index 24dc76d9..220124c9 100644 --- a/lib/bcoin/bip151.js +++ b/lib/bcoin/bip151.js @@ -164,14 +164,8 @@ BIP151.prototype.toEncack = function toEncack(writer) { BIP151.prototype.encack = function encack(data) { var p = bcoin.reader(data); var publicKey = p.readBytes(33); - var i; - for (i = 0; i < publicKey.length; i++) { - if (publicKey[i] !== 0) - break; - } - - if (i === publicKey.length) { + if (utils.isZero(publicKey)) { this.rekey(); return; } diff --git a/lib/bcoin/utils.js b/lib/bcoin/utils.js index eafbfcdb..c7b0880e 100644 --- a/lib/bcoin/utils.js +++ b/lib/bcoin/utils.js @@ -1741,6 +1741,25 @@ utils.sizeVarint2 = function sizeVarint2(num) { return size; }; +/** + * Test whether a buffer is all zeroes. + * @param {Buffer} data + * @returns {Boolean} + */ + +utils.isZero = function isZero(data) { + var i; + + assert(Buffer.isBuffer(data)); + + for (i = 0; i < data.length; i++) { + if (data[i] !== 0) + return false; + } + + return true; +}; + /** * Buffer comparator (memcmp + length comparison). * @param {Buffer} a