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

feat(common): add Trezor Host Protocol protobuf definitions

[no changelog]
This commit is contained in:
Martin Milata 2025-06-12 23:57:38 +02:00
parent b83889457b
commit 95ecbbed8b
15 changed files with 5830 additions and 340 deletions

View File

@ -85,7 +85,7 @@ message DebugLinkRecordScreen {
} }
/** /**
* Request: Computer asks for device state * Request: Host asks for device state
* @start * @start
* @next DebugLinkState * @next DebugLinkState
*/ */
@ -134,6 +134,39 @@ message DebugLinkState {
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
} }
/**
* 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
}
/**
* Request: Disable or enable the pairing dialog for a given THP channel
* @start
* @next Success
*/
message DebugLinkToggleThpPairingDialog{
optional bytes channel_id = 1;
optional bool show_dialog = 2 [default=false];
}
/** /**
* Request: Ask device to restart * Request: Ask device to restart
* @start * @start

View File

@ -9,6 +9,195 @@ import "options.proto";
option (include_in_bitcoin_only) = true; option (include_in_bitcoin_only) = true;
/**
* Numeric identifiers of pairing methods.
* @embed
*/
enum ThpPairingMethod {
SkipPairing = 1; // Trust without MITM protection.
CodeEntry = 2; // User types code diplayed on Trezor into the host application.
QrCode = 3; // User scans code displayed on Trezor into host application.
NFC = 4; // Trezor and host application exchange authentication secrets via NFC.
}
/**
* @embed
*/
message ThpDeviceProperties {
optional string internal_model = 1; // Internal model name e.g. "T2B1".
optional uint32 model_variant = 2; // Encodes the device properties such as color.
optional uint32 protocol_version_major = 3; // The major version of the communication protocol used by the firmware.
optional uint32 protocol_version_minor = 4; // The minor version of the communication protocol used by the firmware.
repeated ThpPairingMethod pairing_methods = 5; // The pairing methods supported by the Trezor.
}
/**
* @embed
*/
message ThpHandshakeCompletionReqNoisePayload {
optional bytes host_pairing_credential = 1; // Host's pairing credential
}
/**
* Request: Ask device for a new session with given passphrase.
* @start
* @next Success
*/
message ThpCreateNewSession{
optional string passphrase = 1;
optional bool on_device = 2; // User wants to enter passphrase on the device
optional bool derive_cardano = 3; // If True, Cardano keys will be derived. Ignored with BTC-only
}
/**
* Request: Start pairing process.
* @start
* @next ThpPairingRequestApproved
*/
message ThpPairingRequest{
optional string host_name = 1; // Human-readable host name
}
/**
* Response: Host is allowed to start pairing process.
* @start
* @next ThpSelectMethod
*/
message ThpPairingRequestApproved{
}
/**
* Request: Start pairing using the method selected.
* @start
* @next ThpPairingPreparationsFinished
* @next ThpCodeEntryCommitment
*/
message ThpSelectMethod {
optional ThpPairingMethod selected_pairing_method = 1;
}
/**
* Response: Pairing is ready for user input / OOB communication.
* @next ThpCodeEntryCpace
* @next ThpQrCodeTag
* @next ThpNfcTagHost
*/
message ThpPairingPreparationsFinished{
}
/**
* Response: If Code Entry is an allowed pairing option, Trezor responds with a commitment.
* @next ThpCodeEntryChallenge
*/
message ThpCodeEntryCommitment {
optional bytes commitment = 1; // SHA-256 of Trezor's random 32-byte secret
}
/**
* Response: Host responds to Trezor's Code Entry commitment with a challenge.
* @next ThpCodeEntryCpaceTrezor
*/
message ThpCodeEntryChallenge {
optional bytes challenge = 1; // Host's random 32-byte challenge
}
/**
* Response: Trezor continues with the CPACE protocol.
* @next ThpCodeEntryCpaceHostTag
*/
message ThpCodeEntryCpaceTrezor {
optional bytes cpace_trezor_public_key = 1; // Trezor's ephemeral CPace public key
}
/**
* Request: User selected Code Entry option in Host. Host starts CPACE protocol with Trezor.
* @next ThpCodeEntrySecret
*/
message ThpCodeEntryCpaceHostTag {
optional bytes cpace_host_public_key = 1; // Host's ephemeral CPace public key
optional bytes tag = 2; // SHA-256 of shared secret
}
/**
* Response: Trezor finishes the CPACE protocol.
* @next ThpCredentialRequest
* @next ThpEndRequest
*/
message ThpCodeEntrySecret {
optional bytes secret = 1; // Trezor's secret
}
/**
* Request: User selected QR Code pairing option. Host sends a QR Tag.
* @next ThpQrCodeSecret
*/
message ThpQrCodeTag {
optional bytes tag = 1; // SHA-256 of shared secret
}
/**
* Response: Trezor sends the QR secret.
* @next ThpCredentialRequest
* @next ThpEndRequest
*/
message ThpQrCodeSecret {
optional bytes secret = 1; // Trezor's secret
}
/**
* Request: User selected Unidirectional NFC pairing option. Host sends an Unidirectional NFC Tag.
* @next ThpNfcTagTrezor
*/
message ThpNfcTagHost {
optional bytes tag = 1; // Host's tag
}
/**
* Response: Trezor sends the Unidirectioal NFC secret.
* @next ThpCredentialRequest
* @next ThpEndRequest
*/
message ThpNfcTagTrezor {
optional bytes tag = 1; // Trezor's tag
}
/**
* Request: Host requests issuance of a new pairing credential.
* @start
* @next ThpCredentialResponse
*/
message ThpCredentialRequest {
optional bytes host_static_pubkey = 1; // Host's static public key identifying the credential.
optional bool autoconnect = 2; // Whether host wants to autoconnect without user confirmation
optional bytes credential = 3; // Host's previous credential
}
/**
* Response: Trezor issues a new pairing credential.
* @next ThpCredentialRequest
* @next ThpEndRequest
*/
message ThpCredentialResponse {
optional bytes trezor_static_pubkey = 1; // Trezor's static public key used in the handshake.
optional bytes credential = 2; // The pairing credential issued by the Trezor to the host.
}
/**
* Request: Host requests transition to the encrypted traffic phase.
* @start
* @next ThpEndResponse
*/
message ThpEndRequest {}
/**
* Response: Trezor approves transition to the encrypted traffic phase
* @end
*/
message ThpEndResponse {}
/** /**
* Only for internal use. * Only for internal use.
* @embed * @embed
@ -16,6 +205,7 @@ option (include_in_bitcoin_only) = true;
message ThpCredentialMetadata { message ThpCredentialMetadata {
option (internal_only) = true; option (internal_only) = true;
optional string host_name = 1; // Human-readable host name optional string host_name = 1; // Human-readable host name
optional bool autoconnect = 2; // Whether host is allowed to autoconnect without user confirmation
} }
/** /**

View File

@ -138,6 +138,8 @@ enum MessageType {
MessageType_DebugLinkOptigaSetSecMax = 9008 [(bitcoin_only) = true, (wire_debug_in) = true]; MessageType_DebugLinkOptigaSetSecMax = 9008 [(bitcoin_only) = true, (wire_debug_in) = true];
MessageType_DebugLinkGetGcInfo = 9009 [(bitcoin_only) = true, (wire_debug_in) = true]; MessageType_DebugLinkGetGcInfo = 9009 [(bitcoin_only) = true, (wire_debug_in) = true];
MessageType_DebugLinkGcInfo = 9010 [(bitcoin_only) = true, (wire_debug_out) = true]; MessageType_DebugLinkGcInfo = 9010 [(bitcoin_only) = true, (wire_debug_out) = true];
MessageType_DebugLinkGetPairingInfo = 9011 [(bitcoin_only) = true, (wire_debug_in) = true];
MessageType_DebugLinkPairingInfo = 9012 [(bitcoin_only) = true, (wire_debug_out) = true];
// Ethereum // Ethereum
MessageType_EthereumGetPublicKey = 450 [(wire_in) = true]; MessageType_EthereumGetPublicKey = 450 [(wire_in) = true];
@ -317,7 +319,28 @@ enum MessageType {
MessageType_SolanaTxSignature = 905 [(wire_out) = true]; MessageType_SolanaTxSignature = 905 [(wire_out) = true];
// THP // THP
reserved 1000 to 1099; // See messages-thp.proto MessageType_ThpCreateNewSession = 1000 [(bitcoin_only) = true, (wire_in) = true];
reserved 1001 to 1005; // never appeared in a release, reserved for future use
MessageType_ThpPairingRequest = 1006 [(bitcoin_only) = true];
MessageType_ThpPairingRequestApproved = 1007 [(bitcoin_only) = true];
MessageType_ThpSelectMethod = 1008 [(bitcoin_only) = true];
MessageType_ThpPairingPreparationsFinished = 1009 [(bitcoin_only) = true];
MessageType_ThpCredentialRequest = 1010 [(bitcoin_only) = true];
MessageType_ThpCredentialResponse = 1011 [(bitcoin_only) = true];
MessageType_ThpEndRequest = 1012 [(bitcoin_only) = true];
MessageType_ThpEndResponse = 1013 [(bitcoin_only) = true];
reserved 1014 to 1015;
MessageType_ThpCodeEntryCommitment = 1016 [(bitcoin_only) = true];
MessageType_ThpCodeEntryChallenge = 1017 [(bitcoin_only) = true];
MessageType_ThpCodeEntryCpaceTrezor = 1018 [(bitcoin_only) = true];
MessageType_ThpCodeEntryCpaceHostTag = 1019 [(bitcoin_only) = true];
MessageType_ThpCodeEntrySecret = 1020 [(bitcoin_only) = true];
reserved 1021 to 1023;
MessageType_ThpQrCodeTag = 1024 [(bitcoin_only) = true];
MessageType_ThpQrCodeSecret = 1025 [(bitcoin_only) = true];
reserved 1026 to 1031;
MessageType_ThpNfcTagHost = 1032 [(bitcoin_only) = true];
MessageType_ThpNfcTagTrezor = 1033 [(bitcoin_only) = true];
// Nostr // Nostr
MessageType_NostrGetPubkey = 2001 [(wire_in) = true]; MessageType_NostrGetPubkey = 2001 [(wire_in) = true];

View File

@ -386,10 +386,12 @@ Q(workflow_handlers)
Q(writers) Q(writers)
#if USE_THP #if USE_THP
Q(ThpPairingMethod)
Q(apps.thp) Q(apps.thp)
Q(apps.thp.credential_manager) Q(apps.thp.credential_manager)
Q(credential_manager) Q(credential_manager)
Q(thp) Q(thp)
Q(trezor.enums.ThpPairingMethod)
#endif #endif
#if !BITCOIN_ONLY #if !BITCOIN_ONLY

View File

@ -82,6 +82,24 @@ SignIdentity = 53
SignedIdentity = 54 SignedIdentity = 54
GetECDHSessionKey = 61 GetECDHSessionKey = 61
ECDHSessionKey = 62 ECDHSessionKey = 62
ThpCreateNewSession = 1000
ThpPairingRequest = 1006
ThpPairingRequestApproved = 1007
ThpSelectMethod = 1008
ThpPairingPreparationsFinished = 1009
ThpCredentialRequest = 1010
ThpCredentialResponse = 1011
ThpEndRequest = 1012
ThpEndResponse = 1013
ThpCodeEntryCommitment = 1016
ThpCodeEntryChallenge = 1017
ThpCodeEntryCpaceTrezor = 1018
ThpCodeEntryCpaceHostTag = 1019
ThpCodeEntrySecret = 1020
ThpQrCodeTag = 1024
ThpQrCodeSecret = 1025
ThpNfcTagHost = 1032
ThpNfcTagTrezor = 1033
BenchmarkListNames = 9100 BenchmarkListNames = 9100
BenchmarkNames = 9101 BenchmarkNames = 9101
BenchmarkRun = 9102 BenchmarkRun = 9102
@ -105,6 +123,8 @@ if __debug__:
DebugLinkOptigaSetSecMax = 9008 DebugLinkOptigaSetSecMax = 9008
DebugLinkGetGcInfo = 9009 DebugLinkGetGcInfo = 9009
DebugLinkGcInfo = 9010 DebugLinkGcInfo = 9010
DebugLinkGetPairingInfo = 9011
DebugLinkPairingInfo = 9012
if not utils.BITCOIN_ONLY: if not utils.BITCOIN_ONLY:
SetU2FCounter = 63 SetU2FCounter = 63
GetNextU2FCounter = 80 GetNextU2FCounter = 80

View File

@ -0,0 +1,8 @@
# Automatically generated by pb2py
# fmt: off
# isort:skip_file
SkipPairing = 1
CodeEntry = 2
QrCode = 3
NFC = 4

View File

@ -337,6 +337,12 @@ if TYPE_CHECKING:
Nay = 1 Nay = 1
Pass = 2 Pass = 2
class ThpPairingMethod(IntEnum):
SkipPairing = 1
CodeEntry = 2
QrCode = 3
NFC = 4
class MessageType(IntEnum): class MessageType(IntEnum):
Initialize = 0 Initialize = 0
Ping = 1 Ping = 1
@ -440,6 +446,8 @@ if TYPE_CHECKING:
DebugLinkOptigaSetSecMax = 9008 DebugLinkOptigaSetSecMax = 9008
DebugLinkGetGcInfo = 9009 DebugLinkGetGcInfo = 9009
DebugLinkGcInfo = 9010 DebugLinkGcInfo = 9010
DebugLinkGetPairingInfo = 9011
DebugLinkPairingInfo = 9012
EthereumGetPublicKey = 450 EthereumGetPublicKey = 450
EthereumPublicKey = 451 EthereumPublicKey = 451
EthereumGetAddress = 56 EthereumGetAddress = 56
@ -574,6 +582,24 @@ if TYPE_CHECKING:
SolanaAddress = 903 SolanaAddress = 903
SolanaSignTx = 904 SolanaSignTx = 904
SolanaTxSignature = 905 SolanaTxSignature = 905
ThpCreateNewSession = 1000
ThpPairingRequest = 1006
ThpPairingRequestApproved = 1007
ThpSelectMethod = 1008
ThpPairingPreparationsFinished = 1009
ThpCredentialRequest = 1010
ThpCredentialResponse = 1011
ThpEndRequest = 1012
ThpEndResponse = 1013
ThpCodeEntryCommitment = 1016
ThpCodeEntryChallenge = 1017
ThpCodeEntryCpaceTrezor = 1018
ThpCodeEntryCpaceHostTag = 1019
ThpCodeEntrySecret = 1020
ThpQrCodeTag = 1024
ThpQrCodeSecret = 1025
ThpNfcTagHost = 1032
ThpNfcTagTrezor = 1033
NostrGetPubkey = 2001 NostrGetPubkey = 2001
NostrPubkey = 2002 NostrPubkey = 2002
NostrSignEvent = 2003 NostrSignEvent = 2003

View File

@ -65,6 +65,7 @@ if TYPE_CHECKING:
from trezor.enums import StellarSignerType # noqa: F401 from trezor.enums import StellarSignerType # noqa: F401
from trezor.enums import TezosBallotType # noqa: F401 from trezor.enums import TezosBallotType # noqa: F401
from trezor.enums import TezosContractType # noqa: F401 from trezor.enums import TezosContractType # noqa: F401
from trezor.enums import ThpPairingMethod # noqa: F401
from trezor.enums import WordRequestType # noqa: F401 from trezor.enums import WordRequestType # noqa: F401
class BenchmarkListNames(protobuf.MessageType): class BenchmarkListNames(protobuf.MessageType):
@ -2755,6 +2756,62 @@ 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 DebugLinkToggleThpPairingDialog(protobuf.MessageType):
channel_id: "bytes | None"
show_dialog: "bool"
def __init__(
self,
*,
channel_id: "bytes | None" = None,
show_dialog: "bool | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkToggleThpPairingDialog"]:
return isinstance(msg, cls)
class DebugLinkStop(protobuf.MessageType): class DebugLinkStop(protobuf.MessageType):
@classmethod @classmethod
@ -6111,7 +6168,61 @@ if TYPE_CHECKING:
def is_type_of(cls, msg: Any) -> TypeGuard["TezosManagerTransfer"]: def is_type_of(cls, msg: Any) -> TypeGuard["TezosManagerTransfer"]:
return isinstance(msg, cls) return isinstance(msg, cls)
class ThpCredentialMetadata(protobuf.MessageType): class ThpDeviceProperties(protobuf.MessageType):
internal_model: "str | None"
model_variant: "int | None"
protocol_version_major: "int | None"
protocol_version_minor: "int | None"
pairing_methods: "list[ThpPairingMethod]"
def __init__(
self,
*,
pairing_methods: "list[ThpPairingMethod] | None" = None,
internal_model: "str | None" = None,
model_variant: "int | None" = None,
protocol_version_major: "int | None" = None,
protocol_version_minor: "int | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpDeviceProperties"]:
return isinstance(msg, cls)
class ThpHandshakeCompletionReqNoisePayload(protobuf.MessageType):
host_pairing_credential: "bytes | None"
def __init__(
self,
*,
host_pairing_credential: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpHandshakeCompletionReqNoisePayload"]:
return isinstance(msg, cls)
class ThpCreateNewSession(protobuf.MessageType):
passphrase: "str | None"
on_device: "bool | None"
derive_cardano: "bool | None"
def __init__(
self,
*,
passphrase: "str | None" = None,
on_device: "bool | None" = None,
derive_cardano: "bool | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCreateNewSession"]:
return isinstance(msg, cls)
class ThpPairingRequest(protobuf.MessageType):
host_name: "str | None" host_name: "str | None"
def __init__( def __init__(
@ -6121,6 +6232,222 @@ if TYPE_CHECKING:
) -> None: ) -> None:
pass pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpPairingRequest"]:
return isinstance(msg, cls)
class ThpPairingRequestApproved(protobuf.MessageType):
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpPairingRequestApproved"]:
return isinstance(msg, cls)
class ThpSelectMethod(protobuf.MessageType):
selected_pairing_method: "ThpPairingMethod | None"
def __init__(
self,
*,
selected_pairing_method: "ThpPairingMethod | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpSelectMethod"]:
return isinstance(msg, cls)
class ThpPairingPreparationsFinished(protobuf.MessageType):
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpPairingPreparationsFinished"]:
return isinstance(msg, cls)
class ThpCodeEntryCommitment(protobuf.MessageType):
commitment: "bytes | None"
def __init__(
self,
*,
commitment: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCodeEntryCommitment"]:
return isinstance(msg, cls)
class ThpCodeEntryChallenge(protobuf.MessageType):
challenge: "bytes | None"
def __init__(
self,
*,
challenge: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCodeEntryChallenge"]:
return isinstance(msg, cls)
class ThpCodeEntryCpaceTrezor(protobuf.MessageType):
cpace_trezor_public_key: "bytes | None"
def __init__(
self,
*,
cpace_trezor_public_key: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCodeEntryCpaceTrezor"]:
return isinstance(msg, cls)
class ThpCodeEntryCpaceHostTag(protobuf.MessageType):
cpace_host_public_key: "bytes | None"
tag: "bytes | None"
def __init__(
self,
*,
cpace_host_public_key: "bytes | None" = None,
tag: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCodeEntryCpaceHostTag"]:
return isinstance(msg, cls)
class ThpCodeEntrySecret(protobuf.MessageType):
secret: "bytes | None"
def __init__(
self,
*,
secret: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCodeEntrySecret"]:
return isinstance(msg, cls)
class ThpQrCodeTag(protobuf.MessageType):
tag: "bytes | None"
def __init__(
self,
*,
tag: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpQrCodeTag"]:
return isinstance(msg, cls)
class ThpQrCodeSecret(protobuf.MessageType):
secret: "bytes | None"
def __init__(
self,
*,
secret: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpQrCodeSecret"]:
return isinstance(msg, cls)
class ThpNfcTagHost(protobuf.MessageType):
tag: "bytes | None"
def __init__(
self,
*,
tag: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpNfcTagHost"]:
return isinstance(msg, cls)
class ThpNfcTagTrezor(protobuf.MessageType):
tag: "bytes | None"
def __init__(
self,
*,
tag: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpNfcTagTrezor"]:
return isinstance(msg, cls)
class ThpCredentialRequest(protobuf.MessageType):
host_static_pubkey: "bytes | None"
autoconnect: "bool | None"
credential: "bytes | None"
def __init__(
self,
*,
host_static_pubkey: "bytes | None" = None,
autoconnect: "bool | None" = None,
credential: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCredentialRequest"]:
return isinstance(msg, cls)
class ThpCredentialResponse(protobuf.MessageType):
trezor_static_pubkey: "bytes | None"
credential: "bytes | None"
def __init__(
self,
*,
trezor_static_pubkey: "bytes | None" = None,
credential: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCredentialResponse"]:
return isinstance(msg, cls)
class ThpEndRequest(protobuf.MessageType):
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpEndRequest"]:
return isinstance(msg, cls)
class ThpEndResponse(protobuf.MessageType):
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpEndResponse"]:
return isinstance(msg, cls)
class ThpCredentialMetadata(protobuf.MessageType):
host_name: "str | None"
autoconnect: "bool | None"
def __init__(
self,
*,
host_name: "str | None" = None,
autoconnect: "bool | None" = None,
) -> None:
pass
@classmethod @classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCredentialMetadata"]: def is_type_of(cls, msg: Any) -> TypeGuard["ThpCredentialMetadata"]:
return isinstance(msg, cls) return isinstance(msg, cls)

View File

@ -3,15 +3,15 @@ Q := @
endif endif
SKIPPED_MESSAGES := Cardano DebugMonero Eos Monero Ontology Ripple SdProtect Tezos WebAuthn \ SKIPPED_MESSAGES := Cardano DebugMonero Eos Monero Ontology Ripple SdProtect Tezos WebAuthn \
DebugLinkGetGcInfo DebugLinkGcInfoItem DebugLinkGcInfo \ DebugLinkGetPairingInfo DebugLinkPairingInfo DebugLinkGetGcInfo DebugLinkGcInfoItem \
DebugLinkRecordScreen DebugLinkEraseSdCard DebugLinkWatchLayout \ DebugLinkGcInfo DebugLinkRecordScreen DebugLinkEraseSdCard DebugLinkWatchLayout \
DebugLinkLayout DebugLinkResetDebugEvents GetNonce \ DebugLinkLayout DebugLinkResetDebugEvents 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 DataChunkRequest DataChunkAck \ ChangeLanguage DataChunkRequest DataChunkAck Thp \
SetBrightness DebugLinkOptigaSetSecMax \ SetBrightness DebugLinkOptigaSetSecMax \
BenchmarkListNames BenchmarkRun BenchmarkNames BenchmarkResult \ BenchmarkListNames BenchmarkRun BenchmarkNames BenchmarkResult \
NostrGetPubkey NostrPubkey NostrSignEvent NostrEventSignature \ NostrGetPubkey NostrPubkey NostrSignEvent NostrEventSignature \

View File

@ -387,6 +387,13 @@ class TezosBallotType(IntEnum):
Pass = 2 Pass = 2
class ThpPairingMethod(IntEnum):
SkipPairing = 1
CodeEntry = 2
QrCode = 3
NFC = 4
class MessageType(IntEnum): class MessageType(IntEnum):
Initialize = 0 Initialize = 0
Ping = 1 Ping = 1
@ -490,6 +497,8 @@ class MessageType(IntEnum):
DebugLinkOptigaSetSecMax = 9008 DebugLinkOptigaSetSecMax = 9008
DebugLinkGetGcInfo = 9009 DebugLinkGetGcInfo = 9009
DebugLinkGcInfo = 9010 DebugLinkGcInfo = 9010
DebugLinkGetPairingInfo = 9011
DebugLinkPairingInfo = 9012
EthereumGetPublicKey = 450 EthereumGetPublicKey = 450
EthereumPublicKey = 451 EthereumPublicKey = 451
EthereumGetAddress = 56 EthereumGetAddress = 56
@ -624,6 +633,24 @@ class MessageType(IntEnum):
SolanaAddress = 903 SolanaAddress = 903
SolanaSignTx = 904 SolanaSignTx = 904
SolanaTxSignature = 905 SolanaTxSignature = 905
ThpCreateNewSession = 1000
ThpPairingRequest = 1006
ThpPairingRequestApproved = 1007
ThpSelectMethod = 1008
ThpPairingPreparationsFinished = 1009
ThpCredentialRequest = 1010
ThpCredentialResponse = 1011
ThpEndRequest = 1012
ThpEndResponse = 1013
ThpCodeEntryCommitment = 1016
ThpCodeEntryChallenge = 1017
ThpCodeEntryCpaceTrezor = 1018
ThpCodeEntryCpaceHostTag = 1019
ThpCodeEntrySecret = 1020
ThpQrCodeTag = 1024
ThpQrCodeSecret = 1025
ThpNfcTagHost = 1032
ThpNfcTagTrezor = 1033
NostrGetPubkey = 2001 NostrGetPubkey = 2001
NostrPubkey = 2002 NostrPubkey = 2002
NostrSignEvent = 2003 NostrSignEvent = 2003
@ -3974,6 +4001,69 @@ class DebugLinkState(protobuf.MessageType):
self.mnemonic_type = mnemonic_type self.mnemonic_type = mnemonic_type
class DebugLinkGetPairingInfo(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 9011
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 = 9012
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 DebugLinkToggleThpPairingDialog(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None
FIELDS = {
1: protobuf.Field("channel_id", "bytes", repeated=False, required=False, default=None),
2: protobuf.Field("show_dialog", "bool", repeated=False, required=False, default=False),
}
def __init__(
self,
*,
channel_id: Optional["bytes"] = None,
show_dialog: Optional["bool"] = False,
) -> None:
self.channel_id = channel_id
self.show_dialog = show_dialog
class DebugLinkStop(protobuf.MessageType): class DebugLinkStop(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 103 MESSAGE_WIRE_TYPE = 103
@ -7786,8 +7876,68 @@ class TezosManagerTransfer(protobuf.MessageType):
self.amount = amount self.amount = amount
class ThpCredentialMetadata(protobuf.MessageType): class ThpDeviceProperties(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None MESSAGE_WIRE_TYPE = None
FIELDS = {
1: protobuf.Field("internal_model", "string", repeated=False, required=False, default=None),
2: protobuf.Field("model_variant", "uint32", repeated=False, required=False, default=None),
3: protobuf.Field("protocol_version_major", "uint32", repeated=False, required=False, default=None),
4: protobuf.Field("protocol_version_minor", "uint32", repeated=False, required=False, default=None),
5: protobuf.Field("pairing_methods", "ThpPairingMethod", repeated=True, required=False, default=None),
}
def __init__(
self,
*,
pairing_methods: Optional[Sequence["ThpPairingMethod"]] = None,
internal_model: Optional["str"] = None,
model_variant: Optional["int"] = None,
protocol_version_major: Optional["int"] = None,
protocol_version_minor: Optional["int"] = None,
) -> None:
self.pairing_methods: Sequence["ThpPairingMethod"] = pairing_methods if pairing_methods is not None else []
self.internal_model = internal_model
self.model_variant = model_variant
self.protocol_version_major = protocol_version_major
self.protocol_version_minor = protocol_version_minor
class ThpHandshakeCompletionReqNoisePayload(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None
FIELDS = {
1: protobuf.Field("host_pairing_credential", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
host_pairing_credential: Optional["bytes"] = None,
) -> None:
self.host_pairing_credential = host_pairing_credential
class ThpCreateNewSession(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1000
FIELDS = {
1: protobuf.Field("passphrase", "string", repeated=False, required=False, default=None),
2: protobuf.Field("on_device", "bool", repeated=False, required=False, default=None),
3: protobuf.Field("derive_cardano", "bool", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
passphrase: Optional["str"] = None,
on_device: Optional["bool"] = None,
derive_cardano: Optional["bool"] = None,
) -> None:
self.passphrase = passphrase
self.on_device = on_device
self.derive_cardano = derive_cardano
class ThpPairingRequest(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1006
FIELDS = { FIELDS = {
1: protobuf.Field("host_name", "string", repeated=False, required=False, default=None), 1: protobuf.Field("host_name", "string", repeated=False, required=False, default=None),
} }
@ -7800,6 +7950,219 @@ class ThpCredentialMetadata(protobuf.MessageType):
self.host_name = host_name self.host_name = host_name
class ThpPairingRequestApproved(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1007
class ThpSelectMethod(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1008
FIELDS = {
1: protobuf.Field("selected_pairing_method", "ThpPairingMethod", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
selected_pairing_method: Optional["ThpPairingMethod"] = None,
) -> None:
self.selected_pairing_method = selected_pairing_method
class ThpPairingPreparationsFinished(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1009
class ThpCodeEntryCommitment(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1016
FIELDS = {
1: protobuf.Field("commitment", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
commitment: Optional["bytes"] = None,
) -> None:
self.commitment = commitment
class ThpCodeEntryChallenge(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1017
FIELDS = {
1: protobuf.Field("challenge", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
challenge: Optional["bytes"] = None,
) -> None:
self.challenge = challenge
class ThpCodeEntryCpaceTrezor(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1018
FIELDS = {
1: protobuf.Field("cpace_trezor_public_key", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
cpace_trezor_public_key: Optional["bytes"] = None,
) -> None:
self.cpace_trezor_public_key = cpace_trezor_public_key
class ThpCodeEntryCpaceHostTag(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1019
FIELDS = {
1: protobuf.Field("cpace_host_public_key", "bytes", repeated=False, required=False, default=None),
2: protobuf.Field("tag", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
cpace_host_public_key: Optional["bytes"] = None,
tag: Optional["bytes"] = None,
) -> None:
self.cpace_host_public_key = cpace_host_public_key
self.tag = tag
class ThpCodeEntrySecret(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1020
FIELDS = {
1: protobuf.Field("secret", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
secret: Optional["bytes"] = None,
) -> None:
self.secret = secret
class ThpQrCodeTag(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1024
FIELDS = {
1: protobuf.Field("tag", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
tag: Optional["bytes"] = None,
) -> None:
self.tag = tag
class ThpQrCodeSecret(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1025
FIELDS = {
1: protobuf.Field("secret", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
secret: Optional["bytes"] = None,
) -> None:
self.secret = secret
class ThpNfcTagHost(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1032
FIELDS = {
1: protobuf.Field("tag", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
tag: Optional["bytes"] = None,
) -> None:
self.tag = tag
class ThpNfcTagTrezor(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1033
FIELDS = {
1: protobuf.Field("tag", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
tag: Optional["bytes"] = None,
) -> None:
self.tag = tag
class ThpCredentialRequest(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1010
FIELDS = {
1: protobuf.Field("host_static_pubkey", "bytes", repeated=False, required=False, default=None),
2: protobuf.Field("autoconnect", "bool", repeated=False, required=False, default=None),
3: protobuf.Field("credential", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
host_static_pubkey: Optional["bytes"] = None,
autoconnect: Optional["bool"] = None,
credential: Optional["bytes"] = None,
) -> None:
self.host_static_pubkey = host_static_pubkey
self.autoconnect = autoconnect
self.credential = credential
class ThpCredentialResponse(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1011
FIELDS = {
1: protobuf.Field("trezor_static_pubkey", "bytes", repeated=False, required=False, default=None),
2: protobuf.Field("credential", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
trezor_static_pubkey: Optional["bytes"] = None,
credential: Optional["bytes"] = None,
) -> None:
self.trezor_static_pubkey = trezor_static_pubkey
self.credential = credential
class ThpEndRequest(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1012
class ThpEndResponse(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1013
class ThpCredentialMetadata(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None
FIELDS = {
1: protobuf.Field("host_name", "string", repeated=False, required=False, default=None),
2: protobuf.Field("autoconnect", "bool", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
host_name: Optional["str"] = None,
autoconnect: Optional["bool"] = None,
) -> None:
self.host_name = host_name
self.autoconnect = autoconnect
class ThpPairingCredential(protobuf.MessageType): class ThpPairingCredential(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None MESSAGE_WIRE_TYPE = None
FIELDS = { FIELDS = {

View File

@ -85,6 +85,26 @@ trezor_message_impl! {
DebugLinkOptigaSetSecMax => MessageType_DebugLinkOptigaSetSecMax, DebugLinkOptigaSetSecMax => MessageType_DebugLinkOptigaSetSecMax,
DebugLinkGetGcInfo => MessageType_DebugLinkGetGcInfo, DebugLinkGetGcInfo => MessageType_DebugLinkGetGcInfo,
DebugLinkGcInfo => MessageType_DebugLinkGcInfo, DebugLinkGcInfo => MessageType_DebugLinkGcInfo,
DebugLinkGetPairingInfo => MessageType_DebugLinkGetPairingInfo,
DebugLinkPairingInfo => MessageType_DebugLinkPairingInfo,
ThpCreateNewSession => MessageType_ThpCreateNewSession,
ThpPairingRequest => MessageType_ThpPairingRequest,
ThpPairingRequestApproved => MessageType_ThpPairingRequestApproved,
ThpSelectMethod => MessageType_ThpSelectMethod,
ThpPairingPreparationsFinished => MessageType_ThpPairingPreparationsFinished,
ThpCredentialRequest => MessageType_ThpCredentialRequest,
ThpCredentialResponse => MessageType_ThpCredentialResponse,
ThpEndRequest => MessageType_ThpEndRequest,
ThpEndResponse => MessageType_ThpEndResponse,
ThpCodeEntryCommitment => MessageType_ThpCodeEntryCommitment,
ThpCodeEntryChallenge => MessageType_ThpCodeEntryChallenge,
ThpCodeEntryCpaceTrezor => MessageType_ThpCodeEntryCpaceTrezor,
ThpCodeEntryCpaceHostTag => MessageType_ThpCodeEntryCpaceHostTag,
ThpCodeEntrySecret => MessageType_ThpCodeEntrySecret,
ThpQrCodeTag => MessageType_ThpQrCodeTag,
ThpQrCodeSecret => MessageType_ThpQrCodeSecret,
ThpNfcTagHost => MessageType_ThpNfcTagHost,
ThpNfcTagTrezor => MessageType_ThpNfcTagTrezor,
BenchmarkListNames => MessageType_BenchmarkListNames, BenchmarkListNames => MessageType_BenchmarkListNames,
BenchmarkNames => MessageType_BenchmarkNames, BenchmarkNames => MessageType_BenchmarkNames,
BenchmarkRun => MessageType_BenchmarkRun, BenchmarkRun => MessageType_BenchmarkRun,

View File

@ -231,6 +231,10 @@ pub enum MessageType {
MessageType_DebugLinkGetGcInfo = 9009, MessageType_DebugLinkGetGcInfo = 9009,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkGcInfo) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkGcInfo)
MessageType_DebugLinkGcInfo = 9010, MessageType_DebugLinkGcInfo = 9010,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkGetPairingInfo)
MessageType_DebugLinkGetPairingInfo = 9011,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkPairingInfo)
MessageType_DebugLinkPairingInfo = 9012,
// @@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)
@ -499,6 +503,42 @@ pub enum MessageType {
MessageType_SolanaSignTx = 904, MessageType_SolanaSignTx = 904,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_SolanaTxSignature) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_SolanaTxSignature)
MessageType_SolanaTxSignature = 905, MessageType_SolanaTxSignature = 905,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCreateNewSession)
MessageType_ThpCreateNewSession = 1000,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpPairingRequest)
MessageType_ThpPairingRequest = 1006,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpPairingRequestApproved)
MessageType_ThpPairingRequestApproved = 1007,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpSelectMethod)
MessageType_ThpSelectMethod = 1008,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpPairingPreparationsFinished)
MessageType_ThpPairingPreparationsFinished = 1009,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCredentialRequest)
MessageType_ThpCredentialRequest = 1010,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCredentialResponse)
MessageType_ThpCredentialResponse = 1011,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpEndRequest)
MessageType_ThpEndRequest = 1012,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpEndResponse)
MessageType_ThpEndResponse = 1013,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCodeEntryCommitment)
MessageType_ThpCodeEntryCommitment = 1016,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCodeEntryChallenge)
MessageType_ThpCodeEntryChallenge = 1017,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCodeEntryCpaceTrezor)
MessageType_ThpCodeEntryCpaceTrezor = 1018,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCodeEntryCpaceHostTag)
MessageType_ThpCodeEntryCpaceHostTag = 1019,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCodeEntrySecret)
MessageType_ThpCodeEntrySecret = 1020,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpQrCodeTag)
MessageType_ThpQrCodeTag = 1024,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpQrCodeSecret)
MessageType_ThpQrCodeSecret = 1025,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpNfcTagHost)
MessageType_ThpNfcTagHost = 1032,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpNfcTagTrezor)
MessageType_ThpNfcTagTrezor = 1033,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_NostrGetPubkey) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_NostrGetPubkey)
MessageType_NostrGetPubkey = 2001, MessageType_NostrGetPubkey = 2001,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_NostrPubkey) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_NostrPubkey)
@ -628,6 +668,8 @@ impl ::protobuf::Enum for MessageType {
9008 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax), 9008 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax),
9009 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetGcInfo), 9009 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetGcInfo),
9010 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGcInfo), 9010 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGcInfo),
9011 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetPairingInfo),
9012 => ::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),
@ -762,6 +804,24 @@ impl ::protobuf::Enum for MessageType {
903 => ::std::option::Option::Some(MessageType::MessageType_SolanaAddress), 903 => ::std::option::Option::Some(MessageType::MessageType_SolanaAddress),
904 => ::std::option::Option::Some(MessageType::MessageType_SolanaSignTx), 904 => ::std::option::Option::Some(MessageType::MessageType_SolanaSignTx),
905 => ::std::option::Option::Some(MessageType::MessageType_SolanaTxSignature), 905 => ::std::option::Option::Some(MessageType::MessageType_SolanaTxSignature),
1000 => ::std::option::Option::Some(MessageType::MessageType_ThpCreateNewSession),
1006 => ::std::option::Option::Some(MessageType::MessageType_ThpPairingRequest),
1007 => ::std::option::Option::Some(MessageType::MessageType_ThpPairingRequestApproved),
1008 => ::std::option::Option::Some(MessageType::MessageType_ThpSelectMethod),
1009 => ::std::option::Option::Some(MessageType::MessageType_ThpPairingPreparationsFinished),
1010 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialRequest),
1011 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialResponse),
1012 => ::std::option::Option::Some(MessageType::MessageType_ThpEndRequest),
1013 => ::std::option::Option::Some(MessageType::MessageType_ThpEndResponse),
1016 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCommitment),
1017 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryChallenge),
1018 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCpaceTrezor),
1019 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCpaceHostTag),
1020 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntrySecret),
1024 => ::std::option::Option::Some(MessageType::MessageType_ThpQrCodeTag),
1025 => ::std::option::Option::Some(MessageType::MessageType_ThpQrCodeSecret),
1032 => ::std::option::Option::Some(MessageType::MessageType_ThpNfcTagHost),
1033 => ::std::option::Option::Some(MessageType::MessageType_ThpNfcTagTrezor),
2001 => ::std::option::Option::Some(MessageType::MessageType_NostrGetPubkey), 2001 => ::std::option::Option::Some(MessageType::MessageType_NostrGetPubkey),
2002 => ::std::option::Option::Some(MessageType::MessageType_NostrPubkey), 2002 => ::std::option::Option::Some(MessageType::MessageType_NostrPubkey),
2003 => ::std::option::Option::Some(MessageType::MessageType_NostrSignEvent), 2003 => ::std::option::Option::Some(MessageType::MessageType_NostrSignEvent),
@ -878,6 +938,8 @@ impl ::protobuf::Enum for MessageType {
"MessageType_DebugLinkOptigaSetSecMax" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax), "MessageType_DebugLinkOptigaSetSecMax" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax),
"MessageType_DebugLinkGetGcInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetGcInfo), "MessageType_DebugLinkGetGcInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetGcInfo),
"MessageType_DebugLinkGcInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGcInfo), "MessageType_DebugLinkGcInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGcInfo),
"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),
@ -1012,6 +1074,24 @@ impl ::protobuf::Enum for MessageType {
"MessageType_SolanaAddress" => ::std::option::Option::Some(MessageType::MessageType_SolanaAddress), "MessageType_SolanaAddress" => ::std::option::Option::Some(MessageType::MessageType_SolanaAddress),
"MessageType_SolanaSignTx" => ::std::option::Option::Some(MessageType::MessageType_SolanaSignTx), "MessageType_SolanaSignTx" => ::std::option::Option::Some(MessageType::MessageType_SolanaSignTx),
"MessageType_SolanaTxSignature" => ::std::option::Option::Some(MessageType::MessageType_SolanaTxSignature), "MessageType_SolanaTxSignature" => ::std::option::Option::Some(MessageType::MessageType_SolanaTxSignature),
"MessageType_ThpCreateNewSession" => ::std::option::Option::Some(MessageType::MessageType_ThpCreateNewSession),
"MessageType_ThpPairingRequest" => ::std::option::Option::Some(MessageType::MessageType_ThpPairingRequest),
"MessageType_ThpPairingRequestApproved" => ::std::option::Option::Some(MessageType::MessageType_ThpPairingRequestApproved),
"MessageType_ThpSelectMethod" => ::std::option::Option::Some(MessageType::MessageType_ThpSelectMethod),
"MessageType_ThpPairingPreparationsFinished" => ::std::option::Option::Some(MessageType::MessageType_ThpPairingPreparationsFinished),
"MessageType_ThpCredentialRequest" => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialRequest),
"MessageType_ThpCredentialResponse" => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialResponse),
"MessageType_ThpEndRequest" => ::std::option::Option::Some(MessageType::MessageType_ThpEndRequest),
"MessageType_ThpEndResponse" => ::std::option::Option::Some(MessageType::MessageType_ThpEndResponse),
"MessageType_ThpCodeEntryCommitment" => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCommitment),
"MessageType_ThpCodeEntryChallenge" => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryChallenge),
"MessageType_ThpCodeEntryCpaceTrezor" => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCpaceTrezor),
"MessageType_ThpCodeEntryCpaceHostTag" => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCpaceHostTag),
"MessageType_ThpCodeEntrySecret" => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntrySecret),
"MessageType_ThpQrCodeTag" => ::std::option::Option::Some(MessageType::MessageType_ThpQrCodeTag),
"MessageType_ThpQrCodeSecret" => ::std::option::Option::Some(MessageType::MessageType_ThpQrCodeSecret),
"MessageType_ThpNfcTagHost" => ::std::option::Option::Some(MessageType::MessageType_ThpNfcTagHost),
"MessageType_ThpNfcTagTrezor" => ::std::option::Option::Some(MessageType::MessageType_ThpNfcTagTrezor),
"MessageType_NostrGetPubkey" => ::std::option::Option::Some(MessageType::MessageType_NostrGetPubkey), "MessageType_NostrGetPubkey" => ::std::option::Option::Some(MessageType::MessageType_NostrGetPubkey),
"MessageType_NostrPubkey" => ::std::option::Option::Some(MessageType::MessageType_NostrPubkey), "MessageType_NostrPubkey" => ::std::option::Option::Some(MessageType::MessageType_NostrPubkey),
"MessageType_NostrSignEvent" => ::std::option::Option::Some(MessageType::MessageType_NostrSignEvent), "MessageType_NostrSignEvent" => ::std::option::Option::Some(MessageType::MessageType_NostrSignEvent),
@ -1127,6 +1207,8 @@ impl ::protobuf::Enum for MessageType {
MessageType::MessageType_DebugLinkOptigaSetSecMax, MessageType::MessageType_DebugLinkOptigaSetSecMax,
MessageType::MessageType_DebugLinkGetGcInfo, MessageType::MessageType_DebugLinkGetGcInfo,
MessageType::MessageType_DebugLinkGcInfo, MessageType::MessageType_DebugLinkGcInfo,
MessageType::MessageType_DebugLinkGetPairingInfo,
MessageType::MessageType_DebugLinkPairingInfo,
MessageType::MessageType_EthereumGetPublicKey, MessageType::MessageType_EthereumGetPublicKey,
MessageType::MessageType_EthereumPublicKey, MessageType::MessageType_EthereumPublicKey,
MessageType::MessageType_EthereumGetAddress, MessageType::MessageType_EthereumGetAddress,
@ -1261,6 +1343,24 @@ impl ::protobuf::Enum for MessageType {
MessageType::MessageType_SolanaAddress, MessageType::MessageType_SolanaAddress,
MessageType::MessageType_SolanaSignTx, MessageType::MessageType_SolanaSignTx,
MessageType::MessageType_SolanaTxSignature, MessageType::MessageType_SolanaTxSignature,
MessageType::MessageType_ThpCreateNewSession,
MessageType::MessageType_ThpPairingRequest,
MessageType::MessageType_ThpPairingRequestApproved,
MessageType::MessageType_ThpSelectMethod,
MessageType::MessageType_ThpPairingPreparationsFinished,
MessageType::MessageType_ThpCredentialRequest,
MessageType::MessageType_ThpCredentialResponse,
MessageType::MessageType_ThpEndRequest,
MessageType::MessageType_ThpEndResponse,
MessageType::MessageType_ThpCodeEntryCommitment,
MessageType::MessageType_ThpCodeEntryChallenge,
MessageType::MessageType_ThpCodeEntryCpaceTrezor,
MessageType::MessageType_ThpCodeEntryCpaceHostTag,
MessageType::MessageType_ThpCodeEntrySecret,
MessageType::MessageType_ThpQrCodeTag,
MessageType::MessageType_ThpQrCodeSecret,
MessageType::MessageType_ThpNfcTagHost,
MessageType::MessageType_ThpNfcTagTrezor,
MessageType::MessageType_NostrGetPubkey, MessageType::MessageType_NostrGetPubkey,
MessageType::MessageType_NostrPubkey, MessageType::MessageType_NostrPubkey,
MessageType::MessageType_NostrSignEvent, MessageType::MessageType_NostrSignEvent,
@ -1382,148 +1482,168 @@ impl ::protobuf::EnumFull for MessageType {
MessageType::MessageType_DebugLinkOptigaSetSecMax => 99, MessageType::MessageType_DebugLinkOptigaSetSecMax => 99,
MessageType::MessageType_DebugLinkGetGcInfo => 100, MessageType::MessageType_DebugLinkGetGcInfo => 100,
MessageType::MessageType_DebugLinkGcInfo => 101, MessageType::MessageType_DebugLinkGcInfo => 101,
MessageType::MessageType_EthereumGetPublicKey => 102, MessageType::MessageType_DebugLinkGetPairingInfo => 102,
MessageType::MessageType_EthereumPublicKey => 103, MessageType::MessageType_DebugLinkPairingInfo => 103,
MessageType::MessageType_EthereumGetAddress => 104, MessageType::MessageType_EthereumGetPublicKey => 104,
MessageType::MessageType_EthereumAddress => 105, MessageType::MessageType_EthereumPublicKey => 105,
MessageType::MessageType_EthereumSignTx => 106, MessageType::MessageType_EthereumGetAddress => 106,
MessageType::MessageType_EthereumSignTxEIP1559 => 107, MessageType::MessageType_EthereumAddress => 107,
MessageType::MessageType_EthereumTxRequest => 108, MessageType::MessageType_EthereumSignTx => 108,
MessageType::MessageType_EthereumTxAck => 109, MessageType::MessageType_EthereumSignTxEIP1559 => 109,
MessageType::MessageType_EthereumSignMessage => 110, MessageType::MessageType_EthereumTxRequest => 110,
MessageType::MessageType_EthereumVerifyMessage => 111, MessageType::MessageType_EthereumTxAck => 111,
MessageType::MessageType_EthereumMessageSignature => 112, MessageType::MessageType_EthereumSignMessage => 112,
MessageType::MessageType_EthereumSignTypedData => 113, MessageType::MessageType_EthereumVerifyMessage => 113,
MessageType::MessageType_EthereumTypedDataStructRequest => 114, MessageType::MessageType_EthereumMessageSignature => 114,
MessageType::MessageType_EthereumTypedDataStructAck => 115, MessageType::MessageType_EthereumSignTypedData => 115,
MessageType::MessageType_EthereumTypedDataValueRequest => 116, MessageType::MessageType_EthereumTypedDataStructRequest => 116,
MessageType::MessageType_EthereumTypedDataValueAck => 117, MessageType::MessageType_EthereumTypedDataStructAck => 117,
MessageType::MessageType_EthereumTypedDataSignature => 118, MessageType::MessageType_EthereumTypedDataValueRequest => 118,
MessageType::MessageType_EthereumSignTypedHash => 119, MessageType::MessageType_EthereumTypedDataValueAck => 119,
MessageType::MessageType_NEMGetAddress => 120, MessageType::MessageType_EthereumTypedDataSignature => 120,
MessageType::MessageType_NEMAddress => 121, MessageType::MessageType_EthereumSignTypedHash => 121,
MessageType::MessageType_NEMSignTx => 122, MessageType::MessageType_NEMGetAddress => 122,
MessageType::MessageType_NEMSignedTx => 123, MessageType::MessageType_NEMAddress => 123,
MessageType::MessageType_NEMDecryptMessage => 124, MessageType::MessageType_NEMSignTx => 124,
MessageType::MessageType_NEMDecryptedMessage => 125, MessageType::MessageType_NEMSignedTx => 125,
MessageType::MessageType_TezosGetAddress => 126, MessageType::MessageType_NEMDecryptMessage => 126,
MessageType::MessageType_TezosAddress => 127, MessageType::MessageType_NEMDecryptedMessage => 127,
MessageType::MessageType_TezosSignTx => 128, MessageType::MessageType_TezosGetAddress => 128,
MessageType::MessageType_TezosSignedTx => 129, MessageType::MessageType_TezosAddress => 129,
MessageType::MessageType_TezosGetPublicKey => 130, MessageType::MessageType_TezosSignTx => 130,
MessageType::MessageType_TezosPublicKey => 131, MessageType::MessageType_TezosSignedTx => 131,
MessageType::MessageType_StellarSignTx => 132, MessageType::MessageType_TezosGetPublicKey => 132,
MessageType::MessageType_StellarTxOpRequest => 133, MessageType::MessageType_TezosPublicKey => 133,
MessageType::MessageType_StellarGetAddress => 134, MessageType::MessageType_StellarSignTx => 134,
MessageType::MessageType_StellarAddress => 135, MessageType::MessageType_StellarTxOpRequest => 135,
MessageType::MessageType_StellarCreateAccountOp => 136, MessageType::MessageType_StellarGetAddress => 136,
MessageType::MessageType_StellarPaymentOp => 137, MessageType::MessageType_StellarAddress => 137,
MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 138, MessageType::MessageType_StellarCreateAccountOp => 138,
MessageType::MessageType_StellarManageSellOfferOp => 139, MessageType::MessageType_StellarPaymentOp => 139,
MessageType::MessageType_StellarCreatePassiveSellOfferOp => 140, MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 140,
MessageType::MessageType_StellarSetOptionsOp => 141, MessageType::MessageType_StellarManageSellOfferOp => 141,
MessageType::MessageType_StellarChangeTrustOp => 142, MessageType::MessageType_StellarCreatePassiveSellOfferOp => 142,
MessageType::MessageType_StellarAllowTrustOp => 143, MessageType::MessageType_StellarSetOptionsOp => 143,
MessageType::MessageType_StellarAccountMergeOp => 144, MessageType::MessageType_StellarChangeTrustOp => 144,
MessageType::MessageType_StellarManageDataOp => 145, MessageType::MessageType_StellarAllowTrustOp => 145,
MessageType::MessageType_StellarBumpSequenceOp => 146, MessageType::MessageType_StellarAccountMergeOp => 146,
MessageType::MessageType_StellarManageBuyOfferOp => 147, MessageType::MessageType_StellarManageDataOp => 147,
MessageType::MessageType_StellarPathPaymentStrictSendOp => 148, MessageType::MessageType_StellarBumpSequenceOp => 148,
MessageType::MessageType_StellarClaimClaimableBalanceOp => 149, MessageType::MessageType_StellarManageBuyOfferOp => 149,
MessageType::MessageType_StellarSignedTx => 150, MessageType::MessageType_StellarPathPaymentStrictSendOp => 150,
MessageType::MessageType_CardanoGetPublicKey => 151, MessageType::MessageType_StellarClaimClaimableBalanceOp => 151,
MessageType::MessageType_CardanoPublicKey => 152, MessageType::MessageType_StellarSignedTx => 152,
MessageType::MessageType_CardanoGetAddress => 153, MessageType::MessageType_CardanoGetPublicKey => 153,
MessageType::MessageType_CardanoAddress => 154, MessageType::MessageType_CardanoPublicKey => 154,
MessageType::MessageType_CardanoTxItemAck => 155, MessageType::MessageType_CardanoGetAddress => 155,
MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 156, MessageType::MessageType_CardanoAddress => 156,
MessageType::MessageType_CardanoTxWitnessRequest => 157, MessageType::MessageType_CardanoTxItemAck => 157,
MessageType::MessageType_CardanoTxWitnessResponse => 158, MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 158,
MessageType::MessageType_CardanoTxHostAck => 159, MessageType::MessageType_CardanoTxWitnessRequest => 159,
MessageType::MessageType_CardanoTxBodyHash => 160, MessageType::MessageType_CardanoTxWitnessResponse => 160,
MessageType::MessageType_CardanoSignTxFinished => 161, MessageType::MessageType_CardanoTxHostAck => 161,
MessageType::MessageType_CardanoSignTxInit => 162, MessageType::MessageType_CardanoTxBodyHash => 162,
MessageType::MessageType_CardanoTxInput => 163, MessageType::MessageType_CardanoSignTxFinished => 163,
MessageType::MessageType_CardanoTxOutput => 164, MessageType::MessageType_CardanoSignTxInit => 164,
MessageType::MessageType_CardanoAssetGroup => 165, MessageType::MessageType_CardanoTxInput => 165,
MessageType::MessageType_CardanoToken => 166, MessageType::MessageType_CardanoTxOutput => 166,
MessageType::MessageType_CardanoTxCertificate => 167, MessageType::MessageType_CardanoAssetGroup => 167,
MessageType::MessageType_CardanoTxWithdrawal => 168, MessageType::MessageType_CardanoToken => 168,
MessageType::MessageType_CardanoTxAuxiliaryData => 169, MessageType::MessageType_CardanoTxCertificate => 169,
MessageType::MessageType_CardanoPoolOwner => 170, MessageType::MessageType_CardanoTxWithdrawal => 170,
MessageType::MessageType_CardanoPoolRelayParameters => 171, MessageType::MessageType_CardanoTxAuxiliaryData => 171,
MessageType::MessageType_CardanoGetNativeScriptHash => 172, MessageType::MessageType_CardanoPoolOwner => 172,
MessageType::MessageType_CardanoNativeScriptHash => 173, MessageType::MessageType_CardanoPoolRelayParameters => 173,
MessageType::MessageType_CardanoTxMint => 174, MessageType::MessageType_CardanoGetNativeScriptHash => 174,
MessageType::MessageType_CardanoTxCollateralInput => 175, MessageType::MessageType_CardanoNativeScriptHash => 175,
MessageType::MessageType_CardanoTxRequiredSigner => 176, MessageType::MessageType_CardanoTxMint => 176,
MessageType::MessageType_CardanoTxInlineDatumChunk => 177, MessageType::MessageType_CardanoTxCollateralInput => 177,
MessageType::MessageType_CardanoTxReferenceScriptChunk => 178, MessageType::MessageType_CardanoTxRequiredSigner => 178,
MessageType::MessageType_CardanoTxReferenceInput => 179, MessageType::MessageType_CardanoTxInlineDatumChunk => 179,
MessageType::MessageType_RippleGetAddress => 180, MessageType::MessageType_CardanoTxReferenceScriptChunk => 180,
MessageType::MessageType_RippleAddress => 181, MessageType::MessageType_CardanoTxReferenceInput => 181,
MessageType::MessageType_RippleSignTx => 182, MessageType::MessageType_RippleGetAddress => 182,
MessageType::MessageType_RippleSignedTx => 183, MessageType::MessageType_RippleAddress => 183,
MessageType::MessageType_MoneroTransactionInitRequest => 184, MessageType::MessageType_RippleSignTx => 184,
MessageType::MessageType_MoneroTransactionInitAck => 185, MessageType::MessageType_RippleSignedTx => 185,
MessageType::MessageType_MoneroTransactionSetInputRequest => 186, MessageType::MessageType_MoneroTransactionInitRequest => 186,
MessageType::MessageType_MoneroTransactionSetInputAck => 187, MessageType::MessageType_MoneroTransactionInitAck => 187,
MessageType::MessageType_MoneroTransactionInputViniRequest => 188, MessageType::MessageType_MoneroTransactionSetInputRequest => 188,
MessageType::MessageType_MoneroTransactionInputViniAck => 189, MessageType::MessageType_MoneroTransactionSetInputAck => 189,
MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 190, MessageType::MessageType_MoneroTransactionInputViniRequest => 190,
MessageType::MessageType_MoneroTransactionAllInputsSetAck => 191, MessageType::MessageType_MoneroTransactionInputViniAck => 191,
MessageType::MessageType_MoneroTransactionSetOutputRequest => 192, MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 192,
MessageType::MessageType_MoneroTransactionSetOutputAck => 193, MessageType::MessageType_MoneroTransactionAllInputsSetAck => 193,
MessageType::MessageType_MoneroTransactionAllOutSetRequest => 194, MessageType::MessageType_MoneroTransactionSetOutputRequest => 194,
MessageType::MessageType_MoneroTransactionAllOutSetAck => 195, MessageType::MessageType_MoneroTransactionSetOutputAck => 195,
MessageType::MessageType_MoneroTransactionSignInputRequest => 196, MessageType::MessageType_MoneroTransactionAllOutSetRequest => 196,
MessageType::MessageType_MoneroTransactionSignInputAck => 197, MessageType::MessageType_MoneroTransactionAllOutSetAck => 197,
MessageType::MessageType_MoneroTransactionFinalRequest => 198, MessageType::MessageType_MoneroTransactionSignInputRequest => 198,
MessageType::MessageType_MoneroTransactionFinalAck => 199, MessageType::MessageType_MoneroTransactionSignInputAck => 199,
MessageType::MessageType_MoneroKeyImageExportInitRequest => 200, MessageType::MessageType_MoneroTransactionFinalRequest => 200,
MessageType::MessageType_MoneroKeyImageExportInitAck => 201, MessageType::MessageType_MoneroTransactionFinalAck => 201,
MessageType::MessageType_MoneroKeyImageSyncStepRequest => 202, MessageType::MessageType_MoneroKeyImageExportInitRequest => 202,
MessageType::MessageType_MoneroKeyImageSyncStepAck => 203, MessageType::MessageType_MoneroKeyImageExportInitAck => 203,
MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 204, MessageType::MessageType_MoneroKeyImageSyncStepRequest => 204,
MessageType::MessageType_MoneroKeyImageSyncFinalAck => 205, MessageType::MessageType_MoneroKeyImageSyncStepAck => 205,
MessageType::MessageType_MoneroGetAddress => 206, MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 206,
MessageType::MessageType_MoneroAddress => 207, MessageType::MessageType_MoneroKeyImageSyncFinalAck => 207,
MessageType::MessageType_MoneroGetWatchKey => 208, MessageType::MessageType_MoneroGetAddress => 208,
MessageType::MessageType_MoneroWatchKey => 209, MessageType::MessageType_MoneroAddress => 209,
MessageType::MessageType_DebugMoneroDiagRequest => 210, MessageType::MessageType_MoneroGetWatchKey => 210,
MessageType::MessageType_DebugMoneroDiagAck => 211, MessageType::MessageType_MoneroWatchKey => 211,
MessageType::MessageType_MoneroGetTxKeyRequest => 212, MessageType::MessageType_DebugMoneroDiagRequest => 212,
MessageType::MessageType_MoneroGetTxKeyAck => 213, MessageType::MessageType_DebugMoneroDiagAck => 213,
MessageType::MessageType_MoneroLiveRefreshStartRequest => 214, MessageType::MessageType_MoneroGetTxKeyRequest => 214,
MessageType::MessageType_MoneroLiveRefreshStartAck => 215, MessageType::MessageType_MoneroGetTxKeyAck => 215,
MessageType::MessageType_MoneroLiveRefreshStepRequest => 216, MessageType::MessageType_MoneroLiveRefreshStartRequest => 216,
MessageType::MessageType_MoneroLiveRefreshStepAck => 217, MessageType::MessageType_MoneroLiveRefreshStartAck => 217,
MessageType::MessageType_MoneroLiveRefreshFinalRequest => 218, MessageType::MessageType_MoneroLiveRefreshStepRequest => 218,
MessageType::MessageType_MoneroLiveRefreshFinalAck => 219, MessageType::MessageType_MoneroLiveRefreshStepAck => 219,
MessageType::MessageType_EosGetPublicKey => 220, MessageType::MessageType_MoneroLiveRefreshFinalRequest => 220,
MessageType::MessageType_EosPublicKey => 221, MessageType::MessageType_MoneroLiveRefreshFinalAck => 221,
MessageType::MessageType_EosSignTx => 222, MessageType::MessageType_EosGetPublicKey => 222,
MessageType::MessageType_EosTxActionRequest => 223, MessageType::MessageType_EosPublicKey => 223,
MessageType::MessageType_EosTxActionAck => 224, MessageType::MessageType_EosSignTx => 224,
MessageType::MessageType_EosSignedTx => 225, MessageType::MessageType_EosTxActionRequest => 225,
MessageType::MessageType_WebAuthnListResidentCredentials => 226, MessageType::MessageType_EosTxActionAck => 226,
MessageType::MessageType_WebAuthnCredentials => 227, MessageType::MessageType_EosSignedTx => 227,
MessageType::MessageType_WebAuthnAddResidentCredential => 228, MessageType::MessageType_WebAuthnListResidentCredentials => 228,
MessageType::MessageType_WebAuthnRemoveResidentCredential => 229, MessageType::MessageType_WebAuthnCredentials => 229,
MessageType::MessageType_SolanaGetPublicKey => 230, MessageType::MessageType_WebAuthnAddResidentCredential => 230,
MessageType::MessageType_SolanaPublicKey => 231, MessageType::MessageType_WebAuthnRemoveResidentCredential => 231,
MessageType::MessageType_SolanaGetAddress => 232, MessageType::MessageType_SolanaGetPublicKey => 232,
MessageType::MessageType_SolanaAddress => 233, MessageType::MessageType_SolanaPublicKey => 233,
MessageType::MessageType_SolanaSignTx => 234, MessageType::MessageType_SolanaGetAddress => 234,
MessageType::MessageType_SolanaTxSignature => 235, MessageType::MessageType_SolanaAddress => 235,
MessageType::MessageType_NostrGetPubkey => 236, MessageType::MessageType_SolanaSignTx => 236,
MessageType::MessageType_NostrPubkey => 237, MessageType::MessageType_SolanaTxSignature => 237,
MessageType::MessageType_NostrSignEvent => 238, MessageType::MessageType_ThpCreateNewSession => 238,
MessageType::MessageType_NostrEventSignature => 239, MessageType::MessageType_ThpPairingRequest => 239,
MessageType::MessageType_BenchmarkListNames => 240, MessageType::MessageType_ThpPairingRequestApproved => 240,
MessageType::MessageType_BenchmarkNames => 241, MessageType::MessageType_ThpSelectMethod => 241,
MessageType::MessageType_BenchmarkRun => 242, MessageType::MessageType_ThpPairingPreparationsFinished => 242,
MessageType::MessageType_BenchmarkResult => 243, MessageType::MessageType_ThpCredentialRequest => 243,
MessageType::MessageType_ThpCredentialResponse => 244,
MessageType::MessageType_ThpEndRequest => 245,
MessageType::MessageType_ThpEndResponse => 246,
MessageType::MessageType_ThpCodeEntryCommitment => 247,
MessageType::MessageType_ThpCodeEntryChallenge => 248,
MessageType::MessageType_ThpCodeEntryCpaceTrezor => 249,
MessageType::MessageType_ThpCodeEntryCpaceHostTag => 250,
MessageType::MessageType_ThpCodeEntrySecret => 251,
MessageType::MessageType_ThpQrCodeTag => 252,
MessageType::MessageType_ThpQrCodeSecret => 253,
MessageType::MessageType_ThpNfcTagHost => 254,
MessageType::MessageType_ThpNfcTagTrezor => 255,
MessageType::MessageType_NostrGetPubkey => 256,
MessageType::MessageType_NostrPubkey => 257,
MessageType::MessageType_NostrSignEvent => 258,
MessageType::MessageType_NostrEventSignature => 259,
MessageType::MessageType_BenchmarkListNames => 260,
MessageType::MessageType_BenchmarkNames => 261,
MessageType::MessageType_BenchmarkRun => 262,
MessageType::MessageType_BenchmarkResult => 263,
}; };
Self::enum_descriptor().value_by_index(index) Self::enum_descriptor().value_by_index(index)
} }
@ -1542,7 +1662,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*\xeaT\ \n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xfe[\
\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\
@ -1665,166 +1785,190 @@ static file_descriptor_proto_data: &'static [u8] = b"\
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\x1eMessageType_DebugLinkGetGcInfo\x10\xb1F\x1a\x08\x80\xa6\x1d\ \x12-\n\x1eMessageType_DebugLinkGetGcInfo\x10\xb1F\x1a\x08\x80\xa6\x1d\
\x01\xa0\xb5\x18\x01\x12*\n\x1bMessageType_DebugLinkGcInfo\x10\xb2F\x1a\ \x01\xa0\xb5\x18\x01\x12*\n\x1bMessageType_DebugLinkGcInfo\x10\xb2F\x1a\
\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12+\n\x20MessageType_EthereumGetPu\ \x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x122\n#MessageType_DebugLinkGetPair\
blicKey\x10\xc2\x03\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_Ethere\ ingInfo\x10\xb3F\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20Messa\
umPublicKey\x10\xc3\x03\x1a\x04\x98\xb5\x18\x01\x12(\n\x1eMessageType_Et\ geType_DebugLinkPairingInfo\x10\xb4F\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\
hereumGetAddress\x108\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_Ethe\ \x01\x12+\n\x20MessageType_EthereumGetPublicKey\x10\xc2\x03\x1a\x04\x90\
reumAddress\x109\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumS\ \xb5\x18\x01\x12(\n\x1dMessageType_EthereumPublicKey\x10\xc3\x03\x1a\x04\
ignTx\x10:\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_EthereumSignTxEIP1\ \x98\xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAddress\x108\x1a\x04\
559\x10\xc4\x03\x1a\x04\x90\xb5\x18\x01\x12'\n\x1dMessageType_EthereumTx\ \x90\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x109\x1a\x04\x98\
Request\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\ \xb5\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\
\x10<\x1a\x04\x90\xb5\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\ \x18\x01\x12,\n!MessageType_EthereumSignTxEIP1559\x10\xc4\x03\x1a\x04\
\x10@\x1a\x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\ \x90\xb5\x18\x01\x12'\n\x1dMessageType_EthereumTxRequest\x10;\x1a\x04\
\x10A\x1a\x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessageSignatur\ \x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\x04\x90\
e\x10B\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\ \xb5\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\x10@\x1a\x04\x90\
\x10\xd0\x03\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDat\ \xb5\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10A\x1a\x04\x90\
aStructRequest\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_Et\ \xb5\x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10B\x1a\x04\
hereumTypedDataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)Mess\ \x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\x10\xd0\x03\
ageType_EthereumTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\ \x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDataStructReque\
\x01\x120\n%MessageType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\ st\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_EthereumTypedD\
\x90\xb5\x18\x01\x121\n&MessageType_EthereumTypedDataSignature\x10\xd5\ ataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Ethe\
\x03\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\ reumTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\x01\x120\n%Mes\
\x10\xd6\x03\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\ sageType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\x90\xb5\x18\x01\
\x10C\x1a\x04\x90\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\ \x121\n&MessageType_EthereumTypedDataSignature\x10\xd5\x03\x1a\x04\x98\
\x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\ \xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\x10\xd6\x03\x1a\
\x90\xb5\x18\x01\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\ \x04\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\x10C\x1a\x04\
\x18\x01\x12'\n\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\ \x90\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\x1a\x04\x98\
\x18\x01\x12)\n\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\ \xb5\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\x90\xb5\x18\
\x18\x01\x12&\n\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\ \x01\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\x18\x01\x12'\
\xb5\x18\x01\x12#\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\ \n\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\x18\x01\x12)\n\
\xb5\x18\x01\x12\"\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\ \x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\x18\x01\x12&\n\
\xb5\x18\x01\x12$\n\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\ \x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\xb5\x18\x01\x12#\
\xb5\x18\x01\x12(\n\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\ \n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\xb5\x18\x01\x12\"\
\x90\xb5\x18\x01\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\ \n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\xb5\x18\x01\x12$\n\
\x04\x98\xb5\x18\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\ \x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\xb5\x18\x01\x12(\n\
\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\ \x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\x90\xb5\x18\x01\
\x01\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\ \x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\x04\x98\xb5\x18\
\xcf\x01\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\ \x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\x04\x90\xb5\x18\
\x10\xd0\x01\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAc\ \x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\x01\x1a\x04\x98\
countOp\x10\xd2\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_Stella\ \xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\xcf\x01\x1a\x04\
rPaymentOp\x10\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_Stella\ \x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\x10\xd0\x01\x1a\
rPathPaymentStrictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$M\ \x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAccountOp\x10\xd2\
essageType_StellarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\ \x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_StellarPaymentOp\x10\
\x126\n+MessageType_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\ \xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_StellarPathPaymentSt\
\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\ rictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_Ste\
\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\ llarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\x126\n+Message\
\xd8\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrust\ Type_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\x90\xb5\x18\x01\
Op\x10\xd9\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccount\ \x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\x1a\x04\x90\xb5\
MergeOp\x10\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Stella\ \x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\xd8\x01\x1a\x04\
rManageDataOp\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_Ste\ \x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrustOp\x10\xd9\x01\
llarBumpSequenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageTyp\ \x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccountMergeOp\x10\
e_StellarManageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*Mes\ \xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarManageData\
sageType_StellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\ Op\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarBumpSeq\
\x01\x125\n*MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\ uenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_StellarMa\
\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\ nageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_St\
\x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\ ellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\x01\x125\n*\
\xb1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\ MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\x04\x90\xb5\
\x10\xb2\x02\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAdd\ \x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\x1a\x04\x98\
ress\x10\xb3\x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAd\ \xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\xb1\x02\x1a\
dress\x10\xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoT\ \x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\x10\xb2\x02\
xItemAck\x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoT\ \x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAddress\x10\xb3\
xAuxiliaryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#Mess\ \x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAddress\x10\
ageType_CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\ \xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoTxItemAck\
\n$MessageType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\ \x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoTxAuxilia\
\x01\x12'\n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\ ryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#MessageType_\
\x18\x01\x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\ CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\n$Messa\
\xb5\x18\x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\ geType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\x01\x12'\
\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\ \n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\x18\x01\
\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\ \x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\xb5\x18\
\x02\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\ \x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\x04\x98\
\xc2\x02\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\ \xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\x1a\x04\
\x10\xc3\x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\ \x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\x02\x1a\
\x10\xc4\x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCert\ \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\xc2\x02\
ificate\x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Cardan\ \x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\x10\xc3\
oTxWithdrawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_Ca\ \x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\x10\xc4\
rdanoTxAuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\ \x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCertificate\
geType_CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Messa\ \x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_CardanoTxWith\
geType_CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\ drawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_CardanoTx\
\x121\n&MessageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\ AuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_\
\xb5\x18\x01\x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\ CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&MessageType_\
\x04\x98\xb5\x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\ CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Me\
\x04\x90\xb5\x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\ ssageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\xb5\x18\x01\
\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\ \x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\x04\x98\xb5\
\x10\xce\x02\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineD\ \x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\x04\x90\xb5\
atumChunk\x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Cardano\ \x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\x02\x1a\x04\
TxReferenceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#Messag\ \x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\x10\xce\x02\
eType_CardanoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\ \x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineDatumChunk\
\x1cMessageType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12\ \x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_CardanoTxReferen\
$\n\x19MessageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12\ ceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_Car\
#\n\x18MessageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\ danoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\
\n\x1aMessageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x12\ geType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12$\n\x19Me\
3\n(MessageType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\ ssageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12#\n\x18Me\
\x18\x01\x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\ ssageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMes\
\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\ sageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x123\n(Messa\
\xf7\x03\x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSet\ geType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\x18\x01\
InputAck\x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTr\ \x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\x98\xb5\
ansactionInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Mes\ \x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\xf7\x03\
sageType_MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\ \x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSetInputAck\
\x01\x12;\n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\ \x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\
\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSe\ nInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\
tAck\x10\xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransa\ _MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\x01\x12;\
ctionSetOutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Message\ \n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\x1a\x04\
Type_MoneroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\ \x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSetAck\x10\
\x128\n-MessageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\ \xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSet\
\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\ OutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Mon\
\x10\x82\x04\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\ eroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\x128\n-Me\
nSignInputRequest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\ ssageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\x04\x98\xb5\
_MoneroTransactionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\ \x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\x10\x82\x04\
\n)MessageType_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\ \x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSignInputRe\
\x18\x01\x120\n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\ quest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTrans\
\x04\x98\xb5\x18\x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\ actionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageTyp\
\x10\x92\x04\x1a\x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageEx\ e_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\x18\x01\x120\
portInitAck\x10\x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Moner\ \n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\x04\x98\xb5\x18\
oKeyImageSyncStepRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%Mess\ \x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\x10\x92\x04\x1a\
ageType_MoneroKeyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\ \x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageExportInitAck\x10\
\x125\n*MessageType_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\ \x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroKeyImageSyncSt\
\x98\xb5\x18\x01\x121\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\ epRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%MessageType_MoneroK\
\x04\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\ eyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\x125\n*MessageTyp\
\x9c\x04\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\ e_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\x98\xb5\x18\x01\x12\
\x9d\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\ 1\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\x04\x1a\x04\x98\xb5\
\x10\x9e\x04\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKe\ \x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\x9c\x04\x1a\x04\x90\
y\x10\x9f\x04\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDia\ \xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\x9d\x04\x1a\x04\x98\
gRequest\x10\xa2\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_Debug\ \xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\x10\x9e\x04\x1a\x04\
MoneroDiagAck\x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_Mon\ \x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKey\x10\x9f\x04\x1a\
eroGetTxKeyRequest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessage\ \x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDiagRequest\x10\xa2\
Type_MoneroGetTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)Messag\ \x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_DebugMoneroDiagAck\
eType_MoneroLiveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\ \x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_MoneroGetTxKeyRe\
\x120\n%MessageType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\ quest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGe\
\xb5\x18\x01\x123\n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\ tTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroL\
\x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\ iveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\x120\n%Messag\
\xab\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFin\ eType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\xb5\x18\x01\x123\
alRequest\x10\xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroL\ \n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\x1a\x04\x90\xb5\
iveRefreshFinalAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessage\ \x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\xab\x04\x1a\x04\
Type_EosGetPublicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18Messa\ \x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFinalRequest\x10\
geType_EosPublicKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15Mes\ \xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroLiveRefreshFin\
sageType_EosSignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessage\ alAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessageType_EosGetPu\
Type_EosTxActionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMe\ blicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_EosPub\
ssageType_EosTxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17\ licKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15MessageType_EosS\
MessageType_EosSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x126\n+Messa\ ignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_EosTxAct\
geType_WebAuthnListResidentCredentials\x10\xa0\x06\x1a\x04\x90\xb5\x18\ ionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_Eos\
\x01\x12*\n\x1fMessageType_WebAuthnCredentials\x10\xa1\x06\x1a\x04\x98\ TxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_E\
\xb5\x18\x01\x124\n)MessageType_WebAuthnAddResidentCredential\x10\xa2\ osSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x126\n+MessageType_WebAut\
\x06\x1a\x04\x90\xb5\x18\x01\x127\n,MessageType_WebAuthnRemoveResidentCr\ hnListResidentCredentials\x10\xa0\x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1f\
edential\x10\xa3\x06\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_Solan\ MessageType_WebAuthnCredentials\x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\
aGetPublicKey\x10\x84\x07\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_\ \n)MessageType_WebAuthnAddResidentCredential\x10\xa2\x06\x1a\x04\x90\xb5\
SolanaPublicKey\x10\x85\x07\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageTyp\ \x18\x01\x127\n,MessageType_WebAuthnRemoveResidentCredential\x10\xa3\x06\
e_SolanaGetAddress\x10\x86\x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19Message\ \x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_SolanaGetPublicKey\x10\
Type_SolanaAddress\x10\x87\x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18Message\ \x84\x07\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_SolanaPublicKey\
Type_SolanaSignTx\x10\x88\x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageT\ \x10\x85\x07\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_SolanaGetAddr\
ype_SolanaTxSignature\x10\x89\x07\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMess\ ess\x10\x86\x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_SolanaAddr\
ageType_NostrGetPubkey\x10\xd1\x0f\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17Me\ ess\x10\x87\x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_SolanaSign\
ssageType_NostrPubkey\x10\xd2\x0f\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMess\ Tx\x10\x88\x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_SolanaTxSig\
ageType_NostrSignEvent\x10\xd3\x0f\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMes\ nature\x10\x89\x07\x1a\x04\x98\xb5\x18\x01\x12.\n\x1fMessageType_ThpCrea\
sageType_NostrEventSignature\x10\xd4\x0f\x1a\x04\x98\xb5\x18\x01\x12)\n\ teNewSession\x10\xe8\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\
\x1eMessageType_BenchmarkListNames\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\ \x1dMessageType_ThpPairingRequest\x10\xee\x07\x1a\x04\x80\xa6\x1d\x01\
\n\x1aMessageType_BenchmarkNames\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\ \x120\n%MessageType_ThpPairingRequestApproved\x10\xef\x07\x1a\x04\x80\
\x18MessageType_BenchmarkRun\x10\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1b\ \xa6\x1d\x01\x12&\n\x1bMessageType_ThpSelectMethod\x10\xf0\x07\x1a\x04\
MessageType_BenchmarkResult\x10\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x04\xc8\ \x80\xa6\x1d\x01\x125\n*MessageType_ThpPairingPreparationsFinished\x10\
\xf3\x18\x01\"\x04\x08Z\x10\\\"\x04\x08G\x10J\"\x04\x08r\x10z\"\x06\x08\ \xf1\x07\x1a\x04\x80\xa6\x1d\x01\x12+\n\x20MessageType_ThpCredentialRequ\
\xdb\x01\x10\xdb\x01\"\x06\x08\xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\ est\x10\xf2\x07\x1a\x04\x80\xa6\x1d\x01\x12,\n!MessageType_ThpCredential\
\xb0\x02\"\x06\x08\xb5\x02\x10\xb8\x02\"\x06\x08\xbc\x05\x10\xc5\x05\"\ Response\x10\xf3\x07\x1a\x04\x80\xa6\x1d\x01\x12$\n\x19MessageType_ThpEn\
\x06\x08\xe8\x07\x10\xcb\x08B8\n#com.satoshilabs.trezor.lib.protobufB\rT\ dRequest\x10\xf4\x07\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessageType_ThpEn\
rezorMessage\x80\xa6\x1d\x01\ dResponse\x10\xf5\x07\x1a\x04\x80\xa6\x1d\x01\x12-\n\"MessageType_ThpCod\
eEntryCommitment\x10\xf8\x07\x1a\x04\x80\xa6\x1d\x01\x12,\n!MessageType_\
ThpCodeEntryChallenge\x10\xf9\x07\x1a\x04\x80\xa6\x1d\x01\x12.\n#Message\
Type_ThpCodeEntryCpaceTrezor\x10\xfa\x07\x1a\x04\x80\xa6\x1d\x01\x12/\n$\
MessageType_ThpCodeEntryCpaceHostTag\x10\xfb\x07\x1a\x04\x80\xa6\x1d\x01\
\x12)\n\x1eMessageType_ThpCodeEntrySecret\x10\xfc\x07\x1a\x04\x80\xa6\
\x1d\x01\x12#\n\x18MessageType_ThpQrCodeTag\x10\x80\x08\x1a\x04\x80\xa6\
\x1d\x01\x12&\n\x1bMessageType_ThpQrCodeSecret\x10\x81\x08\x1a\x04\x80\
\xa6\x1d\x01\x12$\n\x19MessageType_ThpNfcTagHost\x10\x88\x08\x1a\x04\x80\
\xa6\x1d\x01\x12&\n\x1bMessageType_ThpNfcTagTrezor\x10\x89\x08\x1a\x04\
\x80\xa6\x1d\x01\x12%\n\x1aMessageType_NostrGetPubkey\x10\xd1\x0f\x1a\
\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_NostrPubkey\x10\xd2\x0f\x1a\
\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_NostrSignEvent\x10\xd3\x0f\
\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_NostrEventSignature\x10\
\xd4\x0f\x1a\x04\x98\xb5\x18\x01\x12)\n\x1eMessageType_BenchmarkListName\
s\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessageType_BenchmarkNames\
\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\x18MessageType_BenchmarkRun\x10\
\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1bMessageType_BenchmarkResult\x10\
\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08Z\x10\\\"\
\x04\x08G\x10J\"\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\xdb\x01\"\x06\x08\
\xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\x06\x08\xb5\x02\x10\
\xb8\x02\"\x06\x08\xbc\x05\x10\xc5\x05\"\x06\x08\xe9\x07\x10\xed\x07\"\
\x06\x08\xf6\x07\x10\xf7\x07\"\x06\x08\xfd\x07\x10\xff\x07\"\x06\x08\x82\
\x08\x10\x87\x08B8\n#com.satoshilabs.trezor.lib.protobufB\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

View File

@ -2117,6 +2117,824 @@ impl ::protobuf::reflect::ProtobufValue for DebugLinkState {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>; type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
} }
// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkGetPairingInfo)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct DebugLinkGetPairingInfo {
// message fields
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkGetPairingInfo.channel_id)
pub channel_id: ::std::option::Option<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkGetPairingInfo.handshake_hash)
pub handshake_hash: ::std::option::Option<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkGetPairingInfo.nfc_secret_host)
pub nfc_secret_host: ::std::option::Option<::std::vec::Vec<u8>>,
// special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.debug.DebugLinkGetPairingInfo.special_fields)
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a DebugLinkGetPairingInfo {
fn default() -> &'a DebugLinkGetPairingInfo {
<DebugLinkGetPairingInfo as ::protobuf::Message>::default_instance()
}
}
impl DebugLinkGetPairingInfo {
pub fn new() -> DebugLinkGetPairingInfo {
::std::default::Default::default()
}
// optional bytes channel_id = 1;
pub fn channel_id(&self) -> &[u8] {
match self.channel_id.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_channel_id(&mut self) {
self.channel_id = ::std::option::Option::None;
}
pub fn has_channel_id(&self) -> bool {
self.channel_id.is_some()
}
// Param is passed by value, moved
pub fn set_channel_id(&mut self, v: ::std::vec::Vec<u8>) {
self.channel_id = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_channel_id(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.channel_id.is_none() {
self.channel_id = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.channel_id.as_mut().unwrap()
}
// Take field
pub fn take_channel_id(&mut self) -> ::std::vec::Vec<u8> {
self.channel_id.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
// optional bytes handshake_hash = 2;
pub fn handshake_hash(&self) -> &[u8] {
match self.handshake_hash.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_handshake_hash(&mut self) {
self.handshake_hash = ::std::option::Option::None;
}
pub fn has_handshake_hash(&self) -> bool {
self.handshake_hash.is_some()
}
// Param is passed by value, moved
pub fn set_handshake_hash(&mut self, v: ::std::vec::Vec<u8>) {
self.handshake_hash = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_handshake_hash(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.handshake_hash.is_none() {
self.handshake_hash = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.handshake_hash.as_mut().unwrap()
}
// Take field
pub fn take_handshake_hash(&mut self) -> ::std::vec::Vec<u8> {
self.handshake_hash.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
// optional bytes nfc_secret_host = 3;
pub fn nfc_secret_host(&self) -> &[u8] {
match self.nfc_secret_host.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_nfc_secret_host(&mut self) {
self.nfc_secret_host = ::std::option::Option::None;
}
pub fn has_nfc_secret_host(&self) -> bool {
self.nfc_secret_host.is_some()
}
// Param is passed by value, moved
pub fn set_nfc_secret_host(&mut self, v: ::std::vec::Vec<u8>) {
self.nfc_secret_host = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_nfc_secret_host(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.nfc_secret_host.is_none() {
self.nfc_secret_host = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.nfc_secret_host.as_mut().unwrap()
}
// Take field
pub fn take_nfc_secret_host(&mut self) -> ::std::vec::Vec<u8> {
self.nfc_secret_host.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(3);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"channel_id",
|m: &DebugLinkGetPairingInfo| { &m.channel_id },
|m: &mut DebugLinkGetPairingInfo| { &mut m.channel_id },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"handshake_hash",
|m: &DebugLinkGetPairingInfo| { &m.handshake_hash },
|m: &mut DebugLinkGetPairingInfo| { &mut m.handshake_hash },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"nfc_secret_host",
|m: &DebugLinkGetPairingInfo| { &m.nfc_secret_host },
|m: &mut DebugLinkGetPairingInfo| { &mut m.nfc_secret_host },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DebugLinkGetPairingInfo>(
"DebugLinkGetPairingInfo",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for DebugLinkGetPairingInfo {
const NAME: &'static str = "DebugLinkGetPairingInfo";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.channel_id = ::std::option::Option::Some(is.read_bytes()?);
},
18 => {
self.handshake_hash = ::std::option::Option::Some(is.read_bytes()?);
},
26 => {
self.nfc_secret_host = ::std::option::Option::Some(is.read_bytes()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
// Compute sizes of nested messages
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.channel_id.as_ref() {
my_size += ::protobuf::rt::bytes_size(1, &v);
}
if let Some(v) = self.handshake_hash.as_ref() {
my_size += ::protobuf::rt::bytes_size(2, &v);
}
if let Some(v) = self.nfc_secret_host.as_ref() {
my_size += ::protobuf::rt::bytes_size(3, &v);
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.channel_id.as_ref() {
os.write_bytes(1, v)?;
}
if let Some(v) = self.handshake_hash.as_ref() {
os.write_bytes(2, v)?;
}
if let Some(v) = self.nfc_secret_host.as_ref() {
os.write_bytes(3, v)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> DebugLinkGetPairingInfo {
DebugLinkGetPairingInfo::new()
}
fn clear(&mut self) {
self.channel_id = ::std::option::Option::None;
self.handshake_hash = ::std::option::Option::None;
self.nfc_secret_host = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static DebugLinkGetPairingInfo {
static instance: DebugLinkGetPairingInfo = DebugLinkGetPairingInfo {
channel_id: ::std::option::Option::None,
handshake_hash: ::std::option::Option::None,
nfc_secret_host: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for DebugLinkGetPairingInfo {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("DebugLinkGetPairingInfo").unwrap()).clone()
}
}
impl ::std::fmt::Display for DebugLinkGetPairingInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for DebugLinkGetPairingInfo {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkPairingInfo)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct DebugLinkPairingInfo {
// message fields
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkPairingInfo.channel_id)
pub channel_id: ::std::option::Option<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkPairingInfo.handshake_hash)
pub handshake_hash: ::std::option::Option<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkPairingInfo.code_entry_code)
pub code_entry_code: ::std::option::Option<u32>,
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkPairingInfo.code_qr_code)
pub code_qr_code: ::std::option::Option<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkPairingInfo.nfc_secret_trezor)
pub nfc_secret_trezor: ::std::option::Option<::std::vec::Vec<u8>>,
// special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.debug.DebugLinkPairingInfo.special_fields)
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a DebugLinkPairingInfo {
fn default() -> &'a DebugLinkPairingInfo {
<DebugLinkPairingInfo as ::protobuf::Message>::default_instance()
}
}
impl DebugLinkPairingInfo {
pub fn new() -> DebugLinkPairingInfo {
::std::default::Default::default()
}
// optional bytes channel_id = 1;
pub fn channel_id(&self) -> &[u8] {
match self.channel_id.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_channel_id(&mut self) {
self.channel_id = ::std::option::Option::None;
}
pub fn has_channel_id(&self) -> bool {
self.channel_id.is_some()
}
// Param is passed by value, moved
pub fn set_channel_id(&mut self, v: ::std::vec::Vec<u8>) {
self.channel_id = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_channel_id(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.channel_id.is_none() {
self.channel_id = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.channel_id.as_mut().unwrap()
}
// Take field
pub fn take_channel_id(&mut self) -> ::std::vec::Vec<u8> {
self.channel_id.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
// optional bytes handshake_hash = 2;
pub fn handshake_hash(&self) -> &[u8] {
match self.handshake_hash.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_handshake_hash(&mut self) {
self.handshake_hash = ::std::option::Option::None;
}
pub fn has_handshake_hash(&self) -> bool {
self.handshake_hash.is_some()
}
// Param is passed by value, moved
pub fn set_handshake_hash(&mut self, v: ::std::vec::Vec<u8>) {
self.handshake_hash = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_handshake_hash(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.handshake_hash.is_none() {
self.handshake_hash = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.handshake_hash.as_mut().unwrap()
}
// Take field
pub fn take_handshake_hash(&mut self) -> ::std::vec::Vec<u8> {
self.handshake_hash.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
// optional uint32 code_entry_code = 3;
pub fn code_entry_code(&self) -> u32 {
self.code_entry_code.unwrap_or(0)
}
pub fn clear_code_entry_code(&mut self) {
self.code_entry_code = ::std::option::Option::None;
}
pub fn has_code_entry_code(&self) -> bool {
self.code_entry_code.is_some()
}
// Param is passed by value, moved
pub fn set_code_entry_code(&mut self, v: u32) {
self.code_entry_code = ::std::option::Option::Some(v);
}
// optional bytes code_qr_code = 4;
pub fn code_qr_code(&self) -> &[u8] {
match self.code_qr_code.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_code_qr_code(&mut self) {
self.code_qr_code = ::std::option::Option::None;
}
pub fn has_code_qr_code(&self) -> bool {
self.code_qr_code.is_some()
}
// Param is passed by value, moved
pub fn set_code_qr_code(&mut self, v: ::std::vec::Vec<u8>) {
self.code_qr_code = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_code_qr_code(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.code_qr_code.is_none() {
self.code_qr_code = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.code_qr_code.as_mut().unwrap()
}
// Take field
pub fn take_code_qr_code(&mut self) -> ::std::vec::Vec<u8> {
self.code_qr_code.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
// optional bytes nfc_secret_trezor = 5;
pub fn nfc_secret_trezor(&self) -> &[u8] {
match self.nfc_secret_trezor.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_nfc_secret_trezor(&mut self) {
self.nfc_secret_trezor = ::std::option::Option::None;
}
pub fn has_nfc_secret_trezor(&self) -> bool {
self.nfc_secret_trezor.is_some()
}
// Param is passed by value, moved
pub fn set_nfc_secret_trezor(&mut self, v: ::std::vec::Vec<u8>) {
self.nfc_secret_trezor = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_nfc_secret_trezor(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.nfc_secret_trezor.is_none() {
self.nfc_secret_trezor = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.nfc_secret_trezor.as_mut().unwrap()
}
// Take field
pub fn take_nfc_secret_trezor(&mut self) -> ::std::vec::Vec<u8> {
self.nfc_secret_trezor.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(5);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"channel_id",
|m: &DebugLinkPairingInfo| { &m.channel_id },
|m: &mut DebugLinkPairingInfo| { &mut m.channel_id },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"handshake_hash",
|m: &DebugLinkPairingInfo| { &m.handshake_hash },
|m: &mut DebugLinkPairingInfo| { &mut m.handshake_hash },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"code_entry_code",
|m: &DebugLinkPairingInfo| { &m.code_entry_code },
|m: &mut DebugLinkPairingInfo| { &mut m.code_entry_code },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"code_qr_code",
|m: &DebugLinkPairingInfo| { &m.code_qr_code },
|m: &mut DebugLinkPairingInfo| { &mut m.code_qr_code },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"nfc_secret_trezor",
|m: &DebugLinkPairingInfo| { &m.nfc_secret_trezor },
|m: &mut DebugLinkPairingInfo| { &mut m.nfc_secret_trezor },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DebugLinkPairingInfo>(
"DebugLinkPairingInfo",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for DebugLinkPairingInfo {
const NAME: &'static str = "DebugLinkPairingInfo";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.channel_id = ::std::option::Option::Some(is.read_bytes()?);
},
18 => {
self.handshake_hash = ::std::option::Option::Some(is.read_bytes()?);
},
24 => {
self.code_entry_code = ::std::option::Option::Some(is.read_uint32()?);
},
34 => {
self.code_qr_code = ::std::option::Option::Some(is.read_bytes()?);
},
42 => {
self.nfc_secret_trezor = ::std::option::Option::Some(is.read_bytes()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
// Compute sizes of nested messages
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.channel_id.as_ref() {
my_size += ::protobuf::rt::bytes_size(1, &v);
}
if let Some(v) = self.handshake_hash.as_ref() {
my_size += ::protobuf::rt::bytes_size(2, &v);
}
if let Some(v) = self.code_entry_code {
my_size += ::protobuf::rt::uint32_size(3, v);
}
if let Some(v) = self.code_qr_code.as_ref() {
my_size += ::protobuf::rt::bytes_size(4, &v);
}
if let Some(v) = self.nfc_secret_trezor.as_ref() {
my_size += ::protobuf::rt::bytes_size(5, &v);
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.channel_id.as_ref() {
os.write_bytes(1, v)?;
}
if let Some(v) = self.handshake_hash.as_ref() {
os.write_bytes(2, v)?;
}
if let Some(v) = self.code_entry_code {
os.write_uint32(3, v)?;
}
if let Some(v) = self.code_qr_code.as_ref() {
os.write_bytes(4, v)?;
}
if let Some(v) = self.nfc_secret_trezor.as_ref() {
os.write_bytes(5, v)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> DebugLinkPairingInfo {
DebugLinkPairingInfo::new()
}
fn clear(&mut self) {
self.channel_id = ::std::option::Option::None;
self.handshake_hash = ::std::option::Option::None;
self.code_entry_code = ::std::option::Option::None;
self.code_qr_code = ::std::option::Option::None;
self.nfc_secret_trezor = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static DebugLinkPairingInfo {
static instance: DebugLinkPairingInfo = DebugLinkPairingInfo {
channel_id: ::std::option::Option::None,
handshake_hash: ::std::option::Option::None,
code_entry_code: ::std::option::Option::None,
code_qr_code: ::std::option::Option::None,
nfc_secret_trezor: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for DebugLinkPairingInfo {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("DebugLinkPairingInfo").unwrap()).clone()
}
}
impl ::std::fmt::Display for DebugLinkPairingInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for DebugLinkPairingInfo {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkToggleThpPairingDialog)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct DebugLinkToggleThpPairingDialog {
// message fields
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkToggleThpPairingDialog.channel_id)
pub channel_id: ::std::option::Option<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkToggleThpPairingDialog.show_dialog)
pub show_dialog: ::std::option::Option<bool>,
// special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.debug.DebugLinkToggleThpPairingDialog.special_fields)
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a DebugLinkToggleThpPairingDialog {
fn default() -> &'a DebugLinkToggleThpPairingDialog {
<DebugLinkToggleThpPairingDialog as ::protobuf::Message>::default_instance()
}
}
impl DebugLinkToggleThpPairingDialog {
pub fn new() -> DebugLinkToggleThpPairingDialog {
::std::default::Default::default()
}
// optional bytes channel_id = 1;
pub fn channel_id(&self) -> &[u8] {
match self.channel_id.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_channel_id(&mut self) {
self.channel_id = ::std::option::Option::None;
}
pub fn has_channel_id(&self) -> bool {
self.channel_id.is_some()
}
// Param is passed by value, moved
pub fn set_channel_id(&mut self, v: ::std::vec::Vec<u8>) {
self.channel_id = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_channel_id(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.channel_id.is_none() {
self.channel_id = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.channel_id.as_mut().unwrap()
}
// Take field
pub fn take_channel_id(&mut self) -> ::std::vec::Vec<u8> {
self.channel_id.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
// optional bool show_dialog = 2;
pub fn show_dialog(&self) -> bool {
self.show_dialog.unwrap_or(false)
}
pub fn clear_show_dialog(&mut self) {
self.show_dialog = ::std::option::Option::None;
}
pub fn has_show_dialog(&self) -> bool {
self.show_dialog.is_some()
}
// Param is passed by value, moved
pub fn set_show_dialog(&mut self, v: bool) {
self.show_dialog = ::std::option::Option::Some(v);
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(2);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"channel_id",
|m: &DebugLinkToggleThpPairingDialog| { &m.channel_id },
|m: &mut DebugLinkToggleThpPairingDialog| { &mut m.channel_id },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"show_dialog",
|m: &DebugLinkToggleThpPairingDialog| { &m.show_dialog },
|m: &mut DebugLinkToggleThpPairingDialog| { &mut m.show_dialog },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DebugLinkToggleThpPairingDialog>(
"DebugLinkToggleThpPairingDialog",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for DebugLinkToggleThpPairingDialog {
const NAME: &'static str = "DebugLinkToggleThpPairingDialog";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.channel_id = ::std::option::Option::Some(is.read_bytes()?);
},
16 => {
self.show_dialog = ::std::option::Option::Some(is.read_bool()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
// Compute sizes of nested messages
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.channel_id.as_ref() {
my_size += ::protobuf::rt::bytes_size(1, &v);
}
if let Some(v) = self.show_dialog {
my_size += 1 + 1;
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.channel_id.as_ref() {
os.write_bytes(1, v)?;
}
if let Some(v) = self.show_dialog {
os.write_bool(2, v)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> DebugLinkToggleThpPairingDialog {
DebugLinkToggleThpPairingDialog::new()
}
fn clear(&mut self) {
self.channel_id = ::std::option::Option::None;
self.show_dialog = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static DebugLinkToggleThpPairingDialog {
static instance: DebugLinkToggleThpPairingDialog = DebugLinkToggleThpPairingDialog {
channel_id: ::std::option::Option::None,
show_dialog: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for DebugLinkToggleThpPairingDialog {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("DebugLinkToggleThpPairingDialog").unwrap()).clone()
}
}
impl ::std::fmt::Display for DebugLinkToggleThpPairingDialog {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for DebugLinkToggleThpPairingDialog {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkStop) // @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkStop)
#[derive(PartialEq,Clone,Default,Debug)] #[derive(PartialEq,Clone,Default,Debug)]
pub struct DebugLinkStop { pub struct DebugLinkStop {
@ -4141,23 +4959,33 @@ static file_descriptor_proto_data: &'static [u8] = b"\
dPos\x12$\n\x0ereset_word_pos\x18\x0b\x20\x01(\rR\x0cresetWordPos\x12N\n\ dPos\x12$\n\x0ereset_word_pos\x18\x0b\x20\x01(\rR\x0cresetWordPos\x12N\n\
\rmnemonic_type\x18\x0c\x20\x01(\x0e2).hw.trezor.messages.management.Bac\ \rmnemonic_type\x18\x0c\x20\x01(\x0e2).hw.trezor.messages.management.Bac\
kupTypeR\x0cmnemonicType\x12\x16\n\x06tokens\x18\r\x20\x03(\tR\x06tokens\ kupTypeR\x0cmnemonicType\x12\x16\n\x06tokens\x18\r\x20\x03(\tR\x06tokens\
\"\x0f\n\rDebugLinkStop\"P\n\x0cDebugLinkLog\x12\x14\n\x05level\x18\x01\ \"\x87\x01\n\x17DebugLinkGetPairingInfo\x12\x1d\n\nchannel_id\x18\x01\
\x20\x01(\rR\x05level\x12\x16\n\x06bucket\x18\x02\x20\x01(\tR\x06bucket\ \x20\x01(\x0cR\tchannelId\x12%\n\x0ehandshake_hash\x18\x02\x20\x01(\x0cR\
\x12\x12\n\x04text\x18\x03\x20\x01(\tR\x04text\"G\n\x13DebugLinkMemoryRe\ \rhandshakeHash\x12&\n\x0fnfc_secret_host\x18\x03\x20\x01(\x0cR\rnfcSecr\
ad\x12\x18\n\x07address\x18\x01\x20\x01(\rR\x07address\x12\x16\n\x06leng\ etHost\"\xd2\x01\n\x14DebugLinkPairingInfo\x12\x1d\n\nchannel_id\x18\x01\
th\x18\x02\x20\x01(\rR\x06length\")\n\x0fDebugLinkMemory\x12\x16\n\x06me\ \x20\x01(\x0cR\tchannelId\x12%\n\x0ehandshake_hash\x18\x02\x20\x01(\x0cR\
mory\x18\x01\x20\x01(\x0cR\x06memory\"^\n\x14DebugLinkMemoryWrite\x12\ \rhandshakeHash\x12&\n\x0fcode_entry_code\x18\x03\x20\x01(\rR\rcodeEntry\
\x18\n\x07address\x18\x01\x20\x01(\rR\x07address\x12\x16\n\x06memory\x18\ Code\x12\x20\n\x0ccode_qr_code\x18\x04\x20\x01(\x0cR\ncodeQrCode\x12*\n\
\x02\x20\x01(\x0cR\x06memory\x12\x14\n\x05flash\x18\x03\x20\x01(\x08R\ \x11nfc_secret_trezor\x18\x05\x20\x01(\x0cR\x0fnfcSecretTrezor\"h\n\x1fD\
\x05flash\"-\n\x13DebugLinkFlashErase\x12\x16\n\x06sector\x18\x01\x20\ ebugLinkToggleThpPairingDialog\x12\x1d\n\nchannel_id\x18\x01\x20\x01(\
\x01(\rR\x06sector\".\n\x14DebugLinkEraseSdCard\x12\x16\n\x06format\x18\ \x0cR\tchannelId\x12&\n\x0bshow_dialog\x18\x02\x20\x01(\x08:\x05falseR\n\
\x01\x20\x01(\x08R\x06format\"0\n\x14DebugLinkWatchLayout\x12\x14\n\x05w\ showDialog\"\x0f\n\rDebugLinkStop\"P\n\x0cDebugLinkLog\x12\x14\n\x05leve\
atch\x18\x01\x20\x01(\x08R\x05watch:\x02\x18\x01\"\x1f\n\x19DebugLinkRes\ l\x18\x01\x20\x01(\rR\x05level\x12\x16\n\x06bucket\x18\x02\x20\x01(\tR\
etDebugEvents:\x02\x18\x01\"\x1a\n\x18DebugLinkOptigaSetSecMax\"\x14\n\ \x06bucket\x12\x12\n\x04text\x18\x03\x20\x01(\tR\x04text\"G\n\x13DebugLi\
\x12DebugLinkGetGcInfo\"\xa7\x01\n\x0fDebugLinkGcInfo\x12S\n\x05items\ nkMemoryRead\x12\x18\n\x07address\x18\x01\x20\x01(\rR\x07address\x12\x16\
\x18\x01\x20\x03(\x0b2=.hw.trezor.messages.debug.DebugLinkGcInfo.DebugLi\ \n\x06length\x18\x02\x20\x01(\rR\x06length\")\n\x0fDebugLinkMemory\x12\
nkGcInfoItemR\x05items\x1a?\n\x13DebugLinkGcInfoItem\x12\x12\n\x04name\ \x16\n\x06memory\x18\x01\x20\x01(\x0cR\x06memory\"^\n\x14DebugLinkMemory\
\x18\x01\x20\x02(\tR\x04name\x12\x14\n\x05value\x18\x02\x20\x02(\x04R\ Write\x12\x18\n\x07address\x18\x01\x20\x01(\rR\x07address\x12\x16\n\x06m\
emory\x18\x02\x20\x01(\x0cR\x06memory\x12\x14\n\x05flash\x18\x03\x20\x01\
(\x08R\x05flash\"-\n\x13DebugLinkFlashErase\x12\x16\n\x06sector\x18\x01\
\x20\x01(\rR\x06sector\".\n\x14DebugLinkEraseSdCard\x12\x16\n\x06format\
\x18\x01\x20\x01(\x08R\x06format\"0\n\x14DebugLinkWatchLayout\x12\x14\n\
\x05watch\x18\x01\x20\x01(\x08R\x05watch:\x02\x18\x01\"\x1f\n\x19DebugLi\
nkResetDebugEvents:\x02\x18\x01\"\x1a\n\x18DebugLinkOptigaSetSecMax\"\
\x14\n\x12DebugLinkGetGcInfo\"\xa7\x01\n\x0fDebugLinkGcInfo\x12S\n\x05it\
ems\x18\x01\x20\x03(\x0b2=.hw.trezor.messages.debug.DebugLinkGcInfo.Debu\
gLinkGcInfoItemR\x05items\x1a?\n\x13DebugLinkGcInfoItem\x12\x12\n\x04nam\
e\x18\x01\x20\x02(\tR\x04name\x12\x14\n\x05value\x18\x02\x20\x02(\x04R\
\x05valueB=\n#com.satoshilabs.trezor.lib.protobufB\x12TrezorMessageDebug\ \x05valueB=\n#com.satoshilabs.trezor.lib.protobufB\x12TrezorMessageDebug\
\x80\xa6\x1d\x01\ \x80\xa6\x1d\x01\
"; ";
@ -4180,13 +5008,16 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
deps.push(super::messages_common::file_descriptor().clone()); deps.push(super::messages_common::file_descriptor().clone());
deps.push(super::messages_management::file_descriptor().clone()); deps.push(super::messages_management::file_descriptor().clone());
deps.push(super::options::file_descriptor().clone()); deps.push(super::options::file_descriptor().clone());
let mut messages = ::std::vec::Vec::with_capacity(19); let mut messages = ::std::vec::Vec::with_capacity(22);
messages.push(DebugLinkDecision::generated_message_descriptor_data()); messages.push(DebugLinkDecision::generated_message_descriptor_data());
messages.push(DebugLinkLayout::generated_message_descriptor_data()); messages.push(DebugLinkLayout::generated_message_descriptor_data());
messages.push(DebugLinkReseedRandom::generated_message_descriptor_data()); messages.push(DebugLinkReseedRandom::generated_message_descriptor_data());
messages.push(DebugLinkRecordScreen::generated_message_descriptor_data()); messages.push(DebugLinkRecordScreen::generated_message_descriptor_data());
messages.push(DebugLinkGetState::generated_message_descriptor_data()); messages.push(DebugLinkGetState::generated_message_descriptor_data());
messages.push(DebugLinkState::generated_message_descriptor_data()); messages.push(DebugLinkState::generated_message_descriptor_data());
messages.push(DebugLinkGetPairingInfo::generated_message_descriptor_data());
messages.push(DebugLinkPairingInfo::generated_message_descriptor_data());
messages.push(DebugLinkToggleThpPairingDialog::generated_message_descriptor_data());
messages.push(DebugLinkStop::generated_message_descriptor_data()); messages.push(DebugLinkStop::generated_message_descriptor_data());
messages.push(DebugLinkLog::generated_message_descriptor_data()); messages.push(DebugLinkLog::generated_message_descriptor_data());
messages.push(DebugLinkMemoryRead::generated_message_descriptor_data()); messages.push(DebugLinkMemoryRead::generated_message_descriptor_data());

File diff suppressed because it is too large Load Diff

View File

@ -24,6 +24,7 @@ mod generated {
messages_definitions messages_definitions
messages_management messages_management
messages_benchmark messages_benchmark
messages_thp
options options
"bitcoin" => messages_bitcoin "bitcoin" => messages_bitcoin