mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-24 23:38:09 +00:00
apps.wallet: implement GetEntropy
This commit is contained in:
parent
11154c1ab5
commit
5e410a3b59
@ -1,7 +1,9 @@
|
||||
from trezor.wire import register, protobuf_workflow
|
||||
from trezor.utils import unimport
|
||||
from trezor.messages.wire_types import \
|
||||
GetPublicKey, GetAddress, SignTx, EstimateTxSize, \
|
||||
GetPublicKey, GetAddress, \
|
||||
GetEntropy, \
|
||||
SignTx, EstimateTxSize, \
|
||||
SignMessage, VerifyMessage, \
|
||||
SignIdentity, \
|
||||
CipherKeyValue
|
||||
@ -19,6 +21,12 @@ def dispatch_GetAddress(*args, **kwargs):
|
||||
return layout_get_address(*args, **kwargs)
|
||||
|
||||
|
||||
@unimport
|
||||
def dispatch_GetEntropy(*args, **kwargs):
|
||||
from .get_entropy import layout_get_entropy
|
||||
return layout_get_entropy(*args, **kwargs)
|
||||
|
||||
|
||||
@unimport
|
||||
def dispatch_SignTx(*args, **kwargs):
|
||||
from .sign_tx import sign_tx
|
||||
@ -61,6 +69,7 @@ def dispatch_CipherKeyValue(*args, **kwargs):
|
||||
def boot():
|
||||
register(GetPublicKey, protobuf_workflow, dispatch_GetPublicKey)
|
||||
register(GetAddress, protobuf_workflow, dispatch_GetAddress)
|
||||
register(GetEntropy, protobuf_workflow, dispatch_GetEntropy)
|
||||
register(SignTx, protobuf_workflow, dispatch_SignTx)
|
||||
register(EstimateTxSize, protobuf_workflow, dispatch_EstimateTxSize)
|
||||
register(SignMessage, protobuf_workflow, dispatch_SignMessage)
|
||||
|
27
src/apps/wallet/get_entropy.py
Normal file
27
src/apps/wallet/get_entropy.py
Normal file
@ -0,0 +1,27 @@
|
||||
from trezor import wire, ui
|
||||
from trezor.utils import unimport
|
||||
|
||||
|
||||
@unimport
|
||||
async def layout_get_entropy(session_id, msg):
|
||||
from trezor.messages.Entropy import Entropy
|
||||
from trezor.crypto import random
|
||||
|
||||
|
||||
l = min(msg.size, 1024)
|
||||
|
||||
await _show_entropy(session_id)
|
||||
|
||||
return Entropy(entropy=random.bytes(l))
|
||||
|
||||
|
||||
async def _show_entropy(session_id):
|
||||
from trezor.messages.ButtonRequestType import ProtectCall
|
||||
from trezor.ui.text import Text
|
||||
from trezor.ui.container import Container
|
||||
from ..common.confirm import require_confirm
|
||||
|
||||
content = Container(
|
||||
Text('Confirm entropy', ui.ICON_RESET, ui.MONO, 'Do you really want to send entropy?'))
|
||||
|
||||
await require_confirm(session_id, content, code=ProtectCall)
|
@ -31,7 +31,6 @@ not passing:
|
||||
test_msg_changepin.py \
|
||||
test_msg_ethereum_signtx.py
|
||||
test_msg_getaddress_show.py
|
||||
test_msg_getentropy.py
|
||||
test_msg_loaddevice.py
|
||||
test_msg_ping.py
|
||||
test_msg_resetdevice.py
|
||||
@ -50,6 +49,7 @@ for i in \
|
||||
test_msg_estimatetxsize.py \
|
||||
test_msg_ethereum_getaddress.py \
|
||||
test_msg_getaddress.py \
|
||||
test_msg_getentropy.py
|
||||
test_msg_getpublickey.py \
|
||||
test_msg_signidentity.py \
|
||||
test_msg_signmessage.py \
|
||||
|
Loading…
Reference in New Issue
Block a user