aboutsummaryrefslogtreecommitdiff
path: root/tests.js
diff options
context:
space:
mode:
authorIan Coleman <coleman.ian@gmail.com>2016-11-30 19:38:14 +1100
committerIan Coleman <coleman.ian@gmail.com>2016-11-30 19:43:14 +1100
commitfc7c248fafef4ba2aecf9dcf4718b3d4c91d94b0 (patch)
treec510a9cc73a4161d5b8feaf872bcbdfe41c272ea /tests.js
parent94959756408aa60be4118ab1dceff4e71c6afdbf (diff)
downloadBIP39-fc7c248fafef4ba2aecf9dcf4718b3d4c91d94b0.tar.gz
BIP39-fc7c248fafef4ba2aecf9dcf4718b3d4c91d94b0.tar.zst
BIP39-fc7c248fafef4ba2aecf9dcf4718b3d4c91d94b0.zip
Entropy with more than 4 decks can be calculated
Diffstat (limited to 'tests.js')
-rw-r--r--tests.js59
1 files changed, 53 insertions, 6 deletions
diff --git a/tests.js b/tests.js
index 4f8f60f..843078f 100644
--- a/tests.js
+++ b/tests.js
@@ -2726,6 +2726,50 @@ page.open(url, function(status) {
2726 words: 18, 2726 words: 18,
2727 strength: "extremely strong", 2727 strength: "extremely strong",
2728 }, 2728 },
2729 // Multiple decks of cards increases bits per event
2730 {
2731 entropy: "3d",
2732 events: 1,
2733 bits: 4,
2734 bitsPerEvent: 4.34,
2735 },
2736 {
2737 entropy: "3d3d",
2738 events: 2,
2739 bits: 9,
2740 bitsPerEvent: 4.80,
2741 },
2742 {
2743 entropy: "3d3d3d",
2744 events: 3,
2745 bits: 15,
2746 bitsPerEvent: 5.01,
2747 },
2748 {
2749 entropy: "3d3d3d3d",
2750 events: 4,
2751 bits: 20,
2752 bitsPerEvent: 5.14,
2753 },
2754 {
2755 entropy: "3d3d3d3d3d",
2756 events: 5,
2757 bits: 26,
2758 bitsPerEvent: 5.22,
2759 },
2760 {
2761 entropy: "3d3d3d3d3d3d",
2762 events: 6,
2763 bits: 31,
2764 bitsPerEvent: 5.28,
2765 },
2766 {
2767 entropy: "3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d",
2768 events: 33,
2769 bits: 184,
2770 bitsPerEvent: 5.59,
2771 strength: 'easily cracked - Repeats like "abcabcabc" are only slightly harder to guess than "abc"',
2772 },
2729 ]; 2773 ];
2730 // use entropy 2774 // use entropy
2731 page.evaluate(function() { 2775 page.evaluate(function() {
@@ -2737,18 +2781,21 @@ page.open(url, function(status) {
2737 if ("filtered" in expected && actual.indexOf(expected.filtered) == -1) { 2781 if ("filtered" in expected && actual.indexOf(expected.filtered) == -1) {
2738 return "Filtered value not in feedback"; 2782 return "Filtered value not in feedback";
2739 } 2783 }
2740 if (actual.indexOf(expected.type) == -1) { 2784 if ("type" in expected && actual.indexOf(expected.type) == -1) {
2741 return "Entropy type not in feedback"; 2785 return "Entropy type not in feedback";
2742 } 2786 }
2743 if (actual.indexOf(expected.events) == -1) { 2787 if ("events" in expected && actual.indexOf(expected.events) == -1) {
2744 return "Event count not in feedback"; 2788 return "Event count not in feedback";
2745 } 2789 }
2746 if (actual.indexOf(expected.bits) == -1) { 2790 if ("bits" in expected && actual.indexOf(expected.bits) == -1) {
2747 return "Bit count not in feedback"; 2791 return "Bit count not in feedback";
2748 } 2792 }
2749 if (actual.indexOf(expected.strength) == -1) { 2793 if ("strength" in expected && actual.indexOf(expected.strength) == -1) {
2750 return "Strength not in feedback"; 2794 return "Strength not in feedback";
2751 } 2795 }
2796 if ("bitsPerEvent" in expected && actual.indexOf(expected.bitsPerEvent) == -1) {
2797 return "bitsPerEvent not in feedback";
2798 }
2752 return false; 2799 return false;
2753 } 2800 }
2754 test = tests[i]; 2801 test = tests[i];
@@ -2762,7 +2809,7 @@ page.open(url, function(status) {
2762 return $(".phrase").val(); 2809 return $(".phrase").val();
2763 }); 2810 });
2764 // Check mnemonic length 2811 // Check mnemonic length
2765 if (test.words == 0) { 2812 if ("words" in test && test.words == 0) {
2766 if (mnemonic.length > 0) { 2813 if (mnemonic.length > 0) {
2767 console.log("Mnemonic length for " + test.strength + " strength is not " + test.words); 2814 console.log("Mnemonic length for " + test.strength + " strength is not " + test.words);
2768 console.log("Entropy: " + test.entropy); 2815 console.log("Entropy: " + test.entropy);
@@ -2770,7 +2817,7 @@ page.open(url, function(status) {
2770 fail(); 2817 fail();
2771 } 2818 }
2772 } 2819 }
2773 else { 2820 else if ("words" in test) {
2774 if (mnemonic.split(" ").length != test.words) { 2821 if (mnemonic.split(" ").length != test.words) {
2775 console.log("Mnemonic length for " + test.strength + " strength is not " + test.words); 2822 console.log("Mnemonic length for " + test.strength + " strength is not " + test.words);
2776 console.log("Entropy: " + test.entropy); 2823 console.log("Entropy: " + test.entropy);