Allow manual override for entropy type

This commit is contained in:
Ian Coleman
2019-12-17 13:42:44 +11:00
parent f7e9fdf002
commit 516c16d721
5 changed files with 110 additions and 15 deletions
+18 -1
View File
@@ -16,6 +16,7 @@
var showQr = false;
var litecoinUseLtub = true;
var entropyTypeAutoDetect = true;
var entropyChangeTimeoutEvent = null;
var phraseChangeTimeoutEvent = null;
var rootKeyChangedTimeoutEvent = null;
@@ -32,6 +33,7 @@
DOM.entropy = $(".entropy");
DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
DOM.entropyType = DOM.entropyContainer.find(".type");
DOM.entropyTypeInputs = DOM.entropyContainer.find("input[name='entropy-type']");
DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
DOM.entropyBits = DOM.entropyContainer.find(".bits");
@@ -128,6 +130,7 @@
DOM.useEntropy.on("change", setEntropyVisibility);
DOM.entropy.on("input", delayedEntropyChanged);
DOM.entropyMnemonicLength.on("change", entropyChanged);
DOM.entropyTypeInputs.on("change", entropyTypeChanged);
DOM.phrase.on("input", delayedPhraseChanged);
DOM.passphrase.on("input", delayedPhraseChanged);
DOM.generate.on("click", generateClicked);
@@ -330,6 +333,11 @@
}
}
function entropyTypeChanged() {
entropyTypeAutoDetect = false;
entropyChanged();
}
function delayedRootKeyChanged() {
// Warn if there is an existing mnemonic or passphrase.
if (DOM.phrase.val().length > 0 || DOM.passphrase.val().length > 0) {
@@ -1551,7 +1559,14 @@
// Get entropy value
var entropyStr = DOM.entropy.val();
// Work out minimum base for entropy
var entropy = Entropy.fromString(entropyStr);
var entropy = null;
if (entropyTypeAutoDetect) {
entropy = Entropy.fromString(entropyStr);
}
else {
let base = DOM.entropyTypeInputs.filter(":checked").val();
entropy = Entropy.fromString(entropyStr, base);
}
if (entropy.binaryStr.length == 0) {
return;
}
@@ -1632,6 +1647,8 @@
console.log(e);
}
var entropyTypeStr = getEntropyTypeStr(entropy);
DOM.entropyTypeInputs.attr("checked", false);
DOM.entropyTypeInputs.filter("[value='" + entropyTypeStr + "']").attr("checked", true);
var wordCount = Math.floor(numberOfBits / 32) * 3;
var bitsPerEvent = entropy.bitsPerEvent.toFixed(2);
var spacedBinaryStr = addSpacesEveryElevenBits(entropy.binaryStr);