Entropy is left-padded to 256 bits

Closes #49
This commit is contained in:
Ian Coleman
2017-01-12 13:47:09 +11:00
parent 40892aba50
commit 53aaab270d
3 changed files with 31 additions and 2 deletions

View File

@@ -19488,7 +19488,7 @@ window.Entropy = new (function() {
var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
var hex = sjcl.codec.hex.fromBits(hash);
bits = BigInteger.parse(hex, 16).toString(2);
for (var i=0; i<256-bits.length; i++) {
while (bits.length % 256 != 0) {
bits = "0" + bits;
}
// Truncate hash to suit number of words

View File

@@ -843,7 +843,7 @@
var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
var hex = sjcl.codec.hex.fromBits(hash);
bits = BigInteger.parse(hex, 16).toString(2);
for (var i=0; i<256-bits.length; i++) {
while (bits.length % 256 != 0) {
bits = "0" + bits;
}
// Truncate hash to suit number of words

View File

@@ -3335,6 +3335,35 @@ page.open(url, function(status) {
});
},
// Github issue 49
// padding for binary should give length with multiple of 256
// hashed entropy 1111 is length 252, so requires 4 leading zeros
// prior to issue 49 it would only generate 2 leading zeros, ie missing 2
function() {
page.open(url, function(status) {
expected = "avocado valid quantum cross link predict excuse edit street able flame large galaxy ginger nuclear"
// use entropy
page.evaluate(function() {
$(".use-entropy").prop("checked", true).trigger("change");
$(".entropy").val("1111").trigger("input");
});
waitForGenerate(function() {
// get the mnemonic
var actual = page.evaluate(function() {
return $(".phrase").val();
});
// check the mnemonic is correct
if (actual != expected) {
console.log("Left padding error for entropy");
console.log("Expected: " + expected);
console.log("Actual: " + actual);
fail();
}
next();
});
});
},
// If you wish to add more tests, do so here...
// Here is a blank test template