var page = require('webpage').create();
var url = 'src/index.html';
-var testMaxTime = 5000;
+var testMaxTime = 10000;
page.onResourceError = function(e) {
console.log("Error loading " + e.url);
[ "222F", "16" ],
[ "FFFF", "16" ],
[ "0000101017", "33" ], // 10 events at 3.32 bits per event
+ [ "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks", "226" ], // cards are not replaced, so a full deck is not 52^52 entropy which is 296 bits, it's 52!, which is 226 bits
]
// use entropy
page.evaluate(function(e) {
words: 18,
strength: "extremely strong",
},
+ {
+ entropy: "7d",
+ type: "card",
+ events: 1,
+ bits: 5,
+ words: 0,
+ strength: "extremely weak",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks",
+ type: "card (full deck)",
+ events: 52,
+ bits: 226,
+ words: 27,
+ strength: "extremely strong",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks3d",
+ type: "card (full deck, 1 duplicate: 3d)",
+ events: 53,
+ bits: 232,
+ words: 27,
+ strength: "extremely strong",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqs3d4d",
+ type: "card (2 duplicates: 3d 4d)",
+ events: 53,
+ bits: 232,
+ words: 27,
+ strength: "extremely strong",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqs3d4d5d6d",
+ type: "card (4 duplicates: 3d 4d 5d...)",
+ events: 53,
+ bits: 243,
+ 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: 452,
+ words: 54,
+ strength: "extremely strong",
+ },
];
// use entropy
page.evaluate(function() {
});
var nextTest = function runNextTest(i) {
function getFeedbackError(expected, actual) {
- if (actual.indexOf(expected.filtered) == -1) {
+ if ("filtered" in expected && actual.indexOf(expected.filtered) == -1) {
return "Filtered value not in feedback";
}
if (actual.indexOf(expected.type) == -1) {
});
},
-// Entropy is truncated from the right
+// Entropy is truncated from the left
function() {
page.open(url, function(status) {
- var expected = "abandon abandon ability";
+ var expected = "avocado zoo zone";
// use entropy
page.evaluate(function() {
$(".use-entropy").prop("checked", true).trigger("change");
var entropy = "00000000 00000000 00000000 00000000";
- entropy += "11111111 11111111 11111111 1111"; // Missing last byte, only first 8 bytes are used
+ entropy += "11111111 11111111 11111111 1111"; // Missing last byte
$(".entropy").val(entropy).trigger("input");
});
// check the entropy is truncated from the right
// https://bip32jp.github.io/english/index.html
// NOTES:
// Is incompatible with:
-// base 6 with leading zeros
-// base 6 wth 12 words / 53 chars
// base 20
function() {
page.open(url, function(status) {