X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2Fjs%2Findex.js;h=f8b67616c530af1ae84c873a7302f6d59781ac20;hb=a8c454871dafb83d47f65367ef46e64e4e47589f;hp=161f91f3e8787065e53d5c0d399b433386f438f8;hpb=ebd8d4e8b526477edf6190ba1fb9d56a6dbcf2ae;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git diff --git a/src/js/index.js b/src/js/index.js index 161f91f..f8b6761 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -10,6 +10,7 @@ var DOM = {}; DOM.phrase = $(".phrase"); + DOM.passphrase = $(".passphrase"); DOM.generate = $(".generate"); DOM.rootKey = $(".root-key"); DOM.extendedPrivKey = $(".extended-priv-key"); @@ -34,14 +35,15 @@ function init() { // Events - DOM.phrase.on("keyup", delayedPhraseChanged); + DOM.phrase.on("input", delayedPhraseChanged); + DOM.passphrase.on("input", delayedPhraseChanged); DOM.generate.on("click", generateClicked); DOM.more.on("click", showMore); - DOM.bip32path.on("keyup", bip32Changed); - DOM.bip44purpose.on("keyup", bip44Changed); - DOM.bip44coin.on("keyup", bip44Changed); - DOM.bip44account.on("keyup", bip44Changed); - DOM.bip44change.on("keyup", bip44Changed); + DOM.bip32path.on("input", bip32Changed); + DOM.bip44purpose.on("input", bip44Changed); + DOM.bip44coin.on("input", bip44Changed); + DOM.bip44account.on("input", bip44Changed); + DOM.bip44change.on("input", bip44Changed); DOM.tab.on("click", tabClicked); DOM.indexToggle.on("click", toggleIndexes); DOM.addressToggle.on("click", toggleAddresses); @@ -67,6 +69,7 @@ hideValidationError(); // Get the mnemonic phrase var phrase = DOM.phrase.val(); + var passphrase = DOM.passphrase.val(); var errorText = findPhraseErrors(phrase); if (errorText) { showValidationError(errorText); @@ -79,7 +82,7 @@ return; } // Calculate and display - calcBip32Seed(phrase, derivationPath); + calcBip32Seed(phrase, passphrase, derivationPath); displayBip32Info(); hidePending(); } @@ -159,10 +162,9 @@ return words; } - function calcBip32Seed(phrase, path) { - var seed = mnemonic.toSeed(phrase); - var seedHash = Bitcoin.crypto.sha256(seed).toString("hex"); - bip32RootKey = Bitcoin.HDNode.fromSeedHex(seedHash, network); + function calcBip32Seed(phrase, passphrase, path) { + var seed = mnemonic.toSeed(phrase, passphrase); + bip32RootKey = Bitcoin.HDNode.fromSeedHex(seed, network); bip32ExtendedKey = bip32RootKey; // Derive the key from the path var pathBits = path.split("/"); @@ -197,6 +199,7 @@ function findPhraseErrors(phrase) { // TODO make this right // Preprocess the words + phrase = mnemonic.normalizeString(phrase); var parts = phrase.split(" "); var proper = []; for (var i=0; i