From b15799e7cbf1d4e650571731223659d0425b125e Mon Sep 17 00:00:00 2001 From: sachaaaaa Date: Wed, 7 Aug 2019 16:19:20 +1000 Subject: [PATCH] Generate 13 word seeds by default - still accept 25 word seeds. --- libtextsecure/account_manager.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libtextsecure/account_manager.js b/libtextsecure/account_manager.js index 219d8bb7a..2e7b96748 100644 --- a/libtextsecure/account_manager.js +++ b/libtextsecure/account_manager.js @@ -123,7 +123,12 @@ let generateKeypair; if (mnemonic) { generateKeypair = () => { - const seedHex = window.mnemonic.mn_decode(mnemonic, mnemonicLanguage); + let seedHex = window.mnemonic.mn_decode(mnemonic, mnemonicLanguage); + // handle shorter than 32 bytes seeds + if (seedHex.length !== 32 * 2) { + seedHex = seedHex.concat(seedHex); + seedHex = seedHex.substring(0, 32 * 2); + } const privKeyHex = window.mnemonic.sc_reduce32(seedHex); const privKey = dcodeIO.ByteBuffer.wrap( privKeyHex, @@ -517,8 +522,8 @@ }); }, async generateMnemonic(language = 'english') { - const keys = await libsignal.KeyHelper.generateIdentityKeyPair(); - const hex = StringView.arrayBufferToHex(keys.privKey); + const seed = window.Signal.Crypto.getRandomBytes(16); + const hex = StringView.arrayBufferToHex(seed); return mnemonic.mn_encode(hex, language); }, getCurrentMnemonic() {