X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2Fjs%2Fjsbip39.js;h=95a2a0eb1f2fcc775d340db4ebec954d35faa914;hb=e602fd18de88d120bea5104f26ffb74c04092ffd;hp=67ba5a7829dbd6927b85d91db52f82a1a34b1aee;hpb=52e6eb81c8e464e12cea1ffc75104ca726daaa1a;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git diff --git a/src/js/jsbip39.js b/src/js/jsbip39.js index 67ba5a7..95a2a0e 100644 --- a/src/js/jsbip39.js +++ b/src/js/jsbip39.js @@ -130,10 +130,11 @@ var Mnemonic = function(language) { self.toSeed = function(mnemonic, passphrase) { passphrase = passphrase || ''; - mnemonic = self.joinWords(self.splitWords(self.normalizeString(mnemonic))); // removes blanks + mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks + var mnemonicNormalized = self.normalizeString(mnemonic); passphrase = self.normalizeString(passphrase) passphrase = "mnemonic" + passphrase; - var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonic); + var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized); var passphraseBits = sjcl.codec.utf8String.toBits(passphrase); var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS, 512, hmacSHA512); var hashHex = sjcl.codec.hex.fromBits(result); @@ -148,21 +149,14 @@ var Mnemonic = function(language) { // Set space correctly depending on the language // see https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md#japanese var space = " "; - if (language == "japanese") { + if (language == "japanese" || language == "korean") { space = "\u3000"; // ideographic space } return words.join(space); } self.normalizeString = function(str) { - if (typeof str.normalize == "function") { - return str.normalize("NFKD"); - } - else { - // TODO decide how to handle this in the future. - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize - return str; - } + return str.normalize("NFKD"); } function byteArrayToWordArray(data) {