Fix trezor restore

Broken by my recent changes
This commit is contained in:
Neil Booth 2015-12-27 15:38:52 +09:00
parent 7372e0e082
commit 669cf74789
2 changed files with 8 additions and 16 deletions

View File

@ -26,6 +26,7 @@ import json
import copy import copy
from functools import partial from functools import partial
from struct import pack from struct import pack
from unicodedata import normalize
from i18n import _ from i18n import _
from util import NotEnoughFunds, PrintError, profiler from util import NotEnoughFunds, PrintError, profiler
@ -1764,8 +1765,8 @@ class BIP32_Hardware_Wallet(BIP32_HD_Wallet):
# trezor uses bip39 # trezor uses bip39
import pbkdf2, hashlib, hmac import pbkdf2, hashlib, hmac
PBKDF2_ROUNDS = 2048 PBKDF2_ROUNDS = 2048
mnemonic = unicodedata.normalize('NFKD', ' '.join(mnemonic.split())) mnemonic = normalize('NFKD', ' '.join(mnemonic.split()))
passphrase = unicodedata.normalize('NFKD', passphrase) passphrase = normalize('NFKD', passphrase)
return pbkdf2.PBKDF2(mnemonic, 'mnemonic' + passphrase, return pbkdf2.PBKDF2(mnemonic, 'mnemonic' + passphrase,
iterations = PBKDF2_ROUNDS, macmodule = hmac, iterations = PBKDF2_ROUNDS, macmodule = hmac,
digestmodule = hashlib.sha512).read(64) digestmodule = hashlib.sha512).read(64)

View File

@ -6,7 +6,6 @@ from PyQt4.Qt import QGridLayout, QInputDialog, QPushButton
from PyQt4.Qt import QVBoxLayout, QLabel, SIGNAL from PyQt4.Qt import QVBoxLayout, QLabel, SIGNAL
from trezor import TrezorPlugin from trezor import TrezorPlugin
from electrum_gui.qt.main_window import ElectrumWindow, StatusBarButton from electrum_gui.qt.main_window import ElectrumWindow, StatusBarButton
from electrum_gui.qt.installwizard import InstallWizard
from electrum_gui.qt.password_dialog import PasswordDialog from electrum_gui.qt.password_dialog import PasswordDialog
from electrum_gui.qt.util import * from electrum_gui.qt.util import *
@ -62,19 +61,11 @@ class QtHandler:
self.done.set() self.done.set()
def passphrase_dialog(self, msg): def passphrase_dialog(self, msg):
if type(self.win) is ElectrumWindow:
msg = _("Please enter your %s passphrase") % self.device
passphrase = self.win.password_dialog(msg)
else:
assert type(self.win) is InstallWizard
d = PasswordDialog(self.win, None, None, msg, False) d = PasswordDialog(self.win, None, None, msg, False)
confirmed, p, passphrase = d.run() confirmed, p, phrase = d.run()
if confirmed:
if passphrase is None: phrase = normalize('NFKD', unicode(phrase or ''))
self.win.show_critical(_("Passphrase request canceled")) self.passphrase = phrase
else:
passphrase = normalize('NFKD', unicode(passphrase))
self.passphrase = passphrase
self.done.set() self.done.set()
def message_dialog(self, msg, cancel_callback): def message_dialog(self, msg, cancel_callback):