1
0

Permit empty passphrases when creating HW wallet

They used to be confused as a user cancel.
Fixes #1788
Also fix Cancel pressed in passphrase dialog when *restoring*
a hardware wallet in install wizard; it used to be taken as an
empty passphrase.  Like the password dialog it now cancels the
wizard.
This commit is contained in:
Neil Booth
2016-05-07 10:40:12 +09:00
parent 18b7337aea
commit db1aa13015
4 changed files with 17 additions and 11 deletions

View File

@@ -208,13 +208,15 @@ class InstallWizard(QDialog, MessageBoxMixin, WizardBase):
self.set_main_layout(playout.layout())
return playout.new_password()
def request_passphrase(self, device_text, restore=True):
"""Request a passphrase for a wallet from the given device and
confirm it. restore is True if restoring a wallet. Should return
def request_passphrase(self, device_text):
"""When restoring a wallet, request the passphrase that was used for
the wallet on the given device and confirm it. Should return
a unicode string."""
if restore:
msg = MSG_RESTORE_PASSPHRASE % device_text
return unicode(self.pw_layout(msg, PW_PASSPHRASE) or '')
phrase = self.pw_layout(MSG_RESTORE_PASSPHRASE % device_text,
PW_PASSPHRASE)
if phrase is None:
raise UserCancelled
return phrase
def request_password(self, msg=None):
"""Request the user enter a new password and confirm it. Return

View File

@@ -146,7 +146,11 @@ class PasswordLayout(object):
return None
def new_password(self):
return unicode(self.new_pw.text()) or None
pw = unicode(self.new_pw.text())
# Empty passphrases are fine and returned empty.
if pw == "" and self.kind != PW_PASSPHRASE:
pw = None
return pw
class PasswordDialog(WindowModalDialog):