mirror of
https://git.wownero.com/lza_menace/wownero-python.git
synced 2024-08-15 03:25:25 +00:00
Add handling for 12/13-word seeds (MyMonero style)
This commit is contained in:
parent
c9b4a5c7cb
commit
83eca24ce0
2 changed files with 14 additions and 2 deletions
|
@ -85,6 +85,9 @@ class Seed(object):
|
|||
self.hex = generate_hex()
|
||||
self.encode_seed()
|
||||
|
||||
def is_mymonero(self):
|
||||
"""Returns True if the seed is MyMonero-style (12/13-word)."""
|
||||
return len(self.hex) == 32
|
||||
|
||||
def endian_swap(self, word):
|
||||
"""Given any string, swap bits and return the result.
|
||||
|
@ -152,12 +155,19 @@ class Seed(object):
|
|||
def hex_seed(self):
|
||||
return self.hex
|
||||
|
||||
def _hex_seed_keccak(self):
|
||||
h = keccak_256()
|
||||
h.update(unhexlify(self.hex))
|
||||
return h.hexdigest()
|
||||
|
||||
def secret_spend_key(self):
|
||||
return self.sc_reduce(self.hex)
|
||||
a = self._hex_seed_keccak() if self.is_mymonero() else self.hex
|
||||
return self.sc_reduce(a)
|
||||
|
||||
def secret_view_key(self):
|
||||
b = self._hex_seed_keccak() if self.is_mymonero() else self.secret_spend_key()
|
||||
h = keccak_256()
|
||||
h.update(unhexlify(self.secret_spend_key()))
|
||||
h.update(unhexlify(b))
|
||||
return self.sc_reduce(h.hexdigest())
|
||||
|
||||
def public_spend_key(self):
|
||||
|
|
|
@ -66,6 +66,7 @@ class SeedTestCase(unittest.TestCase):
|
|||
seed = Seed("adjust mugged vaults atlas nasty mews damp toenail suddenly toxic possible "\
|
||||
"framed succeed fuzzy return demonstrate nucleus album noises peculiar virtual "\
|
||||
"rowboat inorganic jester fuzzy")
|
||||
self.assertFalse(seed.is_mymonero())
|
||||
self.assertTrue(seed.validate_checksum())
|
||||
self.assertEqual(
|
||||
seed.secret_spend_key(),
|
||||
|
@ -87,6 +88,7 @@ class SeedTestCase(unittest.TestCase):
|
|||
'54pZ5jHDGmwNnycvZbUoj44vsbAEmKnx9aNgkjHdjtMsBrSeKiY8J4s2raH7EMawA2Fwo9utaRTV7Aw8EcTMNMxhH6cuARW')
|
||||
|
||||
seed = Seed("dwelt idols lopped blender haggled rabbits piloted value swagger taunts toolbox upgrade swagger")
|
||||
self.assertTrue(seed.is_mymonero())
|
||||
self.assertTrue(seed.validate_checksum())
|
||||
# the following fails, #21 addresses that
|
||||
self.assertEqual(
|
||||
|
|
Loading…
Reference in a new issue