diff --git a/src/apps/common/request_passphrase.py b/src/apps/common/request_passphrase.py new file mode 100644 index 0000000000..6855af622f --- /dev/null +++ b/src/apps/common/request_passphrase.py @@ -0,0 +1,15 @@ +from trezor import ui, wire + + +async def request_passphrase(session_id): + from trezor.messages.PassphraseRequest import PassphraseRequest + from trezor.messages.wire_types import PassphraseAck + from trezor.ui.text import Text + + ui.display.clear() + text = Text('Enter passphrase', ui.ICON_RESET, + 'Please enter passphrase', 'on your computer.') + text.render() + + ack = await wire.reply_message(session_id, PassphraseRequest(), PassphraseAck) + return ack.passphrase diff --git a/src/apps/common/seed.py b/src/apps/common/seed.py index f3b91b95ab..6b630fdb42 100644 --- a/src/apps/common/seed.py +++ b/src/apps/common/seed.py @@ -40,6 +40,7 @@ async def get_seed(session_id: int) -> bytes: async def compute_seed(session_id): from trezor.crypto import bip39 from trezor.messages.FailureType import PinInvalid, Other + from .request_passphrase import request_passphrase from .request_pin import request_pin from . import storage @@ -52,10 +53,7 @@ async def compute_seed(session_id): raise wire.FailureError(PinInvalid, 'PIN is incorrect') if storage.is_protected_by_passphrase(): - from trezor.messages.PassphraseRequest import PassphraseRequest - from trezor.messages.wire_types import PassphraseAck - ack = await wire.reply_message(session_id, PassphraseRequest(), PassphraseAck) - passphrase = ack.passphrase + passphrase = await request_passphrase(session_id) else: passphrase = ''