exit(1)
# check password
try:
- wallet.pw_decode( wallet.seed, password)
+ seed = wallet.decode_seed(password)
except:
print_msg("Error: This password does not decode this wallet.")
exit(1)
print_msg(known_commands[cmd2])
elif cmd == 'seed':
- seed = wallet.pw_decode( wallet.seed, password)
print_msg(seed + ' "' + ' '.join(mnemonic_encode(seed)) + '"')
elif cmd == 'deseed':
print_msg(h)
elif cmd == 'password':
- try:
- seed = wallet.pw_decode( wallet.seed, password)
- except ValueError:
- sys.exit("Error: Password does not decrypt this wallet.")
-
new_password = prompt_password('New password:')
wallet.update_password(seed, password, new_password)
show_message("No seed")
return
try:
- seed = wallet.pw_decode( wallet.seed, password)
+ seed = wallet.decode_seed(password)
except:
show_message("Incorrect password")
return
return
try:
- seed = wallet.pw_decode( wallet.seed, password)
+ seed = wallet.decode_seed(password)
except:
show_message("Incorrect password")
return
password = None
try:
- seed = wallet.pw_decode( wallet.seed, password)
+ seed = wallet.decode_seed(password)
except:
modal_dialog('error','incorrect password')
return
password = None
try:
- seed = wallet.pw_decode( wallet.seed, password)
+ seed = wallet.decode_seed(password)
except:
modal_dialog('error','incorrect password')
return
password = None
try:
- seed = wallet.pw_decode(wallet.seed, password)
+ seed = wallet.decode_seed(password)
except:
- QMessageBox.warning(parent, _('Error'),
- _('Incorrect Password'), _('OK'))
+ QMessageBox.warning(parent, _('Error'), _('Incorrect Password'), _('OK'))
return
dialog = QDialog(None)
new_password2 = unicode(conf_pw.text())
try:
- seed = wallet.pw_decode( wallet.seed, password)
+ seed = wallet.decode_seed(password)
except:
QMessageBox.warning(parent, _('Error'), _('Incorrect Password'), _('OK'))
return
def import_key(self, sec, password):
# try password
try:
- seed = self.pw_decode( self.seed, password)
+ seed = self.decode_seed(password)
except:
raise BaseException("Invalid password")
if address in self.imported_keys.keys():
sec = self.pw_decode( self.imported_keys[address], password )
if not sec: return None, None
-
pkey = regenerate_key(sec)
compressed = is_compressed(sec)
secexp = pkey.secret
for_change = True
else:
raise BaseException("unknown address")
- try:
- seed = self.pw_decode( self.seed, password)
- except:
- raise BaseException("Invalid password")
+
+ seed = self.pw_decode( self.seed, password)
if not seed: return None
secexp = self.stretch_key(seed)
secexp = ( secexp + self.get_sequence(n,for_change) ) % order
compressed = False
+ pkey = EC_KEY(secexp)
+
+ public_key = GetPubKey(pkey, compressed)
+ addr = public_key_to_bc_address(public_key)
+ if addr != address:
+ print_error('Invalid password with correct decoding')
+ raise BaseException('Invalid password')
return secexp, compressed
def pw_decode(self, s, password):
if password is not None:
secret = Hash(password)
- d = DecodeAES(secret, s)
- if s == self.seed:
- try:
- d.decode('hex')
- except:
- raise ValueError("Invalid password")
+ try:
+ d = DecodeAES(secret, s)
+ except:
+ raise BaseException('Invalid password')
return d
else:
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)
+
def get_history(self, address):
with self.lock: