Raw entropy is interpreted as binary

For example, using abandon abandon ability becomes 8 zeros but how does
the entropy field know it's hex and not binary? It assumes the
worst-case scenario of binary, so entropy should be shown in binary.

Perhaps if entropy type is explicitly selected in the future this can be
changed back to using hex. But while magical assumptions exist, binary
it must be.
This commit is contained in:
Ian Coleman
2019-11-11 10:31:14 +11:00
parent d93f2ba9f0
commit 700294714c
3 changed files with 14 additions and 3 deletions

View File

@@ -240,7 +240,7 @@
}
phraseChangeTimeoutEvent = setTimeout(function() {
phraseChanged();
var entropy = mnemonic.toRawEntropyHex(DOM.phrase.val());
var entropy = mnemonic.toRawEntropyBin(DOM.phrase.val());
if (entropy !== null) {
DOM.entropyMnemonicLength.val("raw");
DOM.entropy.val(entropy);

View File

@@ -130,6 +130,12 @@ var Mnemonic = function(language) {
return h;
}
self.toRawEntropyBin = function(mnemonic) {
var b = mnemonicToBinaryString(mnemonic);
var d = b.substring(0, b.length / 33 * 32);
return d;
}
self.toSeed = function(mnemonic, passphrase) {
passphrase = passphrase || '';
mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks

View File

@@ -4129,8 +4129,13 @@ fit('Converts mnemonics into raw entropy', function(done) {
driver.findElement(By.css('.entropy'))
.getAttribute("value")
.then(function(entropy) {
expect(entropy).toBe("00000001");
done();
expect(entropy).toBe("00000000000000000000000000000001");
driver.findElement(By.css('.phrase'))
.getAttribute("value")
.then(function(phrase) {
expect(phrase).toBe("abandon abandon about");
done();
});
});
});
});