Browse Source

bugfix: encryption of encrypted keys

283
ThomasV 13 years ago
parent
commit
1181f4ef01
  1. 9
      electrum
  2. 2
      electrum4a.py
  3. 2
      lib/gui.py
  4. 2
      lib/gui_qt.py
  5. 4
      lib/wallet.py

9
electrum

@ -443,14 +443,7 @@ if __name__ == '__main__':
sys.exit(1) sys.exit(1)
new_password = getpass.getpass('New password:') new_password = getpass.getpass('New password:')
if new_password == getpass.getpass('Confirm new password:'): if new_password == getpass.getpass('Confirm new password:'):
wallet.use_encryption = (new_password != '') wallet.update_password(seed, password, new_password)
wallet.seed = wallet.pw_encode( seed, new_password)
for k in wallet.imported_keys.keys():
a = wallet.imported_keys[k]
b = wallet.pw_decode(a, password)
c = wallet.pw_encode(b, new_password)
wallet.imported_keys[k] = c
wallet.save()
else: else:
print "error: mismatch" print "error: mismatch"

2
electrum4a.py

@ -792,7 +792,7 @@ def change_password_dialog():
modal_dialog('error','passwords do not match') modal_dialog('error','passwords do not match')
return return
wallet.update_password(seed, new_password) wallet.update_password(seed, password, new_password)
if new_password: if new_password:
modal_dialog('Password updated','your wallet is encrypted') modal_dialog('Password updated','your wallet is encrypted')
else: else:

2
lib/gui.py

@ -530,7 +530,7 @@ def change_password_dialog(wallet, parent, icon):
show_message("passwords do not match") show_message("passwords do not match")
return return
wallet.update_password(seed, new_password) wallet.update_password(seed, password, new_password)
if icon: if icon:
if wallet.use_encryption: if wallet.use_encryption:

2
lib/gui_qt.py

@ -938,7 +938,7 @@ class ElectrumWindow(QMainWindow):
QMessageBox.warning(parent, 'Error', 'Passwords do not match', 'OK') QMessageBox.warning(parent, 'Error', 'Passwords do not match', 'OK')
return return
wallet.update_password(seed, new_password) wallet.update_password(seed, password, new_password)
@staticmethod @staticmethod
def seed_dialog(wallet, parent=None): def seed_dialog(wallet, parent=None):

4
lib/wallet.py

@ -847,13 +847,13 @@ class Wallet:
return target, signing_addr, auth_name return target, signing_addr, auth_name
def update_password(self, seed, new_password): def update_password(self, seed, old_password, new_password):
if new_password == '': new_password = None if new_password == '': new_password = None
self.use_encryption = (new_password != None) self.use_encryption = (new_password != None)
self.seed = self.pw_encode( seed, new_password) self.seed = self.pw_encode( seed, new_password)
for k in self.imported_keys.keys(): for k in self.imported_keys.keys():
a = self.imported_keys[k] a = self.imported_keys[k]
b = self.pw_decode(a, password) b = self.pw_decode(a, old_password)
c = self.pw_encode(b, new_password) c = self.pw_encode(b, new_password)
self.imported_keys[k] = c self.imported_keys[k] = c
self.save() self.save()

Loading…
Cancel
Save