]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/commitdiff
zxcvbn errors are caught, with strength 'unknown'
authorIan Coleman <coleman.ian@gmail.com>
Wed, 16 Nov 2016 00:58:51 +0000 (11:58 +1100)
committerIan Coleman <coleman.ian@gmail.com>
Wed, 16 Nov 2016 01:12:13 +0000 (12:12 +1100)
src/js/index.js
tests.js

index e064185f411124f18f78316ca72114b5fc24898d..dbbd382e406de4ca6e999e3ad62d880e335e8089 100644 (file)
         // 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;
index b43d1a15edd8b772f6e9b407e0d62e2763b8d3f0..1b1d44577a91b01e8addb301c54b707c594610c8 100644 (file)
--- 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() {