From 50b8dd2b2c7748eb83e84200107f471f32d632f6 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Thu, 10 Aug 2017 06:22:33 -0700 Subject: [PATCH] mnemonic: better parsing. --- lib/hd/mnemonic.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/hd/mnemonic.js b/lib/hd/mnemonic.js index fa3cd632..a7c3b5df 100644 --- a/lib/hd/mnemonic.js +++ b/lib/hd/mnemonic.js @@ -475,17 +475,21 @@ Mnemonic.prototype.toRaw = function toRaw(writer) { */ Mnemonic.prototype.fromReader = function fromReader(br) { - this.bits = br.readU16(); - this.language = Mnemonic.languages[br.readU8()]; - this.entropy = br.readBytes(this.bits / 8); + const bits = br.readU16(); + + assert(bits >= common.MIN_ENTROPY); + assert(bits <= common.MAX_ENTROPY); + assert(bits % 32 === 0); + + const language = Mnemonic.languages[br.readU8()]; + assert(language); + + this.bits = bits; + this.language = language; + this.entropy = br.readBytes(bits / 8); this.phrase = br.readVarString('utf8'); this.passphrase = br.readVarString('utf8'); - assert(this.language); - assert(this.bits >= common.MIN_ENTROPY); - assert(this.bits <= common.MAX_ENTROPY); - assert(this.bits % 32 === 0); - return this; };