return s
def decode_seed(self, password):
- # test password on an address
- addr = self.all_addresses()[0]
- self.get_private_key(addr, password)
- # return seed
- return self.pw_decode(self.seed, password)
+ seed = self.pw_decode(self.seed, password)
+
+ # check decoded seed with master public key
+ curve = SECP256k1
+ secexp = self.stretch_key(seed)
+ master_private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 )
+ master_public_key = master_private_key.get_verifying_key().to_string().encode('hex')
+ if master_public_key != self.master_public_key:
+ print_error('invalid password (mpk)')
+ raise BaseException('Invalid password')
+
+ return seed
def get_history(self, address):