make Seed() attrs immutable

This commit is contained in:
The MMGen Project 2019-05-07 10:00:29 +00:00
commit 11b04d4d9d
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 8 additions and 6 deletions

View file

@ -431,8 +431,7 @@ Removed {{}} duplicate WIF key{{}} from keylist (also in {pnm} key-address file
def generate(self,seed,addrnums):
assert type(addrnums) is AddrIdxList
seed = seed.get_data()
seed = self.scramble_seed(seed)
seed = self.scramble_seed(seed.data)
dmsg_sc('seed',seed[:8].hex())
compressed = self.al_id.mmtype.compressed

View file

@ -492,7 +492,7 @@ class SeedID(str,Hilite,InitErrors):
from mmgen.seed import Seed
assert type(seed) == Seed,'not a Seed instance'
from mmgen.util import make_chksum_8
return str.__new__(cls,make_chksum_8(seed.get_data()))
return str.__new__(cls,make_chksum_8(seed.data))
elif sid:
assert set(sid) <= set(hexdigits.upper()),'not uppercase hex digits'
assert len(sid) == cls.width,'not {} characters wide'.format(cls.width)

View file

@ -46,6 +46,12 @@ def is_mnemonic(s):
return ret
class Seed(MMGenObject):
data = MMGenImmutableAttr('data',bytes,typeconv=False)
hexdata = MMGenImmutableAttr('hexdata',str,typeconv=False)
sid = MMGenImmutableAttr('sid',SeedID,typeconv=False)
length = MMGenImmutableAttr('length',int,typeconv=False)
def __init__(self,seed_bin=None):
if not seed_bin:
# Truncate random data for smaller seed lengths
@ -58,9 +64,6 @@ class Seed(MMGenObject):
self.sid = SeedID(seed=self)
self.length = len(seed_bin) * 8
def get_data(self):
return self.data
class SeedSource(MMGenObject):
desc = g.proj_name + ' seed source'