Browse Source

Add missing encryption in private key import (issue #1966). Allow key overwrite in order to fix affected wallets

283
ThomasV 8 years ago
parent
commit
f4d5efbf3b
  1. 7
      lib/keystore.py

7
lib/keystore.py

@ -141,15 +141,12 @@ class Imported_KeyStore(Software_KeyStore):
self.get_private_key((0,0), password) self.get_private_key((0,0), password)
def import_key(self, sec, password): def import_key(self, sec, password):
if not self.can_import():
raise BaseException('This wallet cannot import private keys')
try: try:
pubkey = public_key_from_private_key(sec) pubkey = public_key_from_private_key(sec)
except Exception: except Exception:
raise BaseException('Invalid private key') raise BaseException('Invalid private key')
if pubkey in self.keypairs: # allow overwrite
raise BaseException('Private key already in keystore') self.keypairs[pubkey] = pw_encode(sec, password)
self.keypairs[pubkey] = sec
self.receiving_pubkeys = self.keypairs.keys() self.receiving_pubkeys = self.keypairs.keys()
return pubkey return pubkey

Loading…
Cancel
Save