zrcadlo
https://github.com/trezor/trezor-firmware.git
synchronizováno 2025-07-07 15:18:08 +00:00
fix(core): don't send button requests when unlocking because BLE pairing is in progress
[no changelog]
Tento commit je obsažen v:
rodič
46a517fa2e
revize
5a1bc2db85
@ -319,7 +319,9 @@ def lock_device_if_unlocked() -> None:
|
||||
lock_device(interrupt_workflow=workflow.autolock_interrupts_workflow)
|
||||
|
||||
|
||||
async def unlock_device(ctx: wire.GenericContext = wire.DUMMY_CONTEXT) -> None:
|
||||
async def unlock_device(
|
||||
ctx: wire.GenericContext = wire.DUMMY_CONTEXT, skip_button_request: bool = False
|
||||
) -> None:
|
||||
"""Ensure the device is in unlocked state.
|
||||
|
||||
If the storage is locked, attempt to unlock it. Reset the homescreen and the wire
|
||||
@ -329,7 +331,7 @@ async def unlock_device(ctx: wire.GenericContext = wire.DUMMY_CONTEXT) -> None:
|
||||
|
||||
if not config.is_unlocked():
|
||||
# verify_user_pin will raise if the PIN was invalid
|
||||
await verify_user_pin(ctx)
|
||||
await verify_user_pin(ctx, skip_button_request=skip_button_request)
|
||||
|
||||
set_homescreen()
|
||||
|
||||
|
@ -98,6 +98,7 @@ async def verify_user_pin(
|
||||
allow_cancel: bool = True,
|
||||
retry: bool = True,
|
||||
cache_time_ms: int = 0,
|
||||
skip_button_request: bool = False,
|
||||
) -> None:
|
||||
# _get_last_unlock_time
|
||||
last_unlock = int.from_bytes(
|
||||
@ -116,7 +117,11 @@ async def verify_user_pin(
|
||||
from trezor.ui.layouts import request_pin_on_device
|
||||
|
||||
pin = await request_pin_on_device(
|
||||
ctx, prompt, config.get_pin_rem(), allow_cancel
|
||||
ctx,
|
||||
prompt,
|
||||
config.get_pin_rem(),
|
||||
allow_cancel,
|
||||
skip_button_request=skip_button_request,
|
||||
)
|
||||
config.ensure_not_wipe_code(pin)
|
||||
else:
|
||||
@ -131,7 +136,12 @@ async def verify_user_pin(
|
||||
|
||||
while retry:
|
||||
pin = await request_pin_on_device( # type: ignore ["request_pin_on_device" is possibly unbound]
|
||||
ctx, "Enter PIN", config.get_pin_rem(), allow_cancel, wrong_pin=True
|
||||
ctx,
|
||||
"Enter PIN",
|
||||
config.get_pin_rem(),
|
||||
allow_cancel,
|
||||
wrong_pin=True,
|
||||
skip_button_request=skip_button_request,
|
||||
)
|
||||
if config.unlock(pin, salt):
|
||||
_set_last_unlock_time()
|
||||
|
@ -59,7 +59,7 @@ def int_find_handler(
|
||||
return None
|
||||
|
||||
async def wrapper(ctx: wire.Context, msg: wire.Msg) -> protobuf.MessageType:
|
||||
await unlock_device(ctx)
|
||||
await unlock_device(ctx, True)
|
||||
return await orig_handler(ctx, msg)
|
||||
|
||||
return wrapper
|
||||
|
Načítá se…
Odkázat v novém úkolu
Zablokovat Uživatele