new wallet format: PlainHexSeedFile (plain hexadecimal w/o checksum)
This commit is contained in:
parent
2a79e3647d
commit
15ac6c6947
6 changed files with 49 additions and 0 deletions
|
|
@ -1014,6 +1014,35 @@ class MMGenSeedFile(SeedSourceUnenc):
|
|||
|
||||
return True
|
||||
|
||||
class PlainHexSeedFile(SeedSourceUnenc):
|
||||
|
||||
stdin_ok = True
|
||||
fmt_codes = 'hex','rawhex','plainhex'
|
||||
desc = 'plain hexadecimal seed data'
|
||||
ext = 'hex'
|
||||
|
||||
def _format(self):
|
||||
self.fmt_data = self.seed.hexdata + '\n'
|
||||
|
||||
def _deformat(self):
|
||||
desc = self.desc
|
||||
d = self.fmt_data.strip()
|
||||
|
||||
if not is_hex_str_lc(d):
|
||||
msg("'{}': not a lowercase hexidecimal string, in {}".format(d,desc))
|
||||
return False
|
||||
|
||||
if not len(d)*4 in g.seed_lens:
|
||||
msg('Invalid data length ({}) in {}'.format(len(d),desc))
|
||||
return False
|
||||
|
||||
self.seed = Seed(bytes.fromhex(d))
|
||||
self.ssdata.hexseed = d
|
||||
|
||||
check_usr_seed_len(self.seed.bitlen)
|
||||
|
||||
return True
|
||||
|
||||
class MMGenHexSeedFile(SeedSourceUnenc):
|
||||
|
||||
stdin_ok = True
|
||||
|
|
|
|||
1
test/ref/1378FC64.hex
Normal file
1
test/ref/1378FC64.hex
Normal file
|
|
@ -0,0 +1 @@
|
|||
456d7f5f1c4bfe3bc916b87560ae6a3e20da39691cf53ded
|
||||
1
test/ref/98831F3A.hex
Normal file
1
test/ref/98831F3A.hex
Normal file
|
|
@ -0,0 +1 @@
|
|||
456d7f5f1c4bfe3bc916b87560ae6a3e20da39691cf53ded010e90a56e048e62
|
||||
1
test/ref/FE3C6545.hex
Normal file
1
test/ref/FE3C6545.hex
Normal file
|
|
@ -0,0 +1 @@
|
|||
456d7f5f1c4bfe3bc916b87560ae6a3e
|
||||
|
|
@ -46,6 +46,7 @@ class TestSuiteRef3Seed(TestSuiteBase,TestSuiteShared):
|
|||
('ref_wallet_chk', ([],'saved reference wallet')),
|
||||
('ref_seed_chk', ([],'saved seed file')),
|
||||
('ref_hex_chk', ([],'saved mmhex file')),
|
||||
('ref_plainhex_chk',([],'saved hex file')),
|
||||
('ref_mn_chk', ([],'saved native MMGen mnemonic file')),
|
||||
('ref_bip39_chk', ([],'saved BIP39 mnemonic file')),
|
||||
('ref_hincog_chk', ([],'saved hidden incog reference wallet')),
|
||||
|
|
@ -56,6 +57,7 @@ class TestSuiteRef3Seed(TestSuiteBase,TestSuiteShared):
|
|||
('ref_walletconv_bip39', (['mmdat',pwfile],'wallet filename (bip39)')),
|
||||
('ref_walletconv_seed', (['mmdat',pwfile],'wallet filename (seed)')),
|
||||
('ref_walletconv_hexseed',(['mmdat',pwfile],'wallet filename (hex seed)')),
|
||||
('ref_walletconv_plainhexseed',(['mmdat',pwfile],'wallet filename (plain hex seed)')),
|
||||
('ref_walletconv_incog', (['mmdat',pwfile],'wallet filename (incog)')),
|
||||
('ref_walletconv_xincog', (['mmdat',pwfile],'wallet filename (hex incog)')),
|
||||
)
|
||||
|
|
@ -86,6 +88,10 @@ class TestSuiteRef3Seed(TestSuiteBase,TestSuiteShared):
|
|||
from mmgen.seed import MMGenHexSeedFile
|
||||
return self.ref_ss_chk(ss=MMGenHexSeedFile)
|
||||
|
||||
def ref_plainhex_chk(self):
|
||||
from mmgen.seed import PlainHexSeedFile
|
||||
return self.ref_ss_chk(ss=PlainHexSeedFile)
|
||||
|
||||
def ref_mn_chk(self):
|
||||
from mmgen.seed import MMGenMnemonic
|
||||
return self.ref_ss_chk(ss=MMGenMnemonic)
|
||||
|
|
@ -164,6 +170,9 @@ class TestSuiteRef3Seed(TestSuiteBase,TestSuiteShared):
|
|||
def ref_walletconv_hexseed(self,fn,pf):
|
||||
return self.ref_walletconv(fn,pf,ofmt='mmhex',desc='Hexadecimal seed data with checksum',ext='mmhex')
|
||||
|
||||
def ref_walletconv_plainhexseed(self,fn,pf):
|
||||
return self.ref_walletconv(fn,pf,ofmt='hex',desc='Plain hexadecimal seed data',ext='hex')
|
||||
|
||||
def ref_walletconv_incog(self,fn,pf,desc='Incognito data',ofmt='incog',ext='mmincog'):
|
||||
args = ['-r0','-p1']
|
||||
pat = r'{}-[0-9A-F]{{8}}-[0-9A-F]{{8}}\[{},1\].' + ext
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ class TestSuiteWalletConv(TestSuiteBase,TestSuiteShared):
|
|||
('ref_bip39_conv', 'conversion of saved BIP39 mnemonic'),
|
||||
('ref_seed_conv', 'conversion of saved seed file'),
|
||||
('ref_hex_conv', 'conversion of saved MMGen hexadecimal seed file'),
|
||||
('ref_plainhex_conv', 'conversion of saved plain hexadecimal seed file'),
|
||||
('ref_brain_conv', 'conversion of ref brainwallet'),
|
||||
('ref_incog_conv', 'conversion of saved incog wallet'),
|
||||
('ref_incox_conv', 'conversion of saved hex incog wallet'),
|
||||
|
|
@ -73,6 +74,7 @@ class TestSuiteWalletConv(TestSuiteBase,TestSuiteShared):
|
|||
('ref_mn_conv_out', 'ref seed conversion to MMGen native mnemonic'),
|
||||
('ref_bip39_conv_out', 'ref seed conversion to BIP39 mnemonic'),
|
||||
('ref_hex_conv_out', 'ref seed conversion to MMGen hex seed'),
|
||||
('ref_plainhex_conv_out','ref seed conversion to plain hex seed'),
|
||||
('ref_seed_conv_out', 'ref seed conversion to seed'),
|
||||
('ref_incog_conv_out', 'ref seed conversion to incog data'),
|
||||
('ref_incox_conv_out', 'ref seed conversion to hex incog data'),
|
||||
|
|
@ -103,6 +105,9 @@ class TestSuiteWalletConv(TestSuiteBase,TestSuiteShared):
|
|||
def ref_hex_conv(self):
|
||||
return self.ref_mn_conv(ext='mmhex',desc='Hexadecimal seed data with checksum')
|
||||
|
||||
def ref_plainhex_conv(self):
|
||||
return self.ref_mn_conv(ext='hex',desc='Plain hexadecimal seed data')
|
||||
|
||||
def ref_brain_conv(self):
|
||||
uopts = ['-i','b','-p','1','-l',str(self.seed_len)]
|
||||
return self.walletconv_in(None,'brainwallet',uopts,oo=True)
|
||||
|
|
@ -139,6 +144,9 @@ class TestSuiteWalletConv(TestSuiteBase,TestSuiteShared):
|
|||
def ref_hex_conv_out(self):
|
||||
return self.walletconv_out('hexadecimal seed data with checksum','hexseed')
|
||||
|
||||
def ref_plainhex_conv_out(self):
|
||||
return self.walletconv_out('plain hexadecimal seed data','hex')
|
||||
|
||||
def ref_incog_conv_out(self):
|
||||
return self.walletconv_out('incognito data',out_fmt='i',pw=True)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue