mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-02-07 05:02:38 +00:00
chore: add DebugLinkPairingInfo
[no changelog]
This commit is contained in:
parent
99d8ca71b3
commit
7bdaa2dfad
@ -85,7 +85,7 @@ message DebugLinkRecordScreen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request: Computer asks for device state
|
* Request: Host asks for device state
|
||||||
* @start
|
* @start
|
||||||
* @next DebugLinkState
|
* @next DebugLinkState
|
||||||
*/
|
*/
|
||||||
@ -110,8 +110,6 @@ message DebugLinkGetState {
|
|||||||
// trezor-core only - wait until current layout changes
|
// trezor-core only - wait until current layout changes
|
||||||
// changed in 2.6.4: multiple wait types instead of true/false.
|
// changed in 2.6.4: multiple wait types instead of true/false.
|
||||||
optional DebugWaitType wait_layout = 3 [default=IMMEDIATE];
|
optional DebugWaitType wait_layout = 3 [default=IMMEDIATE];
|
||||||
// THP only - it is used to get information from specified channel
|
|
||||||
optional bytes thp_channel_id=4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -132,9 +130,29 @@ message DebugLinkState {
|
|||||||
optional uint32 reset_word_pos = 11; // index of mnemonic word the device is expecting during ResetDevice workflow
|
optional uint32 reset_word_pos = 11; // index of mnemonic word the device is expecting during ResetDevice workflow
|
||||||
optional management.BackupType mnemonic_type = 12; // current mnemonic type (BIP-39/SLIP-39)
|
optional management.BackupType mnemonic_type = 12; // current mnemonic type (BIP-39/SLIP-39)
|
||||||
repeated string tokens = 13; // current layout represented as a list of string tokens
|
repeated string tokens = 13; // current layout represented as a list of string tokens
|
||||||
optional uint32 thp_pairing_code_entry_code = 14;
|
}
|
||||||
optional bytes thp_pairing_code_qr_code = 15;
|
|
||||||
optional bytes thp_pairing_code_nfc = 16;
|
/**
|
||||||
|
* Request: Host asks for device pairing info
|
||||||
|
* @start
|
||||||
|
* @next DebugLinkPairingInfo
|
||||||
|
*/
|
||||||
|
message DebugLinkGetPairingInfo {
|
||||||
|
optional bytes channel_id = 1; // ID of the THP channel to get pairing info from
|
||||||
|
optional bytes handshake_hash = 2; // handshake hash of the THP channel
|
||||||
|
optional bytes nfc_secret_host = 3; // host's NFC secret (In case of NFC pairing)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Response: Device pairing info
|
||||||
|
* @end
|
||||||
|
*/
|
||||||
|
message DebugLinkPairingInfo {
|
||||||
|
optional bytes channel_id = 1; // ID of the THP channel the pairing info is from
|
||||||
|
optional bytes handshake_hash = 2; // handshake hash of the THP channel
|
||||||
|
optional uint32 code_entry_code = 3; // CodeEntry pairing code
|
||||||
|
optional bytes code_qr_code = 4; // QrCode pairing code
|
||||||
|
optional bytes nfc_secret_trezor = 5; // NFC secret used in NFC pairing
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -134,6 +134,8 @@ enum MessageType {
|
|||||||
MessageType_DebugLinkWatchLayout = 9006 [(bitcoin_only) = true, (wire_debug_in) = true];
|
MessageType_DebugLinkWatchLayout = 9006 [(bitcoin_only) = true, (wire_debug_in) = true];
|
||||||
MessageType_DebugLinkResetDebugEvents = 9007 [(bitcoin_only) = true, (wire_debug_in) = true];
|
MessageType_DebugLinkResetDebugEvents = 9007 [(bitcoin_only) = true, (wire_debug_in) = true];
|
||||||
MessageType_DebugLinkOptigaSetSecMax = 9008 [(bitcoin_only) = true, (wire_debug_in) = true];
|
MessageType_DebugLinkOptigaSetSecMax = 9008 [(bitcoin_only) = true, (wire_debug_in) = true];
|
||||||
|
MessageType_DebugLinkGetPairingInfo = 9009 [(bitcoin_only) = true, (wire_debug_in) = true];
|
||||||
|
MessageType_DebugLinkPairingInfo = 9010 [(bitcoin_only) = true, (wire_debug_out) = true];
|
||||||
|
|
||||||
// Ethereum
|
// Ethereum
|
||||||
MessageType_EthereumGetPublicKey = 450 [(wire_in) = true];
|
MessageType_EthereumGetPublicKey = 450 [(wire_in) = true];
|
||||||
|
@ -24,8 +24,10 @@ if __debug__:
|
|||||||
from trezor.messages import (
|
from trezor.messages import (
|
||||||
DebugLinkDecision,
|
DebugLinkDecision,
|
||||||
DebugLinkEraseSdCard,
|
DebugLinkEraseSdCard,
|
||||||
|
DebugLinkGetPairingInfo,
|
||||||
DebugLinkGetState,
|
DebugLinkGetState,
|
||||||
DebugLinkOptigaSetSecMax,
|
DebugLinkOptigaSetSecMax,
|
||||||
|
DebugLinkPairingInfo,
|
||||||
DebugLinkRecordScreen,
|
DebugLinkRecordScreen,
|
||||||
DebugLinkReseedRandom,
|
DebugLinkReseedRandom,
|
||||||
DebugLinkState,
|
DebugLinkState,
|
||||||
@ -249,11 +251,7 @@ if __debug__:
|
|||||||
# If no exception was raised, the layout did not shut down. That means that it
|
# If no exception was raised, the layout did not shut down. That means that it
|
||||||
# just updated itself. The update is already live for the caller to retrieve.
|
# just updated itself. The update is already live for the caller to retrieve.
|
||||||
|
|
||||||
def _state(
|
def _state() -> DebugLinkState:
|
||||||
thp_pairing_code_entry_code: int | None = None,
|
|
||||||
thp_pairing_code_qr_code: bytes | None = None,
|
|
||||||
thp_pairing_code_nfc: bytes | None = None,
|
|
||||||
) -> DebugLinkState:
|
|
||||||
from trezor.messages import DebugLinkState
|
from trezor.messages import DebugLinkState
|
||||||
|
|
||||||
from apps.common import mnemonic, passphrase
|
from apps.common import mnemonic, passphrase
|
||||||
@ -272,25 +270,21 @@ if __debug__:
|
|||||||
passphrase_protection=passphrase.is_enabled(),
|
passphrase_protection=passphrase.is_enabled(),
|
||||||
reset_entropy=storage.reset_internal_entropy,
|
reset_entropy=storage.reset_internal_entropy,
|
||||||
tokens=tokens,
|
tokens=tokens,
|
||||||
thp_pairing_code_entry_code=thp_pairing_code_entry_code,
|
|
||||||
thp_pairing_code_qr_code=thp_pairing_code_qr_code,
|
|
||||||
thp_pairing_code_nfc=thp_pairing_code_nfc,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
async def dispatch_DebugLinkGetState(
|
async def dispatch_DebugLinkGetPairingInfo(
|
||||||
msg: DebugLinkGetState,
|
msg: DebugLinkGetPairingInfo,
|
||||||
) -> DebugLinkState | None:
|
) -> DebugLinkPairingInfo | None:
|
||||||
|
if not utils.USE_THP:
|
||||||
thp_pairing_code_entry_code: int | None = None
|
raise RuntimeError("Trezor does not support THP")
|
||||||
thp_pairing_code_qr_code: bytes | None = None
|
if msg.channel_id is None:
|
||||||
thp_pairing_code_nfc: bytes | None = None
|
raise RuntimeError("Invalid DebugLinkGetPairingInfo message")
|
||||||
if utils.USE_THP and msg.thp_channel_id is not None:
|
|
||||||
channel_id = int.from_bytes(msg.thp_channel_id, "big")
|
|
||||||
|
|
||||||
from trezor.wire.thp.channel import Channel
|
from trezor.wire.thp.channel import Channel
|
||||||
from trezor.wire.thp.pairing_context import PairingContext
|
from trezor.wire.thp.pairing_context import PairingContext
|
||||||
from trezor.wire.thp.thp_main import _CHANNELS
|
from trezor.wire.thp.thp_main import _CHANNELS
|
||||||
|
|
||||||
|
channel_id = int.from_bytes(msg.channel_id, "big")
|
||||||
channel: Channel | None = None
|
channel: Channel | None = None
|
||||||
ctx: PairingContext | None = None
|
ctx: PairingContext | None = None
|
||||||
try:
|
try:
|
||||||
@ -298,20 +292,28 @@ if __debug__:
|
|||||||
ctx = channel.connection_context
|
ctx = channel.connection_context
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
if ctx is not None and isinstance(ctx, PairingContext):
|
|
||||||
thp_pairing_code_entry_code = ctx.display_data.code_code_entry
|
|
||||||
thp_pairing_code_qr_code = ctx.display_data.code_qr_code
|
|
||||||
thp_pairing_code_nfc = ctx.display_data.code_nfc
|
|
||||||
# if msg.host_nfc_secret is not None:
|
|
||||||
# ctx.host_nfc_secret = msg.host_nfc_secret
|
|
||||||
|
|
||||||
if msg.wait_layout == DebugWaitType.IMMEDIATE:
|
if ctx is None or not isinstance(ctx, PairingContext):
|
||||||
return _state(
|
raise RuntimeError("Trezor is not in pairing mode")
|
||||||
thp_pairing_code_entry_code,
|
|
||||||
thp_pairing_code_qr_code,
|
ctx.nfc_secret_host = msg.nfc_secret_host
|
||||||
thp_pairing_code_nfc,
|
ctx.handshake_hash_host = msg.handshake_hash
|
||||||
|
from trezor.messages import DebugLinkPairingInfo
|
||||||
|
|
||||||
|
return DebugLinkPairingInfo(
|
||||||
|
channel_id=ctx.channel_id,
|
||||||
|
handshake_hash=ctx.channel_ctx.get_handshake_hash(),
|
||||||
|
code_entry_code=ctx.display_data.code_code_entry,
|
||||||
|
code_qr_code=ctx.display_data.code_qr_code,
|
||||||
|
nfc_secret_trezor=ctx.nfc_secret,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def dispatch_DebugLinkGetState(
|
||||||
|
msg: DebugLinkGetState,
|
||||||
|
) -> DebugLinkState | None:
|
||||||
|
|
||||||
|
if msg.wait_layout == DebugWaitType.IMMEDIATE:
|
||||||
|
return _state()
|
||||||
assert DEBUG_CONTEXT is not None
|
assert DEBUG_CONTEXT is not None
|
||||||
if msg.wait_layout == DebugWaitType.NEXT_LAYOUT:
|
if msg.wait_layout == DebugWaitType.NEXT_LAYOUT:
|
||||||
layout_change_box.clear()
|
layout_change_box.clear()
|
||||||
@ -321,11 +323,7 @@ if __debug__:
|
|||||||
if not layout_is_ready():
|
if not layout_is_ready():
|
||||||
return await return_layout_change(DEBUG_CONTEXT, detect_deadlock=True)
|
return await return_layout_change(DEBUG_CONTEXT, detect_deadlock=True)
|
||||||
else:
|
else:
|
||||||
return _state(
|
return _state()
|
||||||
thp_pairing_code_entry_code,
|
|
||||||
thp_pairing_code_qr_code,
|
|
||||||
thp_pairing_code_nfc,
|
|
||||||
)
|
|
||||||
|
|
||||||
async def dispatch_DebugLinkRecordScreen(msg: DebugLinkRecordScreen) -> Success:
|
async def dispatch_DebugLinkRecordScreen(msg: DebugLinkRecordScreen) -> Success:
|
||||||
if msg.target_directory:
|
if msg.target_directory:
|
||||||
@ -466,6 +464,7 @@ if __debug__:
|
|||||||
WORKFLOW_HANDLERS: dict[int, Handler] = {
|
WORKFLOW_HANDLERS: dict[int, Handler] = {
|
||||||
MessageType.DebugLinkDecision: dispatch_DebugLinkDecision,
|
MessageType.DebugLinkDecision: dispatch_DebugLinkDecision,
|
||||||
MessageType.DebugLinkGetState: dispatch_DebugLinkGetState,
|
MessageType.DebugLinkGetState: dispatch_DebugLinkGetState,
|
||||||
|
MessageType.DebugLinkGetPairingInfo: dispatch_DebugLinkGetPairingInfo,
|
||||||
MessageType.DebugLinkReseedRandom: dispatch_DebugLinkReseedRandom,
|
MessageType.DebugLinkReseedRandom: dispatch_DebugLinkReseedRandom,
|
||||||
MessageType.DebugLinkRecordScreen: dispatch_DebugLinkRecordScreen,
|
MessageType.DebugLinkRecordScreen: dispatch_DebugLinkRecordScreen,
|
||||||
MessageType.DebugLinkEraseSdCard: dispatch_DebugLinkEraseSdCard,
|
MessageType.DebugLinkEraseSdCard: dispatch_DebugLinkEraseSdCard,
|
||||||
|
@ -310,7 +310,7 @@ async def _handle_qr_code_tag(
|
|||||||
hexlify(ctx.display_data.code_qr_code).decode(),
|
hexlify(ctx.display_data.code_qr_code).decode(),
|
||||||
) # TODO remove after testing
|
) # TODO remove after testing
|
||||||
print(
|
print(
|
||||||
"expected secret:", hexlify(ctx.qr_code_secret).decode()
|
"expected secret:", hexlify(ctx.qr_code_secret or b"").decode()
|
||||||
) # TODO remove after testing
|
) # TODO remove after testing
|
||||||
raise ThpError("Unexpected QR Code Tag")
|
raise ThpError("Unexpected QR Code Tag")
|
||||||
|
|
||||||
@ -329,6 +329,7 @@ async def _handle_nfc_tag(
|
|||||||
assert isinstance(message, ThpNfcTagHost)
|
assert isinstance(message, ThpNfcTagHost)
|
||||||
sha_ctx = sha256(ThpPairingMethod.NFC.to_bytes(1, "big"))
|
sha_ctx = sha256(ThpPairingMethod.NFC.to_bytes(1, "big"))
|
||||||
sha_ctx.update(ctx.channel_ctx.get_handshake_hash())
|
sha_ctx.update(ctx.channel_ctx.get_handshake_hash())
|
||||||
|
assert ctx.nfc_secret is not None
|
||||||
sha_ctx.update(ctx.nfc_secret)
|
sha_ctx.update(ctx.nfc_secret)
|
||||||
expected_tag = sha_ctx.digest()
|
expected_tag = sha_ctx.digest()
|
||||||
if expected_tag != message.tag:
|
if expected_tag != message.tag:
|
||||||
|
2
core/src/trezor/enums/MessageType.py
generated
2
core/src/trezor/enums/MessageType.py
generated
@ -97,6 +97,8 @@ DebugLinkEraseSdCard = 9005
|
|||||||
DebugLinkWatchLayout = 9006
|
DebugLinkWatchLayout = 9006
|
||||||
DebugLinkResetDebugEvents = 9007
|
DebugLinkResetDebugEvents = 9007
|
||||||
DebugLinkOptigaSetSecMax = 9008
|
DebugLinkOptigaSetSecMax = 9008
|
||||||
|
DebugLinkGetPairingInfo = 9009
|
||||||
|
DebugLinkPairingInfo = 9010
|
||||||
BenchmarkListNames = 9100
|
BenchmarkListNames = 9100
|
||||||
BenchmarkNames = 9101
|
BenchmarkNames = 9101
|
||||||
BenchmarkRun = 9102
|
BenchmarkRun = 9102
|
||||||
|
2
core/src/trezor/enums/__init__.py
generated
2
core/src/trezor/enums/__init__.py
generated
@ -477,6 +477,8 @@ if TYPE_CHECKING:
|
|||||||
DebugLinkWatchLayout = 9006
|
DebugLinkWatchLayout = 9006
|
||||||
DebugLinkResetDebugEvents = 9007
|
DebugLinkResetDebugEvents = 9007
|
||||||
DebugLinkOptigaSetSecMax = 9008
|
DebugLinkOptigaSetSecMax = 9008
|
||||||
|
DebugLinkGetPairingInfo = 9009
|
||||||
|
DebugLinkPairingInfo = 9010
|
||||||
EthereumGetPublicKey = 450
|
EthereumGetPublicKey = 450
|
||||||
EthereumPublicKey = 451
|
EthereumPublicKey = 451
|
||||||
EthereumGetAddress = 56
|
EthereumGetAddress = 56
|
||||||
|
48
core/src/trezor/messages.py
generated
48
core/src/trezor/messages.py
generated
@ -2900,13 +2900,11 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
class DebugLinkGetState(protobuf.MessageType):
|
class DebugLinkGetState(protobuf.MessageType):
|
||||||
wait_layout: "DebugWaitType"
|
wait_layout: "DebugWaitType"
|
||||||
thp_channel_id: "bytes | None"
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
*,
|
*,
|
||||||
wait_layout: "DebugWaitType | None" = None,
|
wait_layout: "DebugWaitType | None" = None,
|
||||||
thp_channel_id: "bytes | None" = None,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -2928,9 +2926,6 @@ if TYPE_CHECKING:
|
|||||||
reset_word_pos: "int | None"
|
reset_word_pos: "int | None"
|
||||||
mnemonic_type: "BackupType | None"
|
mnemonic_type: "BackupType | None"
|
||||||
tokens: "list[str]"
|
tokens: "list[str]"
|
||||||
thp_pairing_code_entry_code: "int | None"
|
|
||||||
thp_pairing_code_qr_code: "bytes | None"
|
|
||||||
thp_pairing_code_nfc: "bytes | None"
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@ -2948,9 +2943,6 @@ if TYPE_CHECKING:
|
|||||||
recovery_word_pos: "int | None" = None,
|
recovery_word_pos: "int | None" = None,
|
||||||
reset_word_pos: "int | None" = None,
|
reset_word_pos: "int | None" = None,
|
||||||
mnemonic_type: "BackupType | None" = None,
|
mnemonic_type: "BackupType | None" = None,
|
||||||
thp_pairing_code_entry_code: "int | None" = None,
|
|
||||||
thp_pairing_code_qr_code: "bytes | None" = None,
|
|
||||||
thp_pairing_code_nfc: "bytes | None" = None,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -2958,6 +2950,46 @@ if TYPE_CHECKING:
|
|||||||
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkState"]:
|
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkState"]:
|
||||||
return isinstance(msg, cls)
|
return isinstance(msg, cls)
|
||||||
|
|
||||||
|
class DebugLinkGetPairingInfo(protobuf.MessageType):
|
||||||
|
channel_id: "bytes | None"
|
||||||
|
handshake_hash: "bytes | None"
|
||||||
|
nfc_secret_host: "bytes | None"
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
channel_id: "bytes | None" = None,
|
||||||
|
handshake_hash: "bytes | None" = None,
|
||||||
|
nfc_secret_host: "bytes | None" = None,
|
||||||
|
) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkGetPairingInfo"]:
|
||||||
|
return isinstance(msg, cls)
|
||||||
|
|
||||||
|
class DebugLinkPairingInfo(protobuf.MessageType):
|
||||||
|
channel_id: "bytes | None"
|
||||||
|
handshake_hash: "bytes | None"
|
||||||
|
code_entry_code: "int | None"
|
||||||
|
code_qr_code: "bytes | None"
|
||||||
|
nfc_secret_trezor: "bytes | None"
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
channel_id: "bytes | None" = None,
|
||||||
|
handshake_hash: "bytes | None" = None,
|
||||||
|
code_entry_code: "int | None" = None,
|
||||||
|
code_qr_code: "bytes | None" = None,
|
||||||
|
nfc_secret_trezor: "bytes | None" = None,
|
||||||
|
) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkPairingInfo"]:
|
||||||
|
return isinstance(msg, cls)
|
||||||
|
|
||||||
class DebugLinkStop(protobuf.MessageType):
|
class DebugLinkStop(protobuf.MessageType):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -80,11 +80,16 @@ class PairingContext(Context):
|
|||||||
super().__init__(channel_ctx.iface, channel_ctx.channel_id)
|
super().__init__(channel_ctx.iface, channel_ctx.channel_id)
|
||||||
self.channel_ctx: Channel = channel_ctx
|
self.channel_ctx: Channel = channel_ctx
|
||||||
self.incoming_message = loop.mailbox()
|
self.incoming_message = loop.mailbox()
|
||||||
self.nfc_secret: bytes
|
self.nfc_secret: bytes | None = None
|
||||||
self.qr_code_secret: bytes
|
self.qr_code_secret: bytes | None = None
|
||||||
self.code_entry_secret: bytes | None = None
|
self.code_entry_secret: bytes | None = None
|
||||||
|
|
||||||
self.selected_method: ThpPairingMethod
|
self.selected_method: ThpPairingMethod
|
||||||
|
|
||||||
|
# The 2 following attributes are important for NFC pairing
|
||||||
|
self.nfc_secret_host: bytes | None = None
|
||||||
|
self.handshake_hash_host: bytes | None = None
|
||||||
|
|
||||||
self.display_data: PairingDisplayData = PairingDisplayData()
|
self.display_data: PairingDisplayData = PairingDisplayData()
|
||||||
self.cpace: Cpace
|
self.cpace: Cpace
|
||||||
self.host_name: str
|
self.host_name: str
|
||||||
|
@ -3,14 +3,14 @@ Q := @
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
SKIPPED_MESSAGES := Binance Cardano DebugMonero Eos Monero Ontology Ripple SdProtect Tezos WebAuthn \
|
SKIPPED_MESSAGES := Binance Cardano DebugMonero Eos Monero Ontology Ripple SdProtect Tezos WebAuthn \
|
||||||
DebugLinkRecordScreen DebugLinkEraseSdCard DebugLinkWatchLayout \
|
DebugLinkRecordScreen DebugLinkEraseSdCard DebugLinkWatchLayout DebugLinkLayout \
|
||||||
DebugLinkLayout DebugLinkResetDebugEvents GetNonce \
|
DebugLinkResetDebugEvents DebugLinkGetPairingInfo DebugLinkPairingInfo GetNonce \
|
||||||
TxAckInput TxAckOutput TxAckPrev TxAckPaymentRequest \
|
TxAckInput TxAckOutput TxAckPrev TxAckPaymentRequest \
|
||||||
EthereumSignTypedData EthereumTypedDataStructRequest EthereumTypedDataStructAck \
|
EthereumSignTypedData EthereumTypedDataStructRequest EthereumTypedDataStructAck \
|
||||||
EthereumTypedDataValueRequest EthereumTypedDataValueAck ShowDeviceTutorial \
|
EthereumTypedDataValueRequest EthereumTypedDataValueAck ShowDeviceTutorial \
|
||||||
UnlockBootloader AuthenticateDevice AuthenticityProof \
|
UnlockBootloader AuthenticateDevice AuthenticityProof \
|
||||||
Solana StellarClaimClaimableBalanceOp \
|
Solana StellarClaimClaimableBalanceOp \
|
||||||
ChangeLanguage TranslationDataRequest TranslationDataAck Thp \
|
ChangeLanguage TranslationDataRequest TranslationDataAck Thp\
|
||||||
SetBrightness DebugLinkOptigaSetSecMax EntropyCheckReady EntropyCheckContinue \
|
SetBrightness DebugLinkOptigaSetSecMax EntropyCheckReady EntropyCheckContinue \
|
||||||
BenchmarkListNames BenchmarkRun BenchmarkNames BenchmarkResult
|
BenchmarkListNames BenchmarkRun BenchmarkNames BenchmarkResult
|
||||||
|
|
||||||
|
@ -2,8 +2,6 @@ DebugLinkDecision.input max_size:33
|
|||||||
DebugLinkDecision.x type:FT_IGNORE
|
DebugLinkDecision.x type:FT_IGNORE
|
||||||
DebugLinkDecision.y type:FT_IGNORE
|
DebugLinkDecision.y type:FT_IGNORE
|
||||||
|
|
||||||
DebugLinkGetState.thp_channel_id type:FT_IGNORE
|
|
||||||
|
|
||||||
DebugLinkState.layout max_size:1024
|
DebugLinkState.layout max_size:1024
|
||||||
DebugLinkState.pin max_size:51
|
DebugLinkState.pin max_size:51
|
||||||
DebugLinkState.matrix max_size:10
|
DebugLinkState.matrix max_size:10
|
||||||
@ -12,9 +10,6 @@ DebugLinkState.reset_word max_size:12
|
|||||||
DebugLinkState.reset_entropy max_size:128
|
DebugLinkState.reset_entropy max_size:128
|
||||||
DebugLinkState.recovery_fake_word max_size:12
|
DebugLinkState.recovery_fake_word max_size:12
|
||||||
DebugLinkState.tokens type:FT_IGNORE
|
DebugLinkState.tokens type:FT_IGNORE
|
||||||
DebugLinkState.thp_pairing_code_entry_code type:FT_IGNORE
|
|
||||||
DebugLinkState.thp_pairing_code_qr_code type:FT_IGNORE
|
|
||||||
DebugLinkState.thp_pairing_code_nfc type:FT_IGNORE
|
|
||||||
|
|
||||||
DebugLinkLog.bucket max_size:33
|
DebugLinkLog.bucket max_size:33
|
||||||
DebugLinkLog.text max_size:256
|
DebugLinkLog.text max_size:256
|
||||||
|
@ -539,7 +539,6 @@ class DebugLink:
|
|||||||
def state(
|
def state(
|
||||||
self,
|
self,
|
||||||
wait_type: DebugWaitType | None = None,
|
wait_type: DebugWaitType | None = None,
|
||||||
thp_channel_id: bytes | None = None,
|
|
||||||
) -> messages.DebugLinkState:
|
) -> messages.DebugLinkState:
|
||||||
if wait_type is None:
|
if wait_type is None:
|
||||||
wait_type = (
|
wait_type = (
|
||||||
@ -547,18 +546,32 @@ class DebugLink:
|
|||||||
if self.has_global_layout
|
if self.has_global_layout
|
||||||
else DebugWaitType.IMMEDIATE
|
else DebugWaitType.IMMEDIATE
|
||||||
)
|
)
|
||||||
result = self._call(
|
result = self._call(messages.DebugLinkGetState(wait_layout=wait_type))
|
||||||
messages.DebugLinkGetState(
|
|
||||||
wait_layout=wait_type,
|
|
||||||
thp_channel_id=thp_channel_id,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
while not isinstance(result, (messages.Failure, messages.DebugLinkState)):
|
while not isinstance(result, (messages.Failure, messages.DebugLinkState)):
|
||||||
result = self._read()
|
result = self._read()
|
||||||
if isinstance(result, messages.Failure):
|
if isinstance(result, messages.Failure):
|
||||||
raise TrezorFailure(result)
|
raise TrezorFailure(result)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def pairing_info(
|
||||||
|
self,
|
||||||
|
thp_channel_id: bytes | None = None,
|
||||||
|
handshake_hash: bytes | None = None,
|
||||||
|
nfc_secret_host: bytes | None = None,
|
||||||
|
) -> messages.DebugLinkPairingInfo:
|
||||||
|
result = self._call(
|
||||||
|
messages.DebugLinkGetPairingInfo(
|
||||||
|
channel_id=thp_channel_id,
|
||||||
|
handshake_hash=handshake_hash,
|
||||||
|
nfc_secret_host=nfc_secret_host,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
while not isinstance(result, (messages.Failure, messages.DebugLinkPairingInfo)):
|
||||||
|
result = self._read()
|
||||||
|
if isinstance(result, messages.Failure):
|
||||||
|
raise TrezorFailure(result)
|
||||||
|
return result
|
||||||
|
|
||||||
def read_layout(self) -> LayoutContent:
|
def read_layout(self) -> LayoutContent:
|
||||||
return LayoutContent(self.state().tokens)
|
return LayoutContent(self.state().tokens)
|
||||||
|
|
||||||
|
60
python/src/trezorlib/messages.py
generated
60
python/src/trezorlib/messages.py
generated
@ -532,6 +532,8 @@ class MessageType(IntEnum):
|
|||||||
DebugLinkWatchLayout = 9006
|
DebugLinkWatchLayout = 9006
|
||||||
DebugLinkResetDebugEvents = 9007
|
DebugLinkResetDebugEvents = 9007
|
||||||
DebugLinkOptigaSetSecMax = 9008
|
DebugLinkOptigaSetSecMax = 9008
|
||||||
|
DebugLinkGetPairingInfo = 9009
|
||||||
|
DebugLinkPairingInfo = 9010
|
||||||
EthereumGetPublicKey = 450
|
EthereumGetPublicKey = 450
|
||||||
EthereumPublicKey = 451
|
EthereumPublicKey = 451
|
||||||
EthereumGetAddress = 56
|
EthereumGetAddress = 56
|
||||||
@ -4168,7 +4170,6 @@ class DebugLinkGetState(protobuf.MessageType):
|
|||||||
1: protobuf.Field("wait_word_list", "bool", repeated=False, required=False, default=None),
|
1: protobuf.Field("wait_word_list", "bool", repeated=False, required=False, default=None),
|
||||||
2: protobuf.Field("wait_word_pos", "bool", repeated=False, required=False, default=None),
|
2: protobuf.Field("wait_word_pos", "bool", repeated=False, required=False, default=None),
|
||||||
3: protobuf.Field("wait_layout", "DebugWaitType", repeated=False, required=False, default=DebugWaitType.IMMEDIATE),
|
3: protobuf.Field("wait_layout", "DebugWaitType", repeated=False, required=False, default=DebugWaitType.IMMEDIATE),
|
||||||
4: protobuf.Field("thp_channel_id", "bytes", repeated=False, required=False, default=None),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
@ -4177,12 +4178,10 @@ class DebugLinkGetState(protobuf.MessageType):
|
|||||||
wait_word_list: Optional["bool"] = None,
|
wait_word_list: Optional["bool"] = None,
|
||||||
wait_word_pos: Optional["bool"] = None,
|
wait_word_pos: Optional["bool"] = None,
|
||||||
wait_layout: Optional["DebugWaitType"] = DebugWaitType.IMMEDIATE,
|
wait_layout: Optional["DebugWaitType"] = DebugWaitType.IMMEDIATE,
|
||||||
thp_channel_id: Optional["bytes"] = None,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
self.wait_word_list = wait_word_list
|
self.wait_word_list = wait_word_list
|
||||||
self.wait_word_pos = wait_word_pos
|
self.wait_word_pos = wait_word_pos
|
||||||
self.wait_layout = wait_layout
|
self.wait_layout = wait_layout
|
||||||
self.thp_channel_id = thp_channel_id
|
|
||||||
|
|
||||||
|
|
||||||
class DebugLinkState(protobuf.MessageType):
|
class DebugLinkState(protobuf.MessageType):
|
||||||
@ -4201,9 +4200,6 @@ class DebugLinkState(protobuf.MessageType):
|
|||||||
11: protobuf.Field("reset_word_pos", "uint32", repeated=False, required=False, default=None),
|
11: protobuf.Field("reset_word_pos", "uint32", repeated=False, required=False, default=None),
|
||||||
12: protobuf.Field("mnemonic_type", "BackupType", repeated=False, required=False, default=None),
|
12: protobuf.Field("mnemonic_type", "BackupType", repeated=False, required=False, default=None),
|
||||||
13: protobuf.Field("tokens", "string", repeated=True, required=False, default=None),
|
13: protobuf.Field("tokens", "string", repeated=True, required=False, default=None),
|
||||||
14: protobuf.Field("thp_pairing_code_entry_code", "uint32", repeated=False, required=False, default=None),
|
|
||||||
15: protobuf.Field("thp_pairing_code_qr_code", "bytes", repeated=False, required=False, default=None),
|
|
||||||
16: protobuf.Field("thp_pairing_code_nfc", "bytes", repeated=False, required=False, default=None),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
@ -4222,9 +4218,6 @@ class DebugLinkState(protobuf.MessageType):
|
|||||||
recovery_word_pos: Optional["int"] = None,
|
recovery_word_pos: Optional["int"] = None,
|
||||||
reset_word_pos: Optional["int"] = None,
|
reset_word_pos: Optional["int"] = None,
|
||||||
mnemonic_type: Optional["BackupType"] = None,
|
mnemonic_type: Optional["BackupType"] = None,
|
||||||
thp_pairing_code_entry_code: Optional["int"] = None,
|
|
||||||
thp_pairing_code_qr_code: Optional["bytes"] = None,
|
|
||||||
thp_pairing_code_nfc: Optional["bytes"] = None,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
self.tokens: Sequence["str"] = tokens if tokens is not None else []
|
self.tokens: Sequence["str"] = tokens if tokens is not None else []
|
||||||
self.layout = layout
|
self.layout = layout
|
||||||
@ -4239,9 +4232,52 @@ class DebugLinkState(protobuf.MessageType):
|
|||||||
self.recovery_word_pos = recovery_word_pos
|
self.recovery_word_pos = recovery_word_pos
|
||||||
self.reset_word_pos = reset_word_pos
|
self.reset_word_pos = reset_word_pos
|
||||||
self.mnemonic_type = mnemonic_type
|
self.mnemonic_type = mnemonic_type
|
||||||
self.thp_pairing_code_entry_code = thp_pairing_code_entry_code
|
|
||||||
self.thp_pairing_code_qr_code = thp_pairing_code_qr_code
|
|
||||||
self.thp_pairing_code_nfc = thp_pairing_code_nfc
|
class DebugLinkGetPairingInfo(protobuf.MessageType):
|
||||||
|
MESSAGE_WIRE_TYPE = 9009
|
||||||
|
FIELDS = {
|
||||||
|
1: protobuf.Field("channel_id", "bytes", repeated=False, required=False, default=None),
|
||||||
|
2: protobuf.Field("handshake_hash", "bytes", repeated=False, required=False, default=None),
|
||||||
|
3: protobuf.Field("nfc_secret_host", "bytes", repeated=False, required=False, default=None),
|
||||||
|
}
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
channel_id: Optional["bytes"] = None,
|
||||||
|
handshake_hash: Optional["bytes"] = None,
|
||||||
|
nfc_secret_host: Optional["bytes"] = None,
|
||||||
|
) -> None:
|
||||||
|
self.channel_id = channel_id
|
||||||
|
self.handshake_hash = handshake_hash
|
||||||
|
self.nfc_secret_host = nfc_secret_host
|
||||||
|
|
||||||
|
|
||||||
|
class DebugLinkPairingInfo(protobuf.MessageType):
|
||||||
|
MESSAGE_WIRE_TYPE = 9010
|
||||||
|
FIELDS = {
|
||||||
|
1: protobuf.Field("channel_id", "bytes", repeated=False, required=False, default=None),
|
||||||
|
2: protobuf.Field("handshake_hash", "bytes", repeated=False, required=False, default=None),
|
||||||
|
3: protobuf.Field("code_entry_code", "uint32", repeated=False, required=False, default=None),
|
||||||
|
4: protobuf.Field("code_qr_code", "bytes", repeated=False, required=False, default=None),
|
||||||
|
5: protobuf.Field("nfc_secret_trezor", "bytes", repeated=False, required=False, default=None),
|
||||||
|
}
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
channel_id: Optional["bytes"] = None,
|
||||||
|
handshake_hash: Optional["bytes"] = None,
|
||||||
|
code_entry_code: Optional["int"] = None,
|
||||||
|
code_qr_code: Optional["bytes"] = None,
|
||||||
|
nfc_secret_trezor: Optional["bytes"] = None,
|
||||||
|
) -> None:
|
||||||
|
self.channel_id = channel_id
|
||||||
|
self.handshake_hash = handshake_hash
|
||||||
|
self.code_entry_code = code_entry_code
|
||||||
|
self.code_qr_code = code_qr_code
|
||||||
|
self.nfc_secret_trezor = nfc_secret_trezor
|
||||||
|
|
||||||
|
|
||||||
class DebugLinkStop(protobuf.MessageType):
|
class DebugLinkStop(protobuf.MessageType):
|
||||||
|
2
rust/trezor-client/src/messages/generated.rs
generated
2
rust/trezor-client/src/messages/generated.rs
generated
@ -82,6 +82,8 @@ trezor_message_impl! {
|
|||||||
DebugLinkWatchLayout => MessageType_DebugLinkWatchLayout,
|
DebugLinkWatchLayout => MessageType_DebugLinkWatchLayout,
|
||||||
DebugLinkResetDebugEvents => MessageType_DebugLinkResetDebugEvents,
|
DebugLinkResetDebugEvents => MessageType_DebugLinkResetDebugEvents,
|
||||||
DebugLinkOptigaSetSecMax => MessageType_DebugLinkOptigaSetSecMax,
|
DebugLinkOptigaSetSecMax => MessageType_DebugLinkOptigaSetSecMax,
|
||||||
|
DebugLinkGetPairingInfo => MessageType_DebugLinkGetPairingInfo,
|
||||||
|
DebugLinkPairingInfo => MessageType_DebugLinkPairingInfo,
|
||||||
BenchmarkListNames => MessageType_BenchmarkListNames,
|
BenchmarkListNames => MessageType_BenchmarkListNames,
|
||||||
BenchmarkNames => MessageType_BenchmarkNames,
|
BenchmarkNames => MessageType_BenchmarkNames,
|
||||||
BenchmarkRun => MessageType_BenchmarkRun,
|
BenchmarkRun => MessageType_BenchmarkRun,
|
||||||
|
644
rust/trezor-client/src/protos/generated/messages.rs
generated
644
rust/trezor-client/src/protos/generated/messages.rs
generated
@ -226,6 +226,10 @@ pub enum MessageType {
|
|||||||
MessageType_DebugLinkResetDebugEvents = 9007,
|
MessageType_DebugLinkResetDebugEvents = 9007,
|
||||||
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkOptigaSetSecMax)
|
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkOptigaSetSecMax)
|
||||||
MessageType_DebugLinkOptigaSetSecMax = 9008,
|
MessageType_DebugLinkOptigaSetSecMax = 9008,
|
||||||
|
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkGetPairingInfo)
|
||||||
|
MessageType_DebugLinkGetPairingInfo = 9009,
|
||||||
|
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkPairingInfo)
|
||||||
|
MessageType_DebugLinkPairingInfo = 9010,
|
||||||
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_EthereumGetPublicKey)
|
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_EthereumGetPublicKey)
|
||||||
MessageType_EthereumGetPublicKey = 450,
|
MessageType_EthereumGetPublicKey = 450,
|
||||||
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_EthereumPublicKey)
|
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_EthereumPublicKey)
|
||||||
@ -632,6 +636,8 @@ impl ::protobuf::Enum for MessageType {
|
|||||||
9006 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkWatchLayout),
|
9006 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkWatchLayout),
|
||||||
9007 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkResetDebugEvents),
|
9007 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkResetDebugEvents),
|
||||||
9008 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax),
|
9008 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax),
|
||||||
|
9009 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetPairingInfo),
|
||||||
|
9010 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkPairingInfo),
|
||||||
450 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetPublicKey),
|
450 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetPublicKey),
|
||||||
451 => ::std::option::Option::Some(MessageType::MessageType_EthereumPublicKey),
|
451 => ::std::option::Option::Some(MessageType::MessageType_EthereumPublicKey),
|
||||||
56 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetAddress),
|
56 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetAddress),
|
||||||
@ -885,6 +891,8 @@ impl ::protobuf::Enum for MessageType {
|
|||||||
"MessageType_DebugLinkWatchLayout" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkWatchLayout),
|
"MessageType_DebugLinkWatchLayout" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkWatchLayout),
|
||||||
"MessageType_DebugLinkResetDebugEvents" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkResetDebugEvents),
|
"MessageType_DebugLinkResetDebugEvents" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkResetDebugEvents),
|
||||||
"MessageType_DebugLinkOptigaSetSecMax" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax),
|
"MessageType_DebugLinkOptigaSetSecMax" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax),
|
||||||
|
"MessageType_DebugLinkGetPairingInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetPairingInfo),
|
||||||
|
"MessageType_DebugLinkPairingInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkPairingInfo),
|
||||||
"MessageType_EthereumGetPublicKey" => ::std::option::Option::Some(MessageType::MessageType_EthereumGetPublicKey),
|
"MessageType_EthereumGetPublicKey" => ::std::option::Option::Some(MessageType::MessageType_EthereumGetPublicKey),
|
||||||
"MessageType_EthereumPublicKey" => ::std::option::Option::Some(MessageType::MessageType_EthereumPublicKey),
|
"MessageType_EthereumPublicKey" => ::std::option::Option::Some(MessageType::MessageType_EthereumPublicKey),
|
||||||
"MessageType_EthereumGetAddress" => ::std::option::Option::Some(MessageType::MessageType_EthereumGetAddress),
|
"MessageType_EthereumGetAddress" => ::std::option::Option::Some(MessageType::MessageType_EthereumGetAddress),
|
||||||
@ -1137,6 +1145,8 @@ impl ::protobuf::Enum for MessageType {
|
|||||||
MessageType::MessageType_DebugLinkWatchLayout,
|
MessageType::MessageType_DebugLinkWatchLayout,
|
||||||
MessageType::MessageType_DebugLinkResetDebugEvents,
|
MessageType::MessageType_DebugLinkResetDebugEvents,
|
||||||
MessageType::MessageType_DebugLinkOptigaSetSecMax,
|
MessageType::MessageType_DebugLinkOptigaSetSecMax,
|
||||||
|
MessageType::MessageType_DebugLinkGetPairingInfo,
|
||||||
|
MessageType::MessageType_DebugLinkPairingInfo,
|
||||||
MessageType::MessageType_EthereumGetPublicKey,
|
MessageType::MessageType_EthereumGetPublicKey,
|
||||||
MessageType::MessageType_EthereumPublicKey,
|
MessageType::MessageType_EthereumPublicKey,
|
||||||
MessageType::MessageType_EthereumGetAddress,
|
MessageType::MessageType_EthereumGetAddress,
|
||||||
@ -1395,154 +1405,156 @@ impl ::protobuf::EnumFull for MessageType {
|
|||||||
MessageType::MessageType_DebugLinkWatchLayout => 96,
|
MessageType::MessageType_DebugLinkWatchLayout => 96,
|
||||||
MessageType::MessageType_DebugLinkResetDebugEvents => 97,
|
MessageType::MessageType_DebugLinkResetDebugEvents => 97,
|
||||||
MessageType::MessageType_DebugLinkOptigaSetSecMax => 98,
|
MessageType::MessageType_DebugLinkOptigaSetSecMax => 98,
|
||||||
MessageType::MessageType_EthereumGetPublicKey => 99,
|
MessageType::MessageType_DebugLinkGetPairingInfo => 99,
|
||||||
MessageType::MessageType_EthereumPublicKey => 100,
|
MessageType::MessageType_DebugLinkPairingInfo => 100,
|
||||||
MessageType::MessageType_EthereumGetAddress => 101,
|
MessageType::MessageType_EthereumGetPublicKey => 101,
|
||||||
MessageType::MessageType_EthereumAddress => 102,
|
MessageType::MessageType_EthereumPublicKey => 102,
|
||||||
MessageType::MessageType_EthereumSignTx => 103,
|
MessageType::MessageType_EthereumGetAddress => 103,
|
||||||
MessageType::MessageType_EthereumSignTxEIP1559 => 104,
|
MessageType::MessageType_EthereumAddress => 104,
|
||||||
MessageType::MessageType_EthereumTxRequest => 105,
|
MessageType::MessageType_EthereumSignTx => 105,
|
||||||
MessageType::MessageType_EthereumTxAck => 106,
|
MessageType::MessageType_EthereumSignTxEIP1559 => 106,
|
||||||
MessageType::MessageType_EthereumSignMessage => 107,
|
MessageType::MessageType_EthereumTxRequest => 107,
|
||||||
MessageType::MessageType_EthereumVerifyMessage => 108,
|
MessageType::MessageType_EthereumTxAck => 108,
|
||||||
MessageType::MessageType_EthereumMessageSignature => 109,
|
MessageType::MessageType_EthereumSignMessage => 109,
|
||||||
MessageType::MessageType_EthereumSignTypedData => 110,
|
MessageType::MessageType_EthereumVerifyMessage => 110,
|
||||||
MessageType::MessageType_EthereumTypedDataStructRequest => 111,
|
MessageType::MessageType_EthereumMessageSignature => 111,
|
||||||
MessageType::MessageType_EthereumTypedDataStructAck => 112,
|
MessageType::MessageType_EthereumSignTypedData => 112,
|
||||||
MessageType::MessageType_EthereumTypedDataValueRequest => 113,
|
MessageType::MessageType_EthereumTypedDataStructRequest => 113,
|
||||||
MessageType::MessageType_EthereumTypedDataValueAck => 114,
|
MessageType::MessageType_EthereumTypedDataStructAck => 114,
|
||||||
MessageType::MessageType_EthereumTypedDataSignature => 115,
|
MessageType::MessageType_EthereumTypedDataValueRequest => 115,
|
||||||
MessageType::MessageType_EthereumSignTypedHash => 116,
|
MessageType::MessageType_EthereumTypedDataValueAck => 116,
|
||||||
MessageType::MessageType_NEMGetAddress => 117,
|
MessageType::MessageType_EthereumTypedDataSignature => 117,
|
||||||
MessageType::MessageType_NEMAddress => 118,
|
MessageType::MessageType_EthereumSignTypedHash => 118,
|
||||||
MessageType::MessageType_NEMSignTx => 119,
|
MessageType::MessageType_NEMGetAddress => 119,
|
||||||
MessageType::MessageType_NEMSignedTx => 120,
|
MessageType::MessageType_NEMAddress => 120,
|
||||||
MessageType::MessageType_NEMDecryptMessage => 121,
|
MessageType::MessageType_NEMSignTx => 121,
|
||||||
MessageType::MessageType_NEMDecryptedMessage => 122,
|
MessageType::MessageType_NEMSignedTx => 122,
|
||||||
MessageType::MessageType_TezosGetAddress => 123,
|
MessageType::MessageType_NEMDecryptMessage => 123,
|
||||||
MessageType::MessageType_TezosAddress => 124,
|
MessageType::MessageType_NEMDecryptedMessage => 124,
|
||||||
MessageType::MessageType_TezosSignTx => 125,
|
MessageType::MessageType_TezosGetAddress => 125,
|
||||||
MessageType::MessageType_TezosSignedTx => 126,
|
MessageType::MessageType_TezosAddress => 126,
|
||||||
MessageType::MessageType_TezosGetPublicKey => 127,
|
MessageType::MessageType_TezosSignTx => 127,
|
||||||
MessageType::MessageType_TezosPublicKey => 128,
|
MessageType::MessageType_TezosSignedTx => 128,
|
||||||
MessageType::MessageType_StellarSignTx => 129,
|
MessageType::MessageType_TezosGetPublicKey => 129,
|
||||||
MessageType::MessageType_StellarTxOpRequest => 130,
|
MessageType::MessageType_TezosPublicKey => 130,
|
||||||
MessageType::MessageType_StellarGetAddress => 131,
|
MessageType::MessageType_StellarSignTx => 131,
|
||||||
MessageType::MessageType_StellarAddress => 132,
|
MessageType::MessageType_StellarTxOpRequest => 132,
|
||||||
MessageType::MessageType_StellarCreateAccountOp => 133,
|
MessageType::MessageType_StellarGetAddress => 133,
|
||||||
MessageType::MessageType_StellarPaymentOp => 134,
|
MessageType::MessageType_StellarAddress => 134,
|
||||||
MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 135,
|
MessageType::MessageType_StellarCreateAccountOp => 135,
|
||||||
MessageType::MessageType_StellarManageSellOfferOp => 136,
|
MessageType::MessageType_StellarPaymentOp => 136,
|
||||||
MessageType::MessageType_StellarCreatePassiveSellOfferOp => 137,
|
MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 137,
|
||||||
MessageType::MessageType_StellarSetOptionsOp => 138,
|
MessageType::MessageType_StellarManageSellOfferOp => 138,
|
||||||
MessageType::MessageType_StellarChangeTrustOp => 139,
|
MessageType::MessageType_StellarCreatePassiveSellOfferOp => 139,
|
||||||
MessageType::MessageType_StellarAllowTrustOp => 140,
|
MessageType::MessageType_StellarSetOptionsOp => 140,
|
||||||
MessageType::MessageType_StellarAccountMergeOp => 141,
|
MessageType::MessageType_StellarChangeTrustOp => 141,
|
||||||
MessageType::MessageType_StellarManageDataOp => 142,
|
MessageType::MessageType_StellarAllowTrustOp => 142,
|
||||||
MessageType::MessageType_StellarBumpSequenceOp => 143,
|
MessageType::MessageType_StellarAccountMergeOp => 143,
|
||||||
MessageType::MessageType_StellarManageBuyOfferOp => 144,
|
MessageType::MessageType_StellarManageDataOp => 144,
|
||||||
MessageType::MessageType_StellarPathPaymentStrictSendOp => 145,
|
MessageType::MessageType_StellarBumpSequenceOp => 145,
|
||||||
MessageType::MessageType_StellarClaimClaimableBalanceOp => 146,
|
MessageType::MessageType_StellarManageBuyOfferOp => 146,
|
||||||
MessageType::MessageType_StellarSignedTx => 147,
|
MessageType::MessageType_StellarPathPaymentStrictSendOp => 147,
|
||||||
MessageType::MessageType_CardanoGetPublicKey => 148,
|
MessageType::MessageType_StellarClaimClaimableBalanceOp => 148,
|
||||||
MessageType::MessageType_CardanoPublicKey => 149,
|
MessageType::MessageType_StellarSignedTx => 149,
|
||||||
MessageType::MessageType_CardanoGetAddress => 150,
|
MessageType::MessageType_CardanoGetPublicKey => 150,
|
||||||
MessageType::MessageType_CardanoAddress => 151,
|
MessageType::MessageType_CardanoPublicKey => 151,
|
||||||
MessageType::MessageType_CardanoTxItemAck => 152,
|
MessageType::MessageType_CardanoGetAddress => 152,
|
||||||
MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 153,
|
MessageType::MessageType_CardanoAddress => 153,
|
||||||
MessageType::MessageType_CardanoTxWitnessRequest => 154,
|
MessageType::MessageType_CardanoTxItemAck => 154,
|
||||||
MessageType::MessageType_CardanoTxWitnessResponse => 155,
|
MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 155,
|
||||||
MessageType::MessageType_CardanoTxHostAck => 156,
|
MessageType::MessageType_CardanoTxWitnessRequest => 156,
|
||||||
MessageType::MessageType_CardanoTxBodyHash => 157,
|
MessageType::MessageType_CardanoTxWitnessResponse => 157,
|
||||||
MessageType::MessageType_CardanoSignTxFinished => 158,
|
MessageType::MessageType_CardanoTxHostAck => 158,
|
||||||
MessageType::MessageType_CardanoSignTxInit => 159,
|
MessageType::MessageType_CardanoTxBodyHash => 159,
|
||||||
MessageType::MessageType_CardanoTxInput => 160,
|
MessageType::MessageType_CardanoSignTxFinished => 160,
|
||||||
MessageType::MessageType_CardanoTxOutput => 161,
|
MessageType::MessageType_CardanoSignTxInit => 161,
|
||||||
MessageType::MessageType_CardanoAssetGroup => 162,
|
MessageType::MessageType_CardanoTxInput => 162,
|
||||||
MessageType::MessageType_CardanoToken => 163,
|
MessageType::MessageType_CardanoTxOutput => 163,
|
||||||
MessageType::MessageType_CardanoTxCertificate => 164,
|
MessageType::MessageType_CardanoAssetGroup => 164,
|
||||||
MessageType::MessageType_CardanoTxWithdrawal => 165,
|
MessageType::MessageType_CardanoToken => 165,
|
||||||
MessageType::MessageType_CardanoTxAuxiliaryData => 166,
|
MessageType::MessageType_CardanoTxCertificate => 166,
|
||||||
MessageType::MessageType_CardanoPoolOwner => 167,
|
MessageType::MessageType_CardanoTxWithdrawal => 167,
|
||||||
MessageType::MessageType_CardanoPoolRelayParameters => 168,
|
MessageType::MessageType_CardanoTxAuxiliaryData => 168,
|
||||||
MessageType::MessageType_CardanoGetNativeScriptHash => 169,
|
MessageType::MessageType_CardanoPoolOwner => 169,
|
||||||
MessageType::MessageType_CardanoNativeScriptHash => 170,
|
MessageType::MessageType_CardanoPoolRelayParameters => 170,
|
||||||
MessageType::MessageType_CardanoTxMint => 171,
|
MessageType::MessageType_CardanoGetNativeScriptHash => 171,
|
||||||
MessageType::MessageType_CardanoTxCollateralInput => 172,
|
MessageType::MessageType_CardanoNativeScriptHash => 172,
|
||||||
MessageType::MessageType_CardanoTxRequiredSigner => 173,
|
MessageType::MessageType_CardanoTxMint => 173,
|
||||||
MessageType::MessageType_CardanoTxInlineDatumChunk => 174,
|
MessageType::MessageType_CardanoTxCollateralInput => 174,
|
||||||
MessageType::MessageType_CardanoTxReferenceScriptChunk => 175,
|
MessageType::MessageType_CardanoTxRequiredSigner => 175,
|
||||||
MessageType::MessageType_CardanoTxReferenceInput => 176,
|
MessageType::MessageType_CardanoTxInlineDatumChunk => 176,
|
||||||
MessageType::MessageType_RippleGetAddress => 177,
|
MessageType::MessageType_CardanoTxReferenceScriptChunk => 177,
|
||||||
MessageType::MessageType_RippleAddress => 178,
|
MessageType::MessageType_CardanoTxReferenceInput => 178,
|
||||||
MessageType::MessageType_RippleSignTx => 179,
|
MessageType::MessageType_RippleGetAddress => 179,
|
||||||
MessageType::MessageType_RippleSignedTx => 180,
|
MessageType::MessageType_RippleAddress => 180,
|
||||||
MessageType::MessageType_MoneroTransactionInitRequest => 181,
|
MessageType::MessageType_RippleSignTx => 181,
|
||||||
MessageType::MessageType_MoneroTransactionInitAck => 182,
|
MessageType::MessageType_RippleSignedTx => 182,
|
||||||
MessageType::MessageType_MoneroTransactionSetInputRequest => 183,
|
MessageType::MessageType_MoneroTransactionInitRequest => 183,
|
||||||
MessageType::MessageType_MoneroTransactionSetInputAck => 184,
|
MessageType::MessageType_MoneroTransactionInitAck => 184,
|
||||||
MessageType::MessageType_MoneroTransactionInputViniRequest => 185,
|
MessageType::MessageType_MoneroTransactionSetInputRequest => 185,
|
||||||
MessageType::MessageType_MoneroTransactionInputViniAck => 186,
|
MessageType::MessageType_MoneroTransactionSetInputAck => 186,
|
||||||
MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 187,
|
MessageType::MessageType_MoneroTransactionInputViniRequest => 187,
|
||||||
MessageType::MessageType_MoneroTransactionAllInputsSetAck => 188,
|
MessageType::MessageType_MoneroTransactionInputViniAck => 188,
|
||||||
MessageType::MessageType_MoneroTransactionSetOutputRequest => 189,
|
MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 189,
|
||||||
MessageType::MessageType_MoneroTransactionSetOutputAck => 190,
|
MessageType::MessageType_MoneroTransactionAllInputsSetAck => 190,
|
||||||
MessageType::MessageType_MoneroTransactionAllOutSetRequest => 191,
|
MessageType::MessageType_MoneroTransactionSetOutputRequest => 191,
|
||||||
MessageType::MessageType_MoneroTransactionAllOutSetAck => 192,
|
MessageType::MessageType_MoneroTransactionSetOutputAck => 192,
|
||||||
MessageType::MessageType_MoneroTransactionSignInputRequest => 193,
|
MessageType::MessageType_MoneroTransactionAllOutSetRequest => 193,
|
||||||
MessageType::MessageType_MoneroTransactionSignInputAck => 194,
|
MessageType::MessageType_MoneroTransactionAllOutSetAck => 194,
|
||||||
MessageType::MessageType_MoneroTransactionFinalRequest => 195,
|
MessageType::MessageType_MoneroTransactionSignInputRequest => 195,
|
||||||
MessageType::MessageType_MoneroTransactionFinalAck => 196,
|
MessageType::MessageType_MoneroTransactionSignInputAck => 196,
|
||||||
MessageType::MessageType_MoneroKeyImageExportInitRequest => 197,
|
MessageType::MessageType_MoneroTransactionFinalRequest => 197,
|
||||||
MessageType::MessageType_MoneroKeyImageExportInitAck => 198,
|
MessageType::MessageType_MoneroTransactionFinalAck => 198,
|
||||||
MessageType::MessageType_MoneroKeyImageSyncStepRequest => 199,
|
MessageType::MessageType_MoneroKeyImageExportInitRequest => 199,
|
||||||
MessageType::MessageType_MoneroKeyImageSyncStepAck => 200,
|
MessageType::MessageType_MoneroKeyImageExportInitAck => 200,
|
||||||
MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 201,
|
MessageType::MessageType_MoneroKeyImageSyncStepRequest => 201,
|
||||||
MessageType::MessageType_MoneroKeyImageSyncFinalAck => 202,
|
MessageType::MessageType_MoneroKeyImageSyncStepAck => 202,
|
||||||
MessageType::MessageType_MoneroGetAddress => 203,
|
MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 203,
|
||||||
MessageType::MessageType_MoneroAddress => 204,
|
MessageType::MessageType_MoneroKeyImageSyncFinalAck => 204,
|
||||||
MessageType::MessageType_MoneroGetWatchKey => 205,
|
MessageType::MessageType_MoneroGetAddress => 205,
|
||||||
MessageType::MessageType_MoneroWatchKey => 206,
|
MessageType::MessageType_MoneroAddress => 206,
|
||||||
MessageType::MessageType_DebugMoneroDiagRequest => 207,
|
MessageType::MessageType_MoneroGetWatchKey => 207,
|
||||||
MessageType::MessageType_DebugMoneroDiagAck => 208,
|
MessageType::MessageType_MoneroWatchKey => 208,
|
||||||
MessageType::MessageType_MoneroGetTxKeyRequest => 209,
|
MessageType::MessageType_DebugMoneroDiagRequest => 209,
|
||||||
MessageType::MessageType_MoneroGetTxKeyAck => 210,
|
MessageType::MessageType_DebugMoneroDiagAck => 210,
|
||||||
MessageType::MessageType_MoneroLiveRefreshStartRequest => 211,
|
MessageType::MessageType_MoneroGetTxKeyRequest => 211,
|
||||||
MessageType::MessageType_MoneroLiveRefreshStartAck => 212,
|
MessageType::MessageType_MoneroGetTxKeyAck => 212,
|
||||||
MessageType::MessageType_MoneroLiveRefreshStepRequest => 213,
|
MessageType::MessageType_MoneroLiveRefreshStartRequest => 213,
|
||||||
MessageType::MessageType_MoneroLiveRefreshStepAck => 214,
|
MessageType::MessageType_MoneroLiveRefreshStartAck => 214,
|
||||||
MessageType::MessageType_MoneroLiveRefreshFinalRequest => 215,
|
MessageType::MessageType_MoneroLiveRefreshStepRequest => 215,
|
||||||
MessageType::MessageType_MoneroLiveRefreshFinalAck => 216,
|
MessageType::MessageType_MoneroLiveRefreshStepAck => 216,
|
||||||
MessageType::MessageType_EosGetPublicKey => 217,
|
MessageType::MessageType_MoneroLiveRefreshFinalRequest => 217,
|
||||||
MessageType::MessageType_EosPublicKey => 218,
|
MessageType::MessageType_MoneroLiveRefreshFinalAck => 218,
|
||||||
MessageType::MessageType_EosSignTx => 219,
|
MessageType::MessageType_EosGetPublicKey => 219,
|
||||||
MessageType::MessageType_EosTxActionRequest => 220,
|
MessageType::MessageType_EosPublicKey => 220,
|
||||||
MessageType::MessageType_EosTxActionAck => 221,
|
MessageType::MessageType_EosSignTx => 221,
|
||||||
MessageType::MessageType_EosSignedTx => 222,
|
MessageType::MessageType_EosTxActionRequest => 222,
|
||||||
MessageType::MessageType_BinanceGetAddress => 223,
|
MessageType::MessageType_EosTxActionAck => 223,
|
||||||
MessageType::MessageType_BinanceAddress => 224,
|
MessageType::MessageType_EosSignedTx => 224,
|
||||||
MessageType::MessageType_BinanceGetPublicKey => 225,
|
MessageType::MessageType_BinanceGetAddress => 225,
|
||||||
MessageType::MessageType_BinancePublicKey => 226,
|
MessageType::MessageType_BinanceAddress => 226,
|
||||||
MessageType::MessageType_BinanceSignTx => 227,
|
MessageType::MessageType_BinanceGetPublicKey => 227,
|
||||||
MessageType::MessageType_BinanceTxRequest => 228,
|
MessageType::MessageType_BinancePublicKey => 228,
|
||||||
MessageType::MessageType_BinanceTransferMsg => 229,
|
MessageType::MessageType_BinanceSignTx => 229,
|
||||||
MessageType::MessageType_BinanceOrderMsg => 230,
|
MessageType::MessageType_BinanceTxRequest => 230,
|
||||||
MessageType::MessageType_BinanceCancelMsg => 231,
|
MessageType::MessageType_BinanceTransferMsg => 231,
|
||||||
MessageType::MessageType_BinanceSignedTx => 232,
|
MessageType::MessageType_BinanceOrderMsg => 232,
|
||||||
MessageType::MessageType_WebAuthnListResidentCredentials => 233,
|
MessageType::MessageType_BinanceCancelMsg => 233,
|
||||||
MessageType::MessageType_WebAuthnCredentials => 234,
|
MessageType::MessageType_BinanceSignedTx => 234,
|
||||||
MessageType::MessageType_WebAuthnAddResidentCredential => 235,
|
MessageType::MessageType_WebAuthnListResidentCredentials => 235,
|
||||||
MessageType::MessageType_WebAuthnRemoveResidentCredential => 236,
|
MessageType::MessageType_WebAuthnCredentials => 236,
|
||||||
MessageType::MessageType_SolanaGetPublicKey => 237,
|
MessageType::MessageType_WebAuthnAddResidentCredential => 237,
|
||||||
MessageType::MessageType_SolanaPublicKey => 238,
|
MessageType::MessageType_WebAuthnRemoveResidentCredential => 238,
|
||||||
MessageType::MessageType_SolanaGetAddress => 239,
|
MessageType::MessageType_SolanaGetPublicKey => 239,
|
||||||
MessageType::MessageType_SolanaAddress => 240,
|
MessageType::MessageType_SolanaPublicKey => 240,
|
||||||
MessageType::MessageType_SolanaSignTx => 241,
|
MessageType::MessageType_SolanaGetAddress => 241,
|
||||||
MessageType::MessageType_SolanaTxSignature => 242,
|
MessageType::MessageType_SolanaAddress => 242,
|
||||||
MessageType::MessageType_BenchmarkListNames => 243,
|
MessageType::MessageType_SolanaSignTx => 243,
|
||||||
MessageType::MessageType_BenchmarkNames => 244,
|
MessageType::MessageType_SolanaTxSignature => 244,
|
||||||
MessageType::MessageType_BenchmarkRun => 245,
|
MessageType::MessageType_BenchmarkListNames => 245,
|
||||||
MessageType::MessageType_BenchmarkResult => 246,
|
MessageType::MessageType_BenchmarkNames => 246,
|
||||||
|
MessageType::MessageType_BenchmarkRun => 247,
|
||||||
|
MessageType::MessageType_BenchmarkResult => 248,
|
||||||
};
|
};
|
||||||
Self::enum_descriptor().value_by_index(index)
|
Self::enum_descriptor().value_by_index(index)
|
||||||
}
|
}
|
||||||
@ -1561,7 +1573,7 @@ impl MessageType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static file_descriptor_proto_data: &'static [u8] = b"\
|
static file_descriptor_proto_data: &'static [u8] = b"\
|
||||||
\n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xe8U\
|
\n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xcdV\
|
||||||
\n\x0bMessageType\x12(\n\x16MessageType_Initialize\x10\0\x1a\x0c\x80\xa6\
|
\n\x0bMessageType\x12(\n\x16MessageType_Initialize\x10\0\x1a\x0c\x80\xa6\
|
||||||
\x1d\x01\xb0\xb5\x18\x01\x90\xb5\x18\x01\x12\x1e\n\x10MessageType_Ping\
|
\x1d\x01\xb0\xb5\x18\x01\x90\xb5\x18\x01\x12\x1e\n\x10MessageType_Ping\
|
||||||
\x10\x01\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12%\n\x13MessageType_S\
|
\x10\x01\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12%\n\x13MessageType_S\
|
||||||
@ -1681,172 +1693,174 @@ static file_descriptor_proto_data: &'static [u8] = b"\
|
|||||||
\x1d\x01\xa0\xb5\x18\x01\x124\n%MessageType_DebugLinkResetDebugEvents\
|
\x1d\x01\xa0\xb5\x18\x01\x124\n%MessageType_DebugLinkResetDebugEvents\
|
||||||
\x10\xafF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x123\n$MessageType_Deb\
|
\x10\xafF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x123\n$MessageType_Deb\
|
||||||
ugLinkOptigaSetSecMax\x10\xb0F\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\
|
ugLinkOptigaSetSecMax\x10\xb0F\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\
|
||||||
\x12+\n\x20MessageType_EthereumGetPublicKey\x10\xc2\x03\x1a\x04\x90\xb5\
|
\x122\n#MessageType_DebugLinkGetPairingInfo\x10\xb1F\x1a\x08\x80\xa6\x1d\
|
||||||
\x18\x01\x12(\n\x1dMessageType_EthereumPublicKey\x10\xc3\x03\x1a\x04\x98\
|
\x01\xa0\xb5\x18\x01\x12/\n\x20MessageType_DebugLinkPairingInfo\x10\xb2F\
|
||||||
\xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAddress\x108\x1a\x04\x90\
|
\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12+\n\x20MessageType_EthereumG\
|
||||||
\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x109\x1a\x04\x98\xb5\
|
etPublicKey\x10\xc2\x03\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_Et\
|
||||||
\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\
|
hereumPublicKey\x10\xc3\x03\x1a\x04\x98\xb5\x18\x01\x12(\n\x1eMessageTyp\
|
||||||
\x01\x12,\n!MessageType_EthereumSignTxEIP1559\x10\xc4\x03\x1a\x04\x90\
|
e_EthereumGetAddress\x108\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_\
|
||||||
\xb5\x18\x01\x12'\n\x1dMessageType_EthereumTxRequest\x10;\x1a\x04\x98\
|
EthereumAddress\x109\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_Ether\
|
||||||
\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\x04\x90\xb5\
|
eumSignTx\x10:\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_EthereumSignTx\
|
||||||
\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\x10@\x1a\x04\x90\xb5\
|
EIP1559\x10\xc4\x03\x1a\x04\x90\xb5\x18\x01\x12'\n\x1dMessageType_Ethere\
|
||||||
\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10A\x1a\x04\x90\xb5\
|
umTxRequest\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumT\
|
||||||
\x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10B\x1a\x04\x98\
|
xAck\x10<\x1a\x04\x90\xb5\x18\x01\x12)\n\x1fMessageType_EthereumSignMess\
|
||||||
\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\x10\xd0\x03\x1a\
|
age\x10@\x1a\x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVerifyMessag\
|
||||||
\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDataStructRequest\
|
e\x10A\x1a\x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessageSignatu\
|
||||||
\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_EthereumTypedDat\
|
re\x10B\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\
|
||||||
aStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Ethere\
|
\x10\xd0\x03\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDat\
|
||||||
umTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\x01\x120\n%Messa\
|
aStructRequest\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_Et\
|
||||||
geType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\x90\xb5\x18\x01\x12\
|
hereumTypedDataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)Mess\
|
||||||
1\n&MessageType_EthereumTypedDataSignature\x10\xd5\x03\x1a\x04\x98\xb5\
|
ageType_EthereumTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\
|
||||||
\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\x10\xd6\x03\x1a\x04\
|
\x01\x120\n%MessageType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\
|
||||||
\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\x10C\x1a\x04\x90\
|
\x90\xb5\x18\x01\x121\n&MessageType_EthereumTypedDataSignature\x10\xd5\
|
||||||
\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\x1a\x04\x98\xb5\
|
\x03\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\
|
||||||
\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\x90\xb5\x18\x01\
|
\x10\xd6\x03\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\
|
||||||
\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\x18\x01\x12'\n\
|
\x10C\x1a\x04\x90\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\
|
||||||
\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\x18\x01\x12)\n\
|
\x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\
|
||||||
\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\x18\x01\x12&\n\
|
\x90\xb5\x18\x01\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\
|
||||||
\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\xb5\x18\x01\x12#\
|
\x18\x01\x12'\n\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\
|
||||||
\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\xb5\x18\x01\x12\"\
|
\x18\x01\x12)\n\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\
|
||||||
\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\xb5\x18\x01\x12$\n\
|
\x18\x01\x12&\n\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\
|
||||||
\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\xb5\x18\x01\x12(\n\
|
\xb5\x18\x01\x12#\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\
|
||||||
\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\x90\xb5\x18\x01\
|
\xb5\x18\x01\x12\"\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\
|
||||||
\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\x04\x98\xb5\x18\
|
\xb5\x18\x01\x12$\n\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\
|
||||||
\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\x04\x90\xb5\x18\
|
\xb5\x18\x01\x12(\n\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\
|
||||||
\x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\x01\x1a\x04\x98\
|
\x90\xb5\x18\x01\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\
|
||||||
\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\xcf\x01\x1a\x04\
|
\x04\x98\xb5\x18\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\
|
||||||
\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\x10\xd0\x01\x1a\
|
\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\
|
||||||
\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAccountOp\x10\xd2\
|
\x01\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\
|
||||||
\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_StellarPaymentOp\x10\
|
\xcf\x01\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\
|
||||||
\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_StellarPathPaymentSt\
|
\x10\xd0\x01\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAc\
|
||||||
rictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_Ste\
|
countOp\x10\xd2\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_Stella\
|
||||||
llarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\x126\n+Message\
|
rPaymentOp\x10\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_Stella\
|
||||||
Type_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\x90\xb5\x18\x01\
|
rPathPaymentStrictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$M\
|
||||||
\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\x1a\x04\x90\xb5\
|
essageType_StellarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\
|
||||||
\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\xd8\x01\x1a\x04\
|
\x126\n+MessageType_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\
|
||||||
\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrustOp\x10\xd9\x01\
|
\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\
|
||||||
\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccountMergeOp\x10\
|
\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\
|
||||||
\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarManageData\
|
\xd8\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrust\
|
||||||
Op\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarBumpSeq\
|
Op\x10\xd9\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccount\
|
||||||
uenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_StellarMa\
|
MergeOp\x10\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Stella\
|
||||||
nageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_St\
|
rManageDataOp\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_Ste\
|
||||||
ellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\x01\x125\n*\
|
llarBumpSequenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageTyp\
|
||||||
MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\x04\x90\xb5\
|
e_StellarManageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*Mes\
|
||||||
\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\x1a\x04\x98\
|
sageType_StellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\
|
||||||
\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\xb1\x02\x1a\
|
\x01\x125\n*MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\
|
||||||
\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\x10\xb2\x02\
|
\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\
|
||||||
\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAddress\x10\xb3\
|
\x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\
|
||||||
\x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAddress\x10\
|
\xb1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\
|
||||||
\xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoTxItemAck\
|
\x10\xb2\x02\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAdd\
|
||||||
\x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoTxAuxilia\
|
ress\x10\xb3\x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAd\
|
||||||
ryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#MessageType_\
|
dress\x10\xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoT\
|
||||||
CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\n$Messa\
|
xItemAck\x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoT\
|
||||||
geType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\x01\x12'\
|
xAuxiliaryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#Mess\
|
||||||
\n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\x18\x01\
|
ageType_CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\
|
||||||
\x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\xb5\x18\
|
\n$MessageType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\
|
||||||
\x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\x04\x98\
|
\x01\x12'\n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\
|
||||||
\xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\x1a\x04\
|
\x18\x01\x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\
|
||||||
\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\x02\x1a\
|
\xb5\x18\x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\
|
||||||
\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\xc2\x02\
|
\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\
|
||||||
\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\x10\xc3\
|
\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\
|
||||||
\x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\x10\xc4\
|
\x02\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\
|
||||||
\x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCertificate\
|
\xc2\x02\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\
|
||||||
\x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_CardanoTxWith\
|
\x10\xc3\x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\
|
||||||
drawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_CardanoTx\
|
\x10\xc4\x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCert\
|
||||||
AuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_\
|
ificate\x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Cardan\
|
||||||
CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&MessageType_\
|
oTxWithdrawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_Ca\
|
||||||
CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Me\
|
rdanoTxAuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\
|
||||||
ssageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\xb5\x18\x01\
|
geType_CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Messa\
|
||||||
\x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\x04\x98\xb5\
|
geType_CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\
|
||||||
\x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\x04\x90\xb5\
|
\x121\n&MessageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\
|
||||||
\x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\x02\x1a\x04\
|
\xb5\x18\x01\x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\
|
||||||
\x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\x10\xce\x02\
|
\x04\x98\xb5\x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\
|
||||||
\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineDatumChunk\
|
\x04\x90\xb5\x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\
|
||||||
\x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_CardanoTxReferen\
|
\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\
|
||||||
ceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_Car\
|
\x10\xce\x02\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineD\
|
||||||
danoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\
|
atumChunk\x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Cardano\
|
||||||
geType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12$\n\x19Me\
|
TxReferenceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#Messag\
|
||||||
ssageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12#\n\x18Me\
|
eType_CardanoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\
|
||||||
ssageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMes\
|
\x1cMessageType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12\
|
||||||
sageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x123\n(Messa\
|
$\n\x19MessageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12\
|
||||||
geType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\x18\x01\
|
#\n\x18MessageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\
|
||||||
\x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\x98\xb5\
|
\n\x1aMessageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x12\
|
||||||
\x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\xf7\x03\
|
3\n(MessageType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\
|
||||||
\x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSetInputAck\
|
\x18\x01\x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\
|
||||||
\x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\
|
\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\
|
||||||
nInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\
|
\xf7\x03\x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSet\
|
||||||
_MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\x01\x12;\
|
InputAck\x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTr\
|
||||||
\n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\x1a\x04\
|
ansactionInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Mes\
|
||||||
\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSetAck\x10\
|
sageType_MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\
|
||||||
\xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSet\
|
\x01\x12;\n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\
|
||||||
OutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Mon\
|
\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSe\
|
||||||
eroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\x128\n-Me\
|
tAck\x10\xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransa\
|
||||||
ssageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\x04\x98\xb5\
|
ctionSetOutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Message\
|
||||||
\x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\x10\x82\x04\
|
Type_MoneroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\
|
||||||
\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSignInputRe\
|
\x128\n-MessageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\
|
||||||
quest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTrans\
|
\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\
|
||||||
actionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageTyp\
|
\x10\x82\x04\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\
|
||||||
e_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\x18\x01\x120\
|
nSignInputRequest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\
|
||||||
\n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\x04\x98\xb5\x18\
|
_MoneroTransactionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\
|
||||||
\x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\x10\x92\x04\x1a\
|
\n)MessageType_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\
|
||||||
\x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageExportInitAck\x10\
|
\x18\x01\x120\n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\
|
||||||
\x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroKeyImageSyncSt\
|
\x04\x98\xb5\x18\x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\
|
||||||
epRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%MessageType_MoneroK\
|
\x10\x92\x04\x1a\x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageEx\
|
||||||
eyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\x125\n*MessageTyp\
|
portInitAck\x10\x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Moner\
|
||||||
e_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\x98\xb5\x18\x01\x12\
|
oKeyImageSyncStepRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%Mess\
|
||||||
1\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\x04\x1a\x04\x98\xb5\
|
ageType_MoneroKeyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\
|
||||||
\x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\x9c\x04\x1a\x04\x90\
|
\x125\n*MessageType_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\
|
||||||
\xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\x9d\x04\x1a\x04\x98\
|
\x98\xb5\x18\x01\x121\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\
|
||||||
\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\x10\x9e\x04\x1a\x04\
|
\x04\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\
|
||||||
\x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKey\x10\x9f\x04\x1a\
|
\x9c\x04\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\
|
||||||
\x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDiagRequest\x10\xa2\
|
\x9d\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\
|
||||||
\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_DebugMoneroDiagAck\
|
\x10\x9e\x04\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKe\
|
||||||
\x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_MoneroGetTxKeyRe\
|
y\x10\x9f\x04\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDia\
|
||||||
quest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGe\
|
gRequest\x10\xa2\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_Debug\
|
||||||
tTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroL\
|
MoneroDiagAck\x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_Mon\
|
||||||
iveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\x120\n%Messag\
|
eroGetTxKeyRequest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessage\
|
||||||
eType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\xb5\x18\x01\x123\
|
Type_MoneroGetTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)Messag\
|
||||||
\n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\x1a\x04\x90\xb5\
|
eType_MoneroLiveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\
|
||||||
\x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\xab\x04\x1a\x04\
|
\x120\n%MessageType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\
|
||||||
\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFinalRequest\x10\
|
\xb5\x18\x01\x123\n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\
|
||||||
\xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroLiveRefreshFin\
|
\x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\
|
||||||
alAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessageType_EosGetPu\
|
\xab\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFin\
|
||||||
blicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_EosPub\
|
alRequest\x10\xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroL\
|
||||||
licKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15MessageType_EosS\
|
iveRefreshFinalAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessage\
|
||||||
ignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_EosTxAct\
|
Type_EosGetPublicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18Messa\
|
||||||
ionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_Eos\
|
geType_EosPublicKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15Mes\
|
||||||
TxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_E\
|
sageType_EosSignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessage\
|
||||||
osSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_Bin\
|
Type_EosTxActionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMe\
|
||||||
anceGetAddress\x10\xbc\x05\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType\
|
ssageType_EosTxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17\
|
||||||
_BinanceAddress\x10\xbd\x05\x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageTyp\
|
MessageType_EosSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMe\
|
||||||
e_BinanceGetPublicKey\x10\xbe\x05\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMess\
|
ssageType_BinanceGetAddress\x10\xbc\x05\x1a\x04\x90\xb5\x18\x01\x12%\n\
|
||||||
ageType_BinancePublicKey\x10\xbf\x05\x1a\x04\x98\xb5\x18\x01\x12$\n\x19M\
|
\x1aMessageType_BinanceAddress\x10\xbd\x05\x1a\x04\x98\xb5\x18\x01\x12*\
|
||||||
essageType_BinanceSignTx\x10\xc0\x05\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cM\
|
\n\x1fMessageType_BinanceGetPublicKey\x10\xbe\x05\x1a\x04\x90\xb5\x18\
|
||||||
essageType_BinanceTxRequest\x10\xc1\x05\x1a\x04\x98\xb5\x18\x01\x12)\n\
|
\x01\x12'\n\x1cMessageType_BinancePublicKey\x10\xbf\x05\x1a\x04\x98\xb5\
|
||||||
\x1eMessageType_BinanceTransferMsg\x10\xc2\x05\x1a\x04\x90\xb5\x18\x01\
|
\x18\x01\x12$\n\x19MessageType_BinanceSignTx\x10\xc0\x05\x1a\x04\x90\xb5\
|
||||||
\x12&\n\x1bMessageType_BinanceOrderMsg\x10\xc3\x05\x1a\x04\x90\xb5\x18\
|
\x18\x01\x12'\n\x1cMessageType_BinanceTxRequest\x10\xc1\x05\x1a\x04\x98\
|
||||||
\x01\x12'\n\x1cMessageType_BinanceCancelMsg\x10\xc4\x05\x1a\x04\x90\xb5\
|
\xb5\x18\x01\x12)\n\x1eMessageType_BinanceTransferMsg\x10\xc2\x05\x1a\
|
||||||
\x18\x01\x12&\n\x1bMessageType_BinanceSignedTx\x10\xc5\x05\x1a\x04\x98\
|
\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_BinanceOrderMsg\x10\xc3\x05\
|
||||||
\xb5\x18\x01\x126\n+MessageType_WebAuthnListResidentCredentials\x10\xa0\
|
\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_BinanceCancelMsg\x10\xc4\
|
||||||
\x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_WebAuthnCredentials\
|
\x05\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_BinanceSignedTx\x10\
|
||||||
\x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_WebAuthnAddResid\
|
\xc5\x05\x1a\x04\x98\xb5\x18\x01\x126\n+MessageType_WebAuthnListResident\
|
||||||
entCredential\x10\xa2\x06\x1a\x04\x90\xb5\x18\x01\x127\n,MessageType_Web\
|
Credentials\x10\xa0\x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_We\
|
||||||
AuthnRemoveResidentCredential\x10\xa3\x06\x1a\x04\x90\xb5\x18\x01\x12)\n\
|
bAuthnCredentials\x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\
|
||||||
\x1eMessageType_SolanaGetPublicKey\x10\x84\x07\x1a\x04\x90\xb5\x18\x01\
|
_WebAuthnAddResidentCredential\x10\xa2\x06\x1a\x04\x90\xb5\x18\x01\x127\
|
||||||
\x12&\n\x1bMessageType_SolanaPublicKey\x10\x85\x07\x1a\x04\x98\xb5\x18\
|
\n,MessageType_WebAuthnRemoveResidentCredential\x10\xa3\x06\x1a\x04\x90\
|
||||||
\x01\x12'\n\x1cMessageType_SolanaGetAddress\x10\x86\x07\x1a\x04\x90\xb5\
|
\xb5\x18\x01\x12)\n\x1eMessageType_SolanaGetPublicKey\x10\x84\x07\x1a\
|
||||||
\x18\x01\x12$\n\x19MessageType_SolanaAddress\x10\x87\x07\x1a\x04\x98\xb5\
|
\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_SolanaPublicKey\x10\x85\x07\
|
||||||
\x18\x01\x12#\n\x18MessageType_SolanaSignTx\x10\x88\x07\x1a\x04\x90\xb5\
|
\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_SolanaGetAddress\x10\x86\
|
||||||
\x18\x01\x12(\n\x1dMessageType_SolanaTxSignature\x10\x89\x07\x1a\x04\x98\
|
\x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_SolanaAddress\x10\x87\
|
||||||
\xb5\x18\x01\x12)\n\x1eMessageType_BenchmarkListNames\x10\x8cG\x1a\x04\
|
\x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_SolanaSignTx\x10\x88\
|
||||||
\x80\xa6\x1d\x01\x12%\n\x1aMessageType_BenchmarkNames\x10\x8dG\x1a\x04\
|
\x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_SolanaTxSignature\x10\
|
||||||
\x80\xa6\x1d\x01\x12#\n\x18MessageType_BenchmarkRun\x10\x8eG\x1a\x04\x80\
|
\x89\x07\x1a\x04\x98\xb5\x18\x01\x12)\n\x1eMessageType_BenchmarkListName\
|
||||||
\xa6\x1d\x01\x12&\n\x1bMessageType_BenchmarkResult\x10\x8fG\x1a\x04\x80\
|
s\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessageType_BenchmarkNames\
|
||||||
\xa6\x1d\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08Z\x10\\\"\x04\x08G\x10J\"\
|
\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\x18MessageType_BenchmarkRun\x10\
|
||||||
\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\xdb\x01\"\x06\x08\xe0\x01\x10\xe0\
|
\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1bMessageType_BenchmarkResult\x10\
|
||||||
\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\x06\x08\xb5\x02\x10\xb8\x02\"\x06\
|
\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08Z\x10\\\"\
|
||||||
\x08\xe8\x07\x10\xcb\x08B8\n#com.satoshilabs.trezor.lib.protobufB\rTrezo\
|
\x04\x08G\x10J\"\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\xdb\x01\"\x06\x08\
|
||||||
rMessage\x80\xa6\x1d\x01\
|
\xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\x06\x08\xb5\x02\x10\
|
||||||
|
\xb8\x02\"\x06\x08\xe8\x07\x10\xcb\x08B8\n#com.satoshilabs.trezor.lib.pr\
|
||||||
|
otobufB\rTrezorMessage\x80\xa6\x1d\x01\
|
||||||
";
|
";
|
||||||
|
|
||||||
/// `FileDescriptorProto` object which was a source for this generated file
|
/// `FileDescriptorProto` object which was a source for this generated file
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -155,12 +155,15 @@ def test_pairing_qr_code(client: Client) -> None:
|
|||||||
_send_message(ButtonAck())
|
_send_message(ButtonAck())
|
||||||
|
|
||||||
# Read code from "Trezor's display" using debuglink
|
# Read code from "Trezor's display" using debuglink
|
||||||
state = client.debug.state(thp_channel_id=protocol.channel_id.to_bytes(2, "big"))
|
|
||||||
code = state.thp_pairing_code_qr_code
|
pairing_info = client.debug.pairing_info(
|
||||||
|
thp_channel_id=protocol.channel_id.to_bytes(2, "big")
|
||||||
|
)
|
||||||
|
code = pairing_info.code_qr_code
|
||||||
|
|
||||||
# Compute tag for response
|
# Compute tag for response
|
||||||
sha_ctx = hashlib.sha256(protocol.handshake_hash)
|
sha_ctx = hashlib.sha256(protocol.handshake_hash)
|
||||||
sha_ctx.update(state.thp_pairing_code_qr_code)
|
sha_ctx.update(code)
|
||||||
tag = sha_ctx.digest()
|
tag = sha_ctx.digest()
|
||||||
|
|
||||||
_send_message(ThpQrCodeTag(tag=tag))
|
_send_message(ThpQrCodeTag(tag=tag))
|
||||||
@ -218,8 +221,10 @@ def test_pairing_code_entry(client: Client) -> None:
|
|||||||
_read_message(ButtonRequest)
|
_read_message(ButtonRequest)
|
||||||
_send_message(ButtonAck())
|
_send_message(ButtonAck())
|
||||||
|
|
||||||
state = client.debug.state(thp_channel_id=protocol.channel_id.to_bytes(2, "big"))
|
pairing_info = client.debug.pairing_info(
|
||||||
code = state.thp_pairing_code_entry_code
|
thp_channel_id=protocol.channel_id.to_bytes(2, "big")
|
||||||
|
)
|
||||||
|
code = pairing_info.code_entry_code
|
||||||
|
|
||||||
# TODO fix missing CPACE
|
# TODO fix missing CPACE
|
||||||
cpace_shared_secret = b"\x01"
|
cpace_shared_secret = b"\x01"
|
||||||
|
Loading…
Reference in New Issue
Block a user