From 1f138afd4c6662aae3bb9b62fcb4d591735cfa35 Mon Sep 17 00:00:00 2001 From: Jared Deckard Date: Sat, 5 Jul 2014 22:42:46 -0700 Subject: [PATCH] Fix binary string comparison failure --- base58.js | 2 +- test/basic.js | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/base58.js b/base58.js index 1bcdff8..243c553 100644 --- a/base58.js +++ b/base58.js @@ -94,7 +94,7 @@ var base58Check = { var hash = doubleSHA256(data); var hash4 = hash.slice(0, 4); - if (csum.toString() != hash4.toString()) { + if (csum.toString('hex') != hash4.toString('hex')) { throw new Error("checksum mismatch"); } diff --git a/test/basic.js b/test/basic.js index bd0a7a7..9b23010 100644 --- a/test/basic.js +++ b/test/basic.js @@ -14,7 +14,12 @@ var testData = [ ["ecac89cad93923c02321", "EJDM8drfXA6uyA", "2W1Yd5Zu6WGyKVtHGMrH"], ["10c8511e", "Rt5zm", "3op3iuGMmhs"], ["00000000000000000000", "1111111111", "111111111146Momb"], - ["", "", "3QJmnh"] + ["", "", "3QJmnh"], + ["0062e907b15cbf27d5425399ebf6f0fb50ebb88f18", "12NvYg7CXwVYtMDYia7n9viekJ6d5", "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"] +]; + +var invalidTestData = [ + "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNb" ]; suite('basic'); @@ -46,4 +51,16 @@ test('allData', function() { base58Check.encodeTest(raw, b58Check); base58Check.decodeTest(raw, b58Check); }); + + base58Check.invalidDecodeTest = function(b58str) { + assert.throws(function(){ + base58Check.decode(b58str); + }, + /checksum mismatch/ + ); + }; + + invalidTestData.forEach(function(datum) { + base58Check.invalidDecodeTest(datum); + }); });