From 665da1a27c6b9f616245529b72f7b399a5c3ec5d Mon Sep 17 00:00:00 2001 From: MMGen Date: Wed, 12 Jun 2019 14:46:54 +0000 Subject: [PATCH] Seed: 'length' -> 'bitlen'; new 'byte_len' property --- mmgen/seed.py | 46 ++++++++++++++++----------------- test/unit_tests_d/ut_subseed.py | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/mmgen/seed.py b/mmgen/seed.py index 5cf59b2d..68be4593 100755 --- a/mmgen/seed.py +++ b/mmgen/seed.py @@ -61,9 +61,13 @@ class SeedBase(MMGenObject): self.sid = SeedID(seed=self) @property - def length(self): + def bitlen(self): return len(self.data) * 8 + @property + def byte_len(self): + return len(self.data) + @property def hexdata(self): return self.data.hex() @@ -188,7 +192,7 @@ class SubSeedList(MMGenObject): fs1 = '{:>18} {:>18}\n' fs2 = '{i:>7}L: {:8} {i:>7}S: {:8}\n' - hdr = '{:>16} {} ({} bits)\n\n'.format('Parent Seed:',self.parent_seed.sid.hl(),self.parent_seed.length) + hdr = '{:>16} {} ({} bits)\n\n'.format('Parent Seed:',self.parent_seed.sid.hl(),self.parent_seed.bitlen) hdr += fs1.format('Long Subseeds','Short Subseeds') hdr += fs1.format('-------------','--------------') @@ -225,9 +229,9 @@ class Seed(SeedBase): def add_share(ss): if d.slen: - assert ss.length == d.slen,'Seed length mismatch! {} != {}'.format(ss.length,d.slen) + assert ss.bitlen == d.slen,'Seed length mismatch! {} != {}'.format(ss.bitlen,d.slen) else: - d.slen = ss.length + d.slen = ss.bitlen d.ret ^= int(ss.data.hex(),16) d.count += 1 @@ -265,8 +269,7 @@ class SubSeed(SeedBase): scramble_key = idx.to_bytes(4,'big',signed=False) + \ nonce.to_bytes(2,'big',signed=False) + \ short.to_bytes(1,'big',signed=False) - byte_len = 16 if short else seed.length // 8 - return scramble_seed(seed.data,scramble_key)[:byte_len] + return scramble_seed(seed.data,scramble_key)[:16 if short else seed.byte_len] class SeedShareList(SubSeedList): master_share = None @@ -335,7 +338,7 @@ class SeedShareList(SubSeedList): mfs1,mfs2 = (' with master share #{} ({})',' master #{} ({})') midx,msid = (self.master_share.idx,self.master_share.sid) - hdr = ' {} {} ({} bits)\n'.format('Seed:',self.parent_seed.sid.hl(),self.parent_seed.length) + hdr = ' {} {} ({} bits)\n'.format('Seed:',self.parent_seed.sid.hl(),self.parent_seed.bitlen) hdr += ' {} {c}-of-{c} (XOR){m}\n'.format('Split Type:',c=self.count,m=mfs1.format(midx,msid)) hdr += ' {} {}\n\n'.format('ID String:',self.id_str.hl()) hdr += fs1.format('Shares') @@ -361,8 +364,7 @@ class SeedShare(SubSeed): nonce.to_bytes(2,'big',signed=False) if parent_list.master_share: scramble_key += b':master:' + parent_list.master_share.idx.to_bytes(2,'big',signed=False) - byte_len = seed.length // 8 - return scramble_seed(seed.data,scramble_key)[:byte_len] + return scramble_seed(seed.data,scramble_key)[:seed.byte_len] class SeedShareLast(SeedBase): @@ -383,7 +385,7 @@ class SeedShareLast(SeedBase): for ss in seed_list: ret ^= int(ss.data.hex(),16) - return ret.to_bytes(seed.length // 8,'big') + return ret.to_bytes(seed.byte_len,'big') class SeedShareMaster(SeedBase): @@ -401,14 +403,12 @@ class SeedShareMaster(SeedBase): seed = self.parent_list.parent_seed # field maximums: idx: 65535 (1024) scramble_key = b'master:' + self.idx.to_bytes(2,'big',signed=False) - byte_len = seed.length // 8 - return scramble_seed(seed.data,scramble_key)[:byte_len] + return scramble_seed(seed.data,scramble_key)[:seed.byte_len] def make_derived_seed_bin(self,id_str,count): # field maximums: id_str: none (256 chars), count: 65535 (1024) scramble_key = id_str.encode() + b':' + count.to_bytes(2,'big',signed=False) - byte_len = self.length // 8 - return scramble_seed(self.data,scramble_key)[:byte_len] + return scramble_seed(self.data,scramble_key)[:self.byte_len] class SeedShareMasterJoining(SeedShareMaster): @@ -501,7 +501,7 @@ class SeedSource(MMGenObject): self._deformat_retry() self._decrypt_retry() - m = ('',', seed length {}'.format(self.seed.length))[self.seed.length!=256] + m = ('',', seed length {}'.format(self.seed.bitlen))[self.seed.bitlen!=256] qmsg('Valid {} for Seed ID {}{}'.format(self.desc,self.seed.sid.hl(),m)) def _get_data(self): @@ -608,7 +608,7 @@ class SeedSourceUnenc(SeedSource): s = self.seed return '{}[{}]{x}.{}'.format( s.sid, - s.length, + s.bitlen, self.ext, x='-α' if g.debug_utf8 else '') @@ -860,7 +860,7 @@ class Mnemonic (SeedSourceUnenc): self.seed = Seed(bytes.fromhex(hexseed)) self.ssdata.mnemonic = mn - check_usr_seed_len(self.seed.length) + check_usr_seed_len(self.seed.bitlen) return True @@ -910,7 +910,7 @@ class SeedFile (SeedSourceUnenc): self.ssdata.chksum = a self.ssdata.b58seed = b - check_usr_seed_len(self.seed.length) + check_usr_seed_len(self.seed.bitlen) return True @@ -958,7 +958,7 @@ class HexSeedFile(SeedSourceUnenc): self.ssdata.chksum = chk self.ssdata.hexseed = hstr - check_usr_seed_len(self.seed.length) + check_usr_seed_len(self.seed.bitlen) return True @@ -1022,7 +1022,7 @@ class Wallet (SeedSourceEnc): lines = ( d.label, '{} {} {} {} {}'.format(s.sid.lower(), d.key_id.lower(), - s.length, d.pw_status, d.timestamp), + s.bitlen, d.pw_status, d.timestamp), '{}: {} {} {}'.format(d.hash_preset,*get_hash_params(d.hash_preset)), '{} {}'.format(make_chksum_6(slt_fmt),split_into_cols(4,slt_fmt)), '{} {}'.format(make_chksum_6(es_fmt), split_into_cols(4,es_fmt)) @@ -1118,7 +1118,7 @@ class Wallet (SeedSourceEnc): return '{}-{}[{},{}]{x}.{}'.format( s.sid, d.key_id, - s.length, + s.bitlen, d.hash_preset, self.ext, x='-α' if g.debug_utf8 else '') @@ -1233,7 +1233,7 @@ to exit and re-run the program with the '--old-incog-fmt' option. d.wrapper_key = make_key(d.passwd, d.iv, d.hash_preset, 'incog wrapper key') d.key_id = make_chksum_8(d.wrapper_key) vmsg('Key ID: {}'.format(d.key_id)) - d.target_data_len = self._get_incog_data_len(self.seed.length) + d.target_data_len = self._get_incog_data_len(self.seed.bitlen) def _format(self): d = self.ssdata @@ -1246,7 +1246,7 @@ to exit and re-run the program with the '--old-incog-fmt' option. s.sid, d.key_id, d.iv_id, - s.length, + s.bitlen, d.hash_preset, self.ext, x='-α' if g.debug_utf8 else '') diff --git a/test/unit_tests_d/ut_subseed.py b/test/unit_tests_d/ut_subseed.py index 90473dd0..effd6444 100755 --- a/test/unit_tests_d/ut_subseed.py +++ b/test/unit_tests_d/ut_subseed.py @@ -30,7 +30,7 @@ class unit_test(object): assert subseed.sid == d, subseed.sid subseed = seed.subseed_by_seed_id(e) - assert subseed.length == f, subseed.length + assert subseed.bitlen == f, subseed.bitlen assert subseed.sid == e, subseed.sid assert subseed.idx == 10, subseed.idx assert subseed.ss_idx == h, subseed.ss_idx