From 21f435986aee37e1ef0d23e9b8ac37301d497088 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Mon, 11 Mar 2024 10:28:39 +0000 Subject: [PATCH] wallet.dieroll: support --seed-len opt --- mmgen/wallet/dieroll.py | 8 +++++++- test/cmdtest_py_d/ct_input.py | 11 +++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/mmgen/wallet/dieroll.py b/mmgen/wallet/dieroll.py index 74ed8e40..1f2938dc 100755 --- a/mmgen/wallet/dieroll.py +++ b/mmgen/wallet/dieroll.py @@ -75,7 +75,13 @@ class wallet(wallet): self._print_seed_type() - seed_bitlen = self._choose_seedlen([ n*8 for n in sorted(bc.seedlen_map) ]) + if self.cfg.seed_len: + from ..obj import Int + msg('Using seed length {} (user-configured)'.format(Int(self.cfg.seed_len).hl())) + assert self.cfg.seed_len // 8 in bc.seedlen_map, f'{self.cfg.seed_len}: invalid seed length' + seed_bitlen = self.cfg.seed_len + else: + seed_bitlen = self._choose_seedlen([n*8 for n in sorted(bc.seedlen_map)]) nDierolls = bc.seedlen_map[seed_bitlen // 8] diff --git a/test/cmdtest_py_d/ct_input.py b/test/cmdtest_py_d/ct_input.py index 129900fc..ee0244c6 100755 --- a/test/cmdtest_py_d/ct_input.py +++ b/test/cmdtest_py_d/ct_input.py @@ -389,7 +389,8 @@ class CmdTestInput(CmdTestBase): usr_rand = False, out_fmt = None, entry_mode = 'full', - mn = None): + mn = None, + seedlen_opt = False): wcls = get_wallet_cls(fmt_code=fmt) wf = os.path.join(ref_dir,f'FE3C6545.{wcls.ext}') @@ -402,11 +403,13 @@ class CmdTestInput(CmdTestBase): t = self.spawn( 'mmgen-walletconv', ['--usr-randchars=10', '--stdout'] + + (['--seed-len=128'] if seedlen_opt else []) + [f'--in-fmt={fmt}', f'--out-fmt={out_fmt or fmt}'] ) t.expect(f'{capfirst(wcls.base_type or wcls.type)} type:.*{wcls.mn_type}',regex=True) - t.expect(wcls.choose_seedlen_prompt,'1') - t.expect('(Y/n): ','y') + if not seedlen_opt: + t.expect(wcls.choose_seedlen_prompt,'1') + t.expect('(Y/n): ','y') if wcls.base_type == 'mnemonic': t.expect('Type a number.*: ','6',regex=True) t.expect('invalid') @@ -477,6 +480,6 @@ class CmdTestInput(CmdTestBase): return self._mn2hex('xmrseed',entry_mode='short') def dieroll_entry(self): - return self._user_seed_entry('dieroll') + return self._user_seed_entry('dieroll', seedlen_opt=True) def dieroll_entry_usrrand(self): return self._user_seed_entry('dieroll',usr_rand=True,out_fmt='bip39')