From: Ian Coleman Date: Wed, 16 Nov 2016 00:58:51 +0000 (+1100) Subject: zxcvbn errors are caught, with strength 'unknown' X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git;a=commitdiff_plain;h=9bc39377aa0317ffbfed3b6e29814bb26681cfd5;hp=391c7f267f6be3356d0bffa74e2726245b5f45b2 zxcvbn errors are caught, with strength 'unknown' --- diff --git a/src/js/index.js b/src/js/index.js index e064185..dbbd382 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -810,13 +810,20 @@ // If time to crack is less than one day, and password is considered // strong or better based on the number of bits, rename strength to // 'easily cracked'. - var z = zxcvbn(entropy.cleanStr); - var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second; - if (timeToCrack < 86400 && entropy.binaryStr.length >= 128) { - strength = "easily cracked"; - if (z.feedback.warning != "") { - strength = strength + " - " + z.feedback.warning; - }; + try { + var z = zxcvbn(entropy.base.parts.join("")); + var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second; + if (timeToCrack < 86400 && entropy.binaryStr.length >= 128) { + strength = "easily cracked"; + if (z.feedback.warning != "") { + strength = strength + " - " + z.feedback.warning; + }; + } + } + catch (e) { + strength = "unknown"; + console.log("Error detecting entropy strength with zxcvbn:"); + console.log(e); } var bitsStr = getNumberOfEntropyBits(entropy); var wordCount = Math.floor(entropy.binaryStr.length / 32) * 3; diff --git a/tests.js b/tests.js index b43d1a1..1b1d445 100644 --- a/tests.js +++ b/tests.js @@ -2664,6 +2664,15 @@ page.open(url, function(status) { words: 27, strength: "extremely strong", }, + // Next test was throwing uncaught error in zxcvbn + { + entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsksac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks", + type: "card (full deck, 52 duplicates: ac 2c 3c...)", + events: 104, + bits: 226, + words: 54, + strength: "extremely strong", + }, ]; // use entropy page.evaluate(function() {