mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-08-02 11:58:32 +00:00
feat(core): delay passphrase on host prompt
This commit is contained in:
parent
c16d375abc
commit
8d1eb777fc
1
core/.changelog.d/5114.fixed
Normal file
1
core/.changelog.d/5114.fixed
Normal file
@ -0,0 +1 @@
|
|||||||
|
Delay "enter passphrase on host" dialog.
|
@ -30,6 +30,7 @@ async def get() -> str:
|
|||||||
|
|
||||||
|
|
||||||
async def _request_on_host() -> str:
|
async def _request_on_host() -> str:
|
||||||
|
from trezor import loop, workflow
|
||||||
from trezor.messages import PassphraseAck, PassphraseRequest
|
from trezor.messages import PassphraseAck, PassphraseRequest
|
||||||
from trezor.ui.layouts import (
|
from trezor.ui.layouts import (
|
||||||
confirm_hidden_passphrase_from_host,
|
confirm_hidden_passphrase_from_host,
|
||||||
@ -38,11 +39,18 @@ async def _request_on_host() -> str:
|
|||||||
)
|
)
|
||||||
from trezor.wire.context import call
|
from trezor.wire.context import call
|
||||||
|
|
||||||
request_passphrase_on_host()
|
async def _delay_request_passphrase_on_host() -> None:
|
||||||
|
await loop.sleep(100)
|
||||||
|
return request_passphrase_on_host()
|
||||||
|
|
||||||
request = PassphraseRequest()
|
on_host = workflow.spawn(_delay_request_passphrase_on_host())
|
||||||
ack = await call(request, PassphraseAck)
|
try:
|
||||||
passphrase = ack.passphrase # local_cache_attribute
|
request = PassphraseRequest()
|
||||||
|
ack = await call(request, PassphraseAck)
|
||||||
|
passphrase = ack.passphrase # local_cache_attribute
|
||||||
|
finally:
|
||||||
|
# make sure on-host passphrase prompt closed after receiving an ack
|
||||||
|
on_host.close()
|
||||||
|
|
||||||
if ack.on_device:
|
if ack.on_device:
|
||||||
from trezor.ui.layouts import request_passphrase_on_device
|
from trezor.ui.layouts import request_passphrase_on_device
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user