test password before importing key

This commit is contained in:
ThomasV 2013-01-05 21:58:16 +01:00
parent 279b85e3fe
commit bc9e6f88e6
2 changed files with 25 additions and 1 deletions

View File

@ -1533,6 +1533,21 @@ class ElectrumWindow(QMainWindow):
from gui_lite import csv_transaction
csv_transaction(self.wallet)
def do_import_privkey(self):
text, ok = QInputDialog.getText(self, _('Import private key'), _('Key') + ':')
if ok:
sec = str(text)
password = self.password_dialog()
try:
addr = self.wallet.import_key(sec, password)
if not addr:
QMessageBox.critical(None, "Unable to import key", "error")
else:
QMessageBox.information(None, "Key imported", addr)
except BaseException as e:
QMessageBox.critical(None, "Unable to import key", str(e))
def settings_dialog(self):
d = QDialog(self)
d.setWindowTitle(_('Electrum Settings'))
@ -1673,9 +1688,13 @@ class ElectrumWindow(QMainWindow):
grid_io.addWidget(QLabel(_('History')), 2, 0)
grid_io.addWidget(EnterButton(_("Export"), self.do_export_history), 2, 1)
grid_io.setRowStretch(3,1)
grid_io.addWidget(HelpButton('Export your transaction history as csv'), 2, 3)
grid_io.addWidget(QLabel(_('Private key')), 3, 0)
grid_io.addWidget(EnterButton(_("Import"), self.do_import_privkey), 3, 2)
grid_io.addWidget(HelpButton('Import private key'), 3, 3)
grid_io.setRowStretch(4,1)
vbox.addLayout(ok_cancel_buttons(d))
d.setLayout(vbox)

View File

@ -113,6 +113,11 @@ class Wallet:
while not self.is_up_to_date(): time.sleep(0.1)
def import_key(self, sec, password):
# try password
try:
seed = self.pw_decode( self.seed, password)
except:
raise BaseException("Invalid password")
# rebuild public key from private key, compressed or uncompressed
pkey = regenerate_key(sec)