File tree Expand file tree Collapse file tree 2 files changed +8
-9
lines changed
Expand file tree Collapse file tree 2 files changed +8
-9
lines changed Original file line number Diff line number Diff line change @@ -42,6 +42,9 @@ function mnemonicToEntropy (mnemonic, wordlist) {
4242 return lpad ( index . toString ( 2 ) , '0' , 11 )
4343 } ) . join ( '' )
4444
45+ // max entropy is 1024; (1024×8)+((1024×8)÷32) = 8448
46+ assert ( bits . length <= 8448 , 'Invalid mnemonic' )
47+
4548 // split the binary string into ENT/CS
4649 var dividerIndex = Math . floor ( bits . length / 33 ) * 32
4750 var entropy = bits . slice ( 0 , dividerIndex )
@@ -64,7 +67,7 @@ function entropyToMnemonic (entropy, wordlist) {
6467
6568 var entropyBuffer = new Buffer ( entropy , 'hex' )
6669
67- assert ( entropyBuffer . length && entropyBuffer . length % 4 === 0 , 'Invalid entropy' )
70+ assert ( entropyBuffer . length > 0 && entropyBuffer . length <= 1024 && entropyBuffer . length % 4 === 0 , 'Invalid entropy' )
6871
6972 var entropyBits = bytesToBinary ( [ ] . slice . call ( entropyBuffer ) )
7073 var checksum = checksumBits ( entropyBuffer )
Original file line number Diff line number Diff line change @@ -71,19 +71,14 @@ describe('BIP39', function () {
7171 assert . throws ( function ( ) {
7272 BIP39 . entropyToMnemonic ( new Buffer ( '' , 'hex' ) ) ;
7373 } , 'Invalid entropy' )
74-
74+
7575 assert . throws ( function ( ) {
7676 BIP39 . entropyToMnemonic ( new Buffer ( '000000' , 'hex' ) ) ;
7777 } , 'Invalid entropy' )
7878
79- var e ;
80- try {
79+ assert . throws ( function ( ) {
8180 BIP39 . entropyToMnemonic ( new Buffer ( new Array ( 1028 + 1 ) . join ( '00' ) , 'hex' ) ) ;
82- e = null ;
83- } catch ( _e ) {
84- e = _e ;
85- }
86- assert ( e && e . message === 'Invalid entropy' ) ;
81+ } , 'Invalid entropy' )
8782 } )
8883 } )
8984
@@ -148,6 +143,7 @@ describe('BIP39', function () {
148143 it ( 'fails for mnemonics of wrong length' , function ( ) {
149144 assert ( ! BIP39 . validateMnemonic ( 'sleep kitten' ) )
150145 assert ( ! BIP39 . validateMnemonic ( 'sleep kitten sleep kitten sleep kitten' ) )
146+ assert ( ! BIP39 . validateMnemonic ( 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about end grace oxygen maze bright face loan ticket trial leg cruel lizard bread worry reject journey perfect chef section caught neither install industry' ) )
151147 } )
152148
153149 it ( 'fails for mnemonics that contains words not from the word list' , function ( ) {
You can’t perform that action at this time.
0 commit comments