wallet.dieroll: support --seed-len opt

This commit is contained in:
The MMGen Project 2024-03-11 10:28:39 +00:00
commit 21f435986a
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
2 changed files with 14 additions and 5 deletions

View file

@ -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]

View file

@ -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')