diff --git a/common/protob/messages.proto b/common/protob/messages.proto index c7146bf7a..13dd335ee 100644 --- a/common/protob/messages.proto +++ b/common/protob/messages.proto @@ -42,6 +42,10 @@ extend google.protobuf.EnumValueOptions { optional bool wire_tiny = 50006; // message is handled by Trezor when the USB stack is in tiny mode optional bool wire_bootloader = 50007; // message is only handled by Trezor Bootloader optional bool wire_no_fsm = 50008; // message is not handled by Trezor unless the USB stack is in tiny mode + optional bool channel_in = 50009; + optional bool channel_out = 50010; + optional bool pairing_in = 50011; + optional bool pairing_out = 50012; optional bool bitcoin_only = 60000; // enum value is available on BITCOIN_ONLY build // (messages not marked bitcoin_only will be EXCLUDED) @@ -377,23 +381,23 @@ enum MessageType { MessageType_SolanaTxSignature = 905 [(wire_out) = true]; // THP - MessageType_ThpStartPairingRequest = 1000 [(bitcoin_only) = true, (wire_in) = true]; - MessageType_ThpCredentialRequest = 1002 [(bitcoin_only) = true, (wire_in) = true]; - MessageType_ThpCredentialResponse = 1003 [(bitcoin_only) = true, (wire_out) = true]; - MessageType_ThpEndRequest = 1004 [(bitcoin_only) = true, (wire_in) = true]; - MessageType_ThpEndResponse = 1005 [(bitcoin_only) = true, (wire_out) = true]; - MessageType_ThpCreateNewSession = 1006[(bitcoin_only)=true,(wire_in)=true]; - MessageType_ThpNewSession = 1007[(bitcoin_only)=true,(wire_out)=true]; - MessageType_ThpCodeEntryCommitment = 1016[(bitcoin_only)=true,(wire_out)=true]; - MessageType_ThpCodeEntryChallenge = 1017[(bitcoin_only)=true,(wire_in)=true]; - MessageType_ThpCodeEntryCpaceHost = 1018[(bitcoin_only)=true,(wire_in)=true]; - MessageType_ThpCodeEntryCpaceTrezor = 1019[(bitcoin_only)=true,(wire_out)=true]; - MessageType_ThpCodeEntryTag = 1020[(bitcoin_only)=true,(wire_in)=true]; - MessageType_ThpCodeEntrySecret = 1021[(bitcoin_only)=true,(wire_out)=true]; - MessageType_ThpQrCodeTag = 1024[(bitcoin_only)=true,(wire_in)=true]; - MessageType_ThpQrCodeSecret = 1025[(bitcoin_only)=true,(wire_out)=true]; - MessageType_ThpNfcUnidirectionalTag = 1032[(bitcoin_only)=true,(wire_in)=true]; - MessageType_ThpNfcUnideirectionalSecret = 1033[(bitcoin_only)=true,(wire_in)=true]; + MessageType_ThpCreateNewSession = 1000[(bitcoin_only)=true, (wire_in)=true, (channel_in) = true]; + MessageType_ThpNewSession = 1001[(bitcoin_only)=true, (wire_out)=true, (channel_out) = true]; + MessageType_ThpStartPairingRequest = 1008 [(bitcoin_only) = true, (wire_in) = true, (pairing_in) = true]; + MessageType_ThpCredentialRequest = 1009 [(bitcoin_only) = true, (wire_in) = true, (pairing_in) = true]; + MessageType_ThpCredentialResponse = 1010 [(bitcoin_only) = true, (wire_out) = true, (pairing_out) = true]; + MessageType_ThpEndRequest = 1011 [(bitcoin_only) = true, (wire_in) = true, (pairing_in) = true]; + MessageType_ThpEndResponse = 1012[(bitcoin_only) = true, (wire_out) = true, (pairing_out) = true]; + MessageType_ThpCodeEntryCommitment = 1016[(bitcoin_only)=true, (wire_out)=true, (pairing_out) = true]; + MessageType_ThpCodeEntryChallenge = 1017[(bitcoin_only)=true, (wire_in)=true, (pairing_in) = true]; + MessageType_ThpCodeEntryCpaceHost = 1018[(bitcoin_only)=true, (wire_in)=true, (pairing_in) = true]; + MessageType_ThpCodeEntryCpaceTrezor = 1019[(bitcoin_only)=true, (wire_out)=true, (pairing_out) = true]; + MessageType_ThpCodeEntryTag = 1020[(bitcoin_only)=true, (wire_in)=true, (pairing_in) = true]; + MessageType_ThpCodeEntrySecret = 1021[(bitcoin_only)=true, (wire_out)=true, (pairing_out) = true]; + MessageType_ThpQrCodeTag = 1024[(bitcoin_only)=true, (wire_in)=true, (pairing_in) = true]; + MessageType_ThpQrCodeSecret = 1025[(bitcoin_only)=true, (wire_out)=true, (pairing_out) = true]; + MessageType_ThpNfcUnidirectionalTag = 1032[(bitcoin_only)=true, (wire_in)=true, (pairing_in) = true]; + MessageType_ThpNfcUnideirectionalSecret = 1033[(bitcoin_only)=true, (wire_in)=true, (pairing_in) = true]; } diff --git a/core/src/trezor/enums/MessageType.py b/core/src/trezor/enums/MessageType.py index a13add619..3a1ce2226 100644 --- a/core/src/trezor/enums/MessageType.py +++ b/core/src/trezor/enums/MessageType.py @@ -97,13 +97,13 @@ DebugLinkRecordScreen = 9003 DebugLinkEraseSdCard = 9005 DebugLinkWatchLayout = 9006 DebugLinkResetDebugEvents = 9007 -ThpStartPairingRequest = 1000 -ThpCredentialRequest = 1002 -ThpCredentialResponse = 1003 -ThpEndRequest = 1004 -ThpEndResponse = 1005 -ThpCreateNewSession = 1006 -ThpNewSession = 1007 +ThpCreateNewSession = 1000 +ThpNewSession = 1001 +ThpStartPairingRequest = 1008 +ThpCredentialRequest = 1009 +ThpCredentialResponse = 1010 +ThpEndRequest = 1011 +ThpEndResponse = 1012 ThpCodeEntryCommitment = 1016 ThpCodeEntryChallenge = 1017 ThpCodeEntryCpaceHost = 1018 diff --git a/core/src/trezor/enums/__init__.py b/core/src/trezor/enums/__init__.py index 77ff59fcb..7ec000dbb 100644 --- a/core/src/trezor/enums/__init__.py +++ b/core/src/trezor/enums/__init__.py @@ -264,13 +264,13 @@ if TYPE_CHECKING: SolanaAddress = 903 SolanaSignTx = 904 SolanaTxSignature = 905 - ThpStartPairingRequest = 1000 - ThpCredentialRequest = 1002 - ThpCredentialResponse = 1003 - ThpEndRequest = 1004 - ThpEndResponse = 1005 - ThpCreateNewSession = 1006 - ThpNewSession = 1007 + ThpCreateNewSession = 1000 + ThpNewSession = 1001 + ThpStartPairingRequest = 1008 + ThpCredentialRequest = 1009 + ThpCredentialResponse = 1010 + ThpEndRequest = 1011 + ThpEndResponse = 1012 ThpCodeEntryCommitment = 1016 ThpCodeEntryChallenge = 1017 ThpCodeEntryCpaceHost = 1018 diff --git a/core/src/trezor/wire/thp/channel.py b/core/src/trezor/wire/thp/channel.py index be19be1b3..a3c9ad7c1 100644 --- a/core/src/trezor/wire/thp/channel.py +++ b/core/src/trezor/wire/thp/channel.py @@ -356,14 +356,17 @@ class Channel(Context): self._decrypt_buffer(message_length) - message_type = ustruct.unpack(">H", self.buffer[INIT_DATA_OFFSET:])[0] + message_type = ustruct.unpack( + ">H", self.buffer[INIT_DATA_OFFSET + SESSION_ID_LENGTH :] + )[0] self.connection_context.incoming_message.publish( MessageWithType( message_type, self.buffer[ INIT_DATA_OFFSET - + MESSAGE_TYPE_LENGTH : message_length + + MESSAGE_TYPE_LENGTH + + SESSION_ID_LENGTH : message_length - CHECKSUM_LENGTH - TAG_LENGTH ], diff --git a/python/src/trezorlib/messages.py b/python/src/trezorlib/messages.py index 38abda970..c78369046 100644 --- a/python/src/trezorlib/messages.py +++ b/python/src/trezorlib/messages.py @@ -272,13 +272,13 @@ class MessageType(IntEnum): SolanaAddress = 903 SolanaSignTx = 904 SolanaTxSignature = 905 - ThpStartPairingRequest = 1000 - ThpCredentialRequest = 1002 - ThpCredentialResponse = 1003 - ThpEndRequest = 1004 - ThpEndResponse = 1005 - ThpCreateNewSession = 1006 - ThpNewSession = 1007 + ThpCreateNewSession = 1000 + ThpNewSession = 1001 + ThpStartPairingRequest = 1008 + ThpCredentialRequest = 1009 + ThpCredentialResponse = 1010 + ThpEndRequest = 1011 + ThpEndResponse = 1012 ThpCodeEntryCommitment = 1016 ThpCodeEntryChallenge = 1017 ThpCodeEntryCpaceHost = 1018 @@ -7771,7 +7771,7 @@ class ThpHandshakeCompletionReqNoisePayload(protobuf.MessageType): class ThpCreateNewSession(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1006 + 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), @@ -7788,7 +7788,7 @@ class ThpCreateNewSession(protobuf.MessageType): class ThpNewSession(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1007 + MESSAGE_WIRE_TYPE = 1001 FIELDS = { 1: protobuf.Field("new_session_id", "uint32", repeated=False, required=False, default=None), } @@ -7802,7 +7802,7 @@ class ThpNewSession(protobuf.MessageType): class ThpStartPairingRequest(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1000 + MESSAGE_WIRE_TYPE = 1008 FIELDS = { 1: protobuf.Field("host_name", "bytes", repeated=False, required=False, default=None), } @@ -7956,7 +7956,7 @@ class ThpNfcUnideirectionalSecret(protobuf.MessageType): class ThpCredentialRequest(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1002 + MESSAGE_WIRE_TYPE = 1009 FIELDS = { 1: protobuf.Field("host_static_pubkey", "bytes", repeated=False, required=False, default=None), } @@ -7970,7 +7970,7 @@ class ThpCredentialRequest(protobuf.MessageType): class ThpCredentialResponse(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1003 + MESSAGE_WIRE_TYPE = 1010 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), @@ -7987,11 +7987,11 @@ class ThpCredentialResponse(protobuf.MessageType): class ThpEndRequest(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1004 + MESSAGE_WIRE_TYPE = 1011 class ThpEndResponse(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1005 + MESSAGE_WIRE_TYPE = 1012 class WebAuthnListResidentCredentials(protobuf.MessageType): diff --git a/rust/trezor-client/src/messages/generated.rs b/rust/trezor-client/src/messages/generated.rs index 3dab00276..fa9e9e30b 100644 --- a/rust/trezor-client/src/messages/generated.rs +++ b/rust/trezor-client/src/messages/generated.rs @@ -82,13 +82,13 @@ trezor_message_impl! { DebugLinkEraseSdCard => MessageType_DebugLinkEraseSdCard, DebugLinkWatchLayout => MessageType_DebugLinkWatchLayout, DebugLinkResetDebugEvents => MessageType_DebugLinkResetDebugEvents, + ThpCreateNewSession => MessageType_ThpCreateNewSession, + ThpNewSession => MessageType_ThpNewSession, ThpStartPairingRequest => MessageType_ThpStartPairingRequest, ThpCredentialRequest => MessageType_ThpCredentialRequest, ThpCredentialResponse => MessageType_ThpCredentialResponse, ThpEndRequest => MessageType_ThpEndRequest, ThpEndResponse => MessageType_ThpEndResponse, - ThpCreateNewSession => MessageType_ThpCreateNewSession, - ThpNewSession => MessageType_ThpNewSession, ThpCodeEntryCommitment => MessageType_ThpCodeEntryCommitment, ThpCodeEntryChallenge => MessageType_ThpCodeEntryChallenge, ThpCodeEntryCpaceHost => MessageType_ThpCodeEntryCpaceHost, diff --git a/rust/trezor-client/src/protos/generated/messages.rs b/rust/trezor-client/src/protos/generated/messages.rs index b3ed56e4b..8ce6a538f 100644 --- a/rust/trezor-client/src/protos/generated/messages.rs +++ b/rust/trezor-client/src/protos/generated/messages.rs @@ -514,20 +514,20 @@ pub enum MessageType { MessageType_SolanaSignTx = 904, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_SolanaTxSignature) 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_ThpNewSession) + MessageType_ThpNewSession = 1001, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpStartPairingRequest) - MessageType_ThpStartPairingRequest = 1000, + MessageType_ThpStartPairingRequest = 1008, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCredentialRequest) - MessageType_ThpCredentialRequest = 1002, + MessageType_ThpCredentialRequest = 1009, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCredentialResponse) - MessageType_ThpCredentialResponse = 1003, + MessageType_ThpCredentialResponse = 1010, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpEndRequest) - MessageType_ThpEndRequest = 1004, + MessageType_ThpEndRequest = 1011, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpEndResponse) - MessageType_ThpEndResponse = 1005, - // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCreateNewSession) - MessageType_ThpCreateNewSession = 1006, - // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpNewSession) - MessageType_ThpNewSession = 1007, + MessageType_ThpEndResponse = 1012, // @@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) @@ -802,13 +802,13 @@ impl ::protobuf::Enum for MessageType { 903 => ::std::option::Option::Some(MessageType::MessageType_SolanaAddress), 904 => ::std::option::Option::Some(MessageType::MessageType_SolanaSignTx), 905 => ::std::option::Option::Some(MessageType::MessageType_SolanaTxSignature), - 1000 => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingRequest), - 1002 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialRequest), - 1003 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialResponse), - 1004 => ::std::option::Option::Some(MessageType::MessageType_ThpEndRequest), - 1005 => ::std::option::Option::Some(MessageType::MessageType_ThpEndResponse), - 1006 => ::std::option::Option::Some(MessageType::MessageType_ThpCreateNewSession), - 1007 => ::std::option::Option::Some(MessageType::MessageType_ThpNewSession), + 1000 => ::std::option::Option::Some(MessageType::MessageType_ThpCreateNewSession), + 1001 => ::std::option::Option::Some(MessageType::MessageType_ThpNewSession), + 1008 => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingRequest), + 1009 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialRequest), + 1010 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialResponse), + 1011 => ::std::option::Option::Some(MessageType::MessageType_ThpEndRequest), + 1012 => ::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_ThpCodeEntryCpaceHost), @@ -1068,13 +1068,13 @@ impl ::protobuf::Enum for MessageType { "MessageType_SolanaAddress" => ::std::option::Option::Some(MessageType::MessageType_SolanaAddress), "MessageType_SolanaSignTx" => ::std::option::Option::Some(MessageType::MessageType_SolanaSignTx), "MessageType_SolanaTxSignature" => ::std::option::Option::Some(MessageType::MessageType_SolanaTxSignature), + "MessageType_ThpCreateNewSession" => ::std::option::Option::Some(MessageType::MessageType_ThpCreateNewSession), + "MessageType_ThpNewSession" => ::std::option::Option::Some(MessageType::MessageType_ThpNewSession), "MessageType_ThpStartPairingRequest" => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingRequest), "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_ThpCreateNewSession" => ::std::option::Option::Some(MessageType::MessageType_ThpCreateNewSession), - "MessageType_ThpNewSession" => ::std::option::Option::Some(MessageType::MessageType_ThpNewSession), "MessageType_ThpCodeEntryCommitment" => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCommitment), "MessageType_ThpCodeEntryChallenge" => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryChallenge), "MessageType_ThpCodeEntryCpaceHost" => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCpaceHost), @@ -1333,13 +1333,13 @@ impl ::protobuf::Enum for MessageType { MessageType::MessageType_SolanaAddress, MessageType::MessageType_SolanaSignTx, MessageType::MessageType_SolanaTxSignature, + MessageType::MessageType_ThpCreateNewSession, + MessageType::MessageType_ThpNewSession, MessageType::MessageType_ThpStartPairingRequest, MessageType::MessageType_ThpCredentialRequest, MessageType::MessageType_ThpCredentialResponse, MessageType::MessageType_ThpEndRequest, MessageType::MessageType_ThpEndResponse, - MessageType::MessageType_ThpCreateNewSession, - MessageType::MessageType_ThpNewSession, MessageType::MessageType_ThpCodeEntryCommitment, MessageType::MessageType_ThpCodeEntryChallenge, MessageType::MessageType_ThpCodeEntryCpaceHost, @@ -1604,13 +1604,13 @@ impl ::protobuf::EnumFull for MessageType { MessageType::MessageType_SolanaAddress => 240, MessageType::MessageType_SolanaSignTx => 241, MessageType::MessageType_SolanaTxSignature => 242, - MessageType::MessageType_ThpStartPairingRequest => 243, - MessageType::MessageType_ThpCredentialRequest => 244, - MessageType::MessageType_ThpCredentialResponse => 245, - MessageType::MessageType_ThpEndRequest => 246, - MessageType::MessageType_ThpEndResponse => 247, - MessageType::MessageType_ThpCreateNewSession => 248, - MessageType::MessageType_ThpNewSession => 249, + MessageType::MessageType_ThpCreateNewSession => 243, + MessageType::MessageType_ThpNewSession => 244, + MessageType::MessageType_ThpStartPairingRequest => 245, + MessageType::MessageType_ThpCredentialRequest => 246, + MessageType::MessageType_ThpCredentialResponse => 247, + MessageType::MessageType_ThpEndRequest => 248, + MessageType::MessageType_ThpEndResponse => 249, MessageType::MessageType_ThpCodeEntryCommitment => 250, MessageType::MessageType_ThpCodeEntryChallenge => 251, MessageType::MessageType_ThpCodeEntryCpaceHost => 252, @@ -1655,6 +1655,14 @@ pub mod exts { pub const wire_no_fsm: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::EnumValueOptions, bool> = ::protobuf::ext::ExtFieldOptional::new(50008, ::protobuf::descriptor::field_descriptor_proto::Type::TYPE_BOOL); + pub const channel_in: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::EnumValueOptions, bool> = ::protobuf::ext::ExtFieldOptional::new(50009, ::protobuf::descriptor::field_descriptor_proto::Type::TYPE_BOOL); + + pub const channel_out: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::EnumValueOptions, bool> = ::protobuf::ext::ExtFieldOptional::new(50010, ::protobuf::descriptor::field_descriptor_proto::Type::TYPE_BOOL); + + pub const pairing_in: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::EnumValueOptions, bool> = ::protobuf::ext::ExtFieldOptional::new(50011, ::protobuf::descriptor::field_descriptor_proto::Type::TYPE_BOOL); + + pub const pairing_out: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::EnumValueOptions, bool> = ::protobuf::ext::ExtFieldOptional::new(50012, ::protobuf::descriptor::field_descriptor_proto::Type::TYPE_BOOL); + pub const bitcoin_only: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::EnumValueOptions, bool> = ::protobuf::ext::ExtFieldOptional::new(60000, ::protobuf::descriptor::field_descriptor_proto::Type::TYPE_BOOL); pub const has_bitcoin_only_values: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::EnumOptions, bool> = ::protobuf::ext::ExtFieldOptional::new(51001, ::protobuf::descriptor::field_descriptor_proto::Type::TYPE_BOOL); @@ -1670,7 +1678,7 @@ pub mod exts { static file_descriptor_proto_data: &'static [u8] = b"\ \n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\x20google/protobuf/de\ - scriptor.proto*\xc6Z\n\x0bMessageType\x12(\n\x16MessageType_Initialize\ + scriptor.proto*\x8a[\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\x10\x01\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12\ %\n\x13MessageType_Success\x10\x02\x1a\x0c\x80\xa6\x1d\x01\xa8\xb5\x18\ @@ -1945,52 +1953,61 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_SolanaAddress\x10\x87\ \x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_SolanaSignTx\x10\x88\ \x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_SolanaTxSignature\x10\ - \x89\x07\x1a\x04\x98\xb5\x18\x01\x121\n\"MessageType_ThpStartPairingRequ\ - est\x10\xe8\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12/\n\x20Messag\ - eType_ThpCredentialRequest\x10\xea\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\ - \x18\x01\x120\n!MessageType_ThpCredentialResponse\x10\xeb\x07\x1a\x08\ - \x80\xa6\x1d\x01\x98\xb5\x18\x01\x12(\n\x19MessageType_ThpEndRequest\x10\ - \xec\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12)\n\x1aMessageType_T\ - hpEndResponse\x10\xed\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12.\n\ - \x1fMessageType_ThpCreateNewSession\x10\xee\x07\x1a\x08\x80\xa6\x1d\x01\ - \x90\xb5\x18\x01\x12(\n\x19MessageType_ThpNewSession\x10\xef\x07\x1a\x08\ - \x80\xa6\x1d\x01\x98\xb5\x18\x01\x121\n\"MessageType_ThpCodeEntryCommitm\ - ent\x10\xf8\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x120\n!MessageTy\ - pe_ThpCodeEntryChallenge\x10\xf9\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\ - \x01\x120\n!MessageType_ThpCodeEntryCpaceHost\x10\xfa\x07\x1a\x08\x80\ - \xa6\x1d\x01\x90\xb5\x18\x01\x122\n#MessageType_ThpCodeEntryCpaceTrezor\ - \x10\xfb\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12*\n\x1bMessageTy\ - pe_ThpCodeEntryTag\x10\xfc\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\ - \x12-\n\x1eMessageType_ThpCodeEntrySecret\x10\xfd\x07\x1a\x08\x80\xa6\ - \x1d\x01\x98\xb5\x18\x01\x12'\n\x18MessageType_ThpQrCodeTag\x10\x80\x08\ - \x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12*\n\x1bMessageType_ThpQrCode\ - Secret\x10\x81\x08\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x122\n#Messag\ - eType_ThpNfcUnidirectionalTag\x10\x88\x08\x1a\x08\x80\xa6\x1d\x01\x90\ - \xb5\x18\x01\x126\n'MessageType_ThpNfcUnideirectionalSecret\x10\x89\x08\ - \x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\ - \x08Z\x10\\\"\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:<\n\x07wire_in\x18\xd2\x86\x03\x20\x01(\x08\x12!.google.protobuf.En\ - umValueOptionsR\x06wireIn:>\n\x08wire_out\x18\xd3\x86\x03\x20\x01(\x08\ - \x12!.google.protobuf.EnumValueOptionsR\x07wireOut:G\n\rwire_debug_in\ - \x18\xd4\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x0b\ - wireDebugIn:I\n\x0ewire_debug_out\x18\xd5\x86\x03\x20\x01(\x08\x12!.goog\ - le.protobuf.EnumValueOptionsR\x0cwireDebugOut:@\n\twire_tiny\x18\xd6\x86\ - \x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x08wireTiny:L\n\ - \x0fwire_bootloader\x18\xd7\x86\x03\x20\x01(\x08\x12!.google.protobuf.En\ - umValueOptionsR\x0ewireBootloader:C\n\x0bwire_no_fsm\x18\xd8\x86\x03\x20\ - \x01(\x08\x12!.google.protobuf.EnumValueOptionsR\twireNoFsm:F\n\x0cbitco\ - in_only\x18\xe0\xd4\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptio\ - nsR\x0bbitcoinOnly:U\n\x17has_bitcoin_only_values\x18\xb9\x8e\x03\x20\ - \x01(\x08\x12\x1c.google.protobuf.EnumOptionsR\x14hasBitcoinOnlyValues:T\ - \n\x14experimental_message\x18\xa1\x96\x03\x20\x01(\x08\x12\x1f.google.p\ - rotobuf.MessageOptionsR\x13experimentalMessage:>\n\twire_type\x18\xa2\ - \x96\x03\x20\x01(\r\x12\x1f.google.protobuf.MessageOptionsR\x08wireType:\ - N\n\x12experimental_field\x18\x89\x9e\x03\x20\x01(\x08\x12\x1d.google.pr\ - otobuf.FieldOptionsR\x11experimentalField:U\n\x17include_in_bitcoin_only\ - \x18\xe0\xd4\x03\x20\x01(\x08\x12\x1c.google.protobuf.FileOptionsR\x14in\ - cludeInBitcoinOnlyB8\n#com.satoshilabs.trezor.lib.protobufB\rTrezorMessa\ - ge\x80\xa6\x1d\x01\ + \x89\x07\x1a\x04\x98\xb5\x18\x01\x122\n\x1fMessageType_ThpCreateNewSessi\ + on\x10\xe8\x07\x1a\x0c\x80\xa6\x1d\x01\xc8\xb5\x18\x01\x90\xb5\x18\x01\ + \x12,\n\x19MessageType_ThpNewSession\x10\xe9\x07\x1a\x0c\x80\xa6\x1d\x01\ + \xd0\xb5\x18\x01\x98\xb5\x18\x01\x125\n\"MessageType_ThpStartPairingRequ\ + est\x10\xf0\x07\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\ + \x123\n\x20MessageType_ThpCredentialRequest\x10\xf1\x07\x1a\x0c\x80\xa6\ + \x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x124\n!MessageType_ThpCredentia\ + lResponse\x10\xf2\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\ + \x18\x01\x12,\n\x19MessageType_ThpEndRequest\x10\xf3\x07\x1a\x0c\x80\xa6\ + \x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x12-\n\x1aMessageType_ThpEndRes\ + ponse\x10\xf4\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\ + \x01\x125\n\"MessageType_ThpCodeEntryCommitment\x10\xf8\x07\x1a\x0c\x80\ + \xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\x01\x124\n!MessageType_ThpCodeE\ + ntryChallenge\x10\xf9\x07\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\ + \xb5\x18\x01\x124\n!MessageType_ThpCodeEntryCpaceHost\x10\xfa\x07\x1a\ + \x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x126\n#MessageType_\ + ThpCodeEntryCpaceTrezor\x10\xfb\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\ + \x01\x98\xb5\x18\x01\x12.\n\x1bMessageType_ThpCodeEntryTag\x10\xfc\x07\ + \x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x121\n\x1eMessa\ + geType_ThpCodeEntrySecret\x10\xfd\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\ + \x18\x01\x98\xb5\x18\x01\x12+\n\x18MessageType_ThpQrCodeTag\x10\x80\x08\ + \x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x12.\n\x1bMessa\ + geType_ThpQrCodeSecret\x10\x81\x08\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\ + \x01\x98\xb5\x18\x01\x126\n#MessageType_ThpNfcUnidirectionalTag\x10\x88\ + \x08\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x12:\n'Mess\ + ageType_ThpNfcUnideirectionalSecret\x10\x89\x08\x1a\x0c\x80\xa6\x1d\x01\ + \xd8\xb5\x18\x01\x90\xb5\x18\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08Z\x10\ + \\\"\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:<\n\ + \x07wire_in\x18\xd2\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueO\ + ptionsR\x06wireIn:>\n\x08wire_out\x18\xd3\x86\x03\x20\x01(\x08\x12!.goog\ + le.protobuf.EnumValueOptionsR\x07wireOut:G\n\rwire_debug_in\x18\xd4\x86\ + \x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x0bwireDebugIn:\ + I\n\x0ewire_debug_out\x18\xd5\x86\x03\x20\x01(\x08\x12!.google.protobuf.\ + EnumValueOptionsR\x0cwireDebugOut:@\n\twire_tiny\x18\xd6\x86\x03\x20\x01\ + (\x08\x12!.google.protobuf.EnumValueOptionsR\x08wireTiny:L\n\x0fwire_boo\ + tloader\x18\xd7\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptio\ + nsR\x0ewireBootloader:C\n\x0bwire_no_fsm\x18\xd8\x86\x03\x20\x01(\x08\ + \x12!.google.protobuf.EnumValueOptionsR\twireNoFsm:B\n\nchannel_in\x18\ + \xd9\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\tchanne\ + lIn:D\n\x0bchannel_out\x18\xda\x86\x03\x20\x01(\x08\x12!.google.protobuf\ + .EnumValueOptionsR\nchannelOut:B\n\npairing_in\x18\xdb\x86\x03\x20\x01(\ + \x08\x12!.google.protobuf.EnumValueOptionsR\tpairingIn:D\n\x0bpairing_ou\ + t\x18\xdc\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\np\ + airingOut:F\n\x0cbitcoin_only\x18\xe0\xd4\x03\x20\x01(\x08\x12!.google.p\ + rotobuf.EnumValueOptionsR\x0bbitcoinOnly:U\n\x17has_bitcoin_only_values\ + \x18\xb9\x8e\x03\x20\x01(\x08\x12\x1c.google.protobuf.EnumOptionsR\x14ha\ + sBitcoinOnlyValues:T\n\x14experimental_message\x18\xa1\x96\x03\x20\x01(\ + \x08\x12\x1f.google.protobuf.MessageOptionsR\x13experimentalMessage:>\n\ + \twire_type\x18\xa2\x96\x03\x20\x01(\r\x12\x1f.google.protobuf.MessageOp\ + tionsR\x08wireType:N\n\x12experimental_field\x18\x89\x9e\x03\x20\x01(\ + \x08\x12\x1d.google.protobuf.FieldOptionsR\x11experimentalField:U\n\x17i\ + nclude_in_bitcoin_only\x18\xe0\xd4\x03\x20\x01(\x08\x12\x1c.google.proto\ + buf.FileOptionsR\x14includeInBitcoinOnlyB8\n#com.satoshilabs.trezor.lib.\ + protobufB\rTrezorMessage\x80\xa6\x1d\x01\ "; /// `FileDescriptorProto` object which was a source for this generated file