1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-03-15 07:36:12 +00:00

core/mnemonic: cancel homescreen before seed progress animation

If we close the default layout before the animation starts, the workflow manager starts it again after the current workflow ends (and no layout is running).
This commit is contained in:
Jan Pochyla 2019-06-24 13:12:12 +02:00
parent 10f15a6952
commit 03f23fe940
3 changed files with 13 additions and 5 deletions

View File

@ -1,13 +1,12 @@
from micropython import const
from trezor import ui, wire
from trezor import ui, wire, workflow
from trezor.crypto.hashlib import sha256
from trezor.messages.Success import Success
from trezor.utils import consteq
from . import bip39, slip39
from apps.common import storage
from apps.common.mnemonic import bip39, slip39
TYPE_BIP39 = const(0)
TYPE_SLIP39 = const(1)
@ -46,6 +45,7 @@ def module_from_words_count(count: int):
def _start_progress():
workflow.closedefault()
ui.backlight_fade(ui.BACKLIGHT_DIM)
ui.display.clear()
ui.header("Please wait")
@ -57,3 +57,7 @@ def _render_progress(progress: int, total: int):
p = 1000 * progress // total
ui.display.loader(p, False, 18, ui.WHITE, ui.BG)
ui.display.refresh()
def _stop_progress():
pass

View File

@ -29,7 +29,9 @@ def store(secret: bytes, needs_backup: bool, no_backup: bool):
def get_seed(secret: bytes, passphrase: str):
mnemonic._start_progress()
return bip39.seed(secret.decode(), passphrase, mnemonic._render_progress)
seed = bip39.seed(secret.decode(), passphrase, mnemonic._render_progress)
mnemonic._stop_progress()
return seed
def check(secret: bytes):

View File

@ -82,6 +82,8 @@ def get_seed(encrypted_master_secret: bytes, passphrase: str):
mnemonic._start_progress()
identifier = storage.get_slip39_identifier()
iteration_exponent = storage.get_slip39_iteration_exponent()
return slip39.decrypt(
master_secret = slip39.decrypt(
identifier, iteration_exponent, encrypted_master_secret, passphrase
)
mnemonic._stop_progress()
return master_secret