From dca9f05921a330c0c2692ebb8d13b2abecb9a4d2 Mon Sep 17 00:00:00 2001 From: M1nd3r Date: Thu, 11 Apr 2024 14:15:38 +0200 Subject: [PATCH] Add ThpPairingPreparationsFinished message --- common/protob/messages-thp.proto | 16 +- common/protob/messages.proto | 9 +- core/src/apps/thp/pairing.py | 8 +- core/src/trezor/enums/MessageType.py | 9 +- core/src/trezor/enums/__init__.py | 9 +- core/src/trezor/messages.py | 6 + python/src/trezorlib/messages.py | 21 ++- rust/trezor-client/src/messages/generated.rs | 1 + .../src/protos/generated/messages.rs | 154 +++++++++--------- .../src/protos/generated/messages_thp.rs | 149 ++++++++++++++--- 10 files changed, 259 insertions(+), 123 deletions(-) diff --git a/common/protob/messages-thp.proto b/common/protob/messages-thp.proto index 5d16cfb61..50647f675 100644 --- a/common/protob/messages-thp.proto +++ b/common/protob/messages-thp.proto @@ -58,13 +58,21 @@ message ThpNewSession{ * Request: Start pairing process. * @start * @next ThpCodeEntryCommitment - * @next ThpQrCodeTag // Sent by the Host - * @next ThpNfcUnidirectionalTag // Sent by the Host + * @next ThpPairingPreparationsFinished */ message ThpStartPairingRequest{ optional string host_name = 1; // Human-readable host name } +/** + * Response: Pairing is ready for user input / OOB communication. + * @next ThpCodeEntryCpace + * @next ThpQrCodeTag + * @next ThpNfcUnidirectionalTag + */ + message ThpPairingPreparationsFinished{ +} + /** * Response: If Code Entry is an allowed pairing option, Trezor responds with a commitment. * @next ThpCodeEntryChallenge @@ -75,9 +83,7 @@ message ThpCodeEntryCommitment { /** * Response: Host responds to Trezor's Code Entry commitment with a challenge. - * @next ThpCodeEntryCpaceHost // Sent by the Host - * @next ThpQrCodeTag // Sent by the Host - * @next ThpNfcUnidirectionalTag // Sent by the Host + * @next ThpPairingPreparationsFinished */ message ThpCodeEntryChallenge { optional bytes challenge = 1; // host's random 32-byte challenge diff --git a/common/protob/messages.proto b/common/protob/messages.proto index df1c31152..829f966e7 100644 --- a/common/protob/messages.proto +++ b/common/protob/messages.proto @@ -384,10 +384,11 @@ enum MessageType { 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_ThpPairingPreparationsFinished = 1009 [(bitcoin_only) = true, (wire_in) = true, (pairing_out) = true]; + MessageType_ThpCredentialRequest = 1010 [(bitcoin_only) = true, (wire_in) = true, (pairing_in) = true]; + MessageType_ThpCredentialResponse = 1011 [(bitcoin_only) = true, (wire_out) = true, (pairing_out) = true]; + MessageType_ThpEndRequest = 1012 [(bitcoin_only) = true, (wire_in) = true, (pairing_in) = true]; + MessageType_ThpEndResponse = 1013[(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]; diff --git a/core/src/apps/thp/pairing.py b/core/src/apps/thp/pairing.py index 6842b3ea2..a83c6d3a1 100644 --- a/core/src/apps/thp/pairing.py +++ b/core/src/apps/thp/pairing.py @@ -13,6 +13,7 @@ from trezor.messages import ( ThpEndResponse, ThpNfcUnideirectionalSecret, ThpNfcUnidirectionalTag, + ThpPairingPreparationsFinished, ThpQrCodeSecret, ThpQrCodeTag, ThpStartPairingRequest, @@ -27,7 +28,7 @@ from trezor.wire.thp.thp_session import ThpError async def handle_pairing_request( channel: Channel, message: protobuf.MessageType -) -> ThpCodeEntryCommitment | None: +) -> ThpCodeEntryCommitment | ThpPairingPreparationsFinished: assert ThpStartPairingRequest.is_type_of(message) if __debug__: @@ -37,16 +38,17 @@ async def handle_pairing_request( channel.set_channel_state(ChannelState.TP2) return ThpCodeEntryCommitment() channel.set_channel_state(ChannelState.TP3) - return None + return ThpPairingPreparationsFinished() async def handle_code_entry_challenge( channel: Channel, message: protobuf.MessageType -) -> None: +) -> ThpPairingPreparationsFinished: assert ThpCodeEntryChallenge.is_type_of(message) _check_state(channel, ChannelState.TP2) channel.set_channel_state(ChannelState.TP3) + return ThpPairingPreparationsFinished() async def handle_code_entry_cpace( diff --git a/core/src/trezor/enums/MessageType.py b/core/src/trezor/enums/MessageType.py index 3a1ce2226..457debb2f 100644 --- a/core/src/trezor/enums/MessageType.py +++ b/core/src/trezor/enums/MessageType.py @@ -100,10 +100,11 @@ DebugLinkResetDebugEvents = 9007 ThpCreateNewSession = 1000 ThpNewSession = 1001 ThpStartPairingRequest = 1008 -ThpCredentialRequest = 1009 -ThpCredentialResponse = 1010 -ThpEndRequest = 1011 -ThpEndResponse = 1012 +ThpPairingPreparationsFinished = 1009 +ThpCredentialRequest = 1010 +ThpCredentialResponse = 1011 +ThpEndRequest = 1012 +ThpEndResponse = 1013 ThpCodeEntryCommitment = 1016 ThpCodeEntryChallenge = 1017 ThpCodeEntryCpaceHost = 1018 diff --git a/core/src/trezor/enums/__init__.py b/core/src/trezor/enums/__init__.py index 7ec000dbb..ac5f494d2 100644 --- a/core/src/trezor/enums/__init__.py +++ b/core/src/trezor/enums/__init__.py @@ -267,10 +267,11 @@ if TYPE_CHECKING: ThpCreateNewSession = 1000 ThpNewSession = 1001 ThpStartPairingRequest = 1008 - ThpCredentialRequest = 1009 - ThpCredentialResponse = 1010 - ThpEndRequest = 1011 - ThpEndResponse = 1012 + ThpPairingPreparationsFinished = 1009 + ThpCredentialRequest = 1010 + ThpCredentialResponse = 1011 + ThpEndRequest = 1012 + ThpEndResponse = 1013 ThpCodeEntryCommitment = 1016 ThpCodeEntryChallenge = 1017 ThpCodeEntryCpaceHost = 1018 diff --git a/core/src/trezor/messages.py b/core/src/trezor/messages.py index b1efad505..8e2ea44c3 100644 --- a/core/src/trezor/messages.py +++ b/core/src/trezor/messages.py @@ -6180,6 +6180,12 @@ if TYPE_CHECKING: def is_type_of(cls, msg: Any) -> TypeGuard["ThpStartPairingRequest"]: 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" diff --git a/python/src/trezorlib/messages.py b/python/src/trezorlib/messages.py index 07d80e02e..19fb71865 100644 --- a/python/src/trezorlib/messages.py +++ b/python/src/trezorlib/messages.py @@ -275,10 +275,11 @@ class MessageType(IntEnum): ThpCreateNewSession = 1000 ThpNewSession = 1001 ThpStartPairingRequest = 1008 - ThpCredentialRequest = 1009 - ThpCredentialResponse = 1010 - ThpEndRequest = 1011 - ThpEndResponse = 1012 + ThpPairingPreparationsFinished = 1009 + ThpCredentialRequest = 1010 + ThpCredentialResponse = 1011 + ThpEndRequest = 1012 + ThpEndResponse = 1013 ThpCodeEntryCommitment = 1016 ThpCodeEntryChallenge = 1017 ThpCodeEntryCpaceHost = 1018 @@ -7815,6 +7816,10 @@ class ThpStartPairingRequest(protobuf.MessageType): self.host_name = host_name +class ThpPairingPreparationsFinished(protobuf.MessageType): + MESSAGE_WIRE_TYPE = 1009 + + class ThpCodeEntryCommitment(protobuf.MessageType): MESSAGE_WIRE_TYPE = 1016 FIELDS = { @@ -7956,7 +7961,7 @@ class ThpNfcUnideirectionalSecret(protobuf.MessageType): class ThpCredentialRequest(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1009 + MESSAGE_WIRE_TYPE = 1010 FIELDS = { 1: protobuf.Field("host_static_pubkey", "bytes", repeated=False, required=False, default=None), } @@ -7970,7 +7975,7 @@ class ThpCredentialRequest(protobuf.MessageType): class ThpCredentialResponse(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1010 + 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), @@ -7987,11 +7992,11 @@ class ThpCredentialResponse(protobuf.MessageType): class ThpEndRequest(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1011 + MESSAGE_WIRE_TYPE = 1012 class ThpEndResponse(protobuf.MessageType): - MESSAGE_WIRE_TYPE = 1012 + MESSAGE_WIRE_TYPE = 1013 class WebAuthnListResidentCredentials(protobuf.MessageType): diff --git a/rust/trezor-client/src/messages/generated.rs b/rust/trezor-client/src/messages/generated.rs index fa9e9e30b..bfe8c701f 100644 --- a/rust/trezor-client/src/messages/generated.rs +++ b/rust/trezor-client/src/messages/generated.rs @@ -85,6 +85,7 @@ trezor_message_impl! { ThpCreateNewSession => MessageType_ThpCreateNewSession, ThpNewSession => MessageType_ThpNewSession, ThpStartPairingRequest => MessageType_ThpStartPairingRequest, + ThpPairingPreparationsFinished => MessageType_ThpPairingPreparationsFinished, ThpCredentialRequest => MessageType_ThpCredentialRequest, ThpCredentialResponse => MessageType_ThpCredentialResponse, ThpEndRequest => MessageType_ThpEndRequest, diff --git a/rust/trezor-client/src/protos/generated/messages.rs b/rust/trezor-client/src/protos/generated/messages.rs index 8ce6a538f..33ff06172 100644 --- a/rust/trezor-client/src/protos/generated/messages.rs +++ b/rust/trezor-client/src/protos/generated/messages.rs @@ -520,14 +520,16 @@ pub enum MessageType { MessageType_ThpNewSession = 1001, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpStartPairingRequest) MessageType_ThpStartPairingRequest = 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 = 1009, + MessageType_ThpCredentialRequest = 1010, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCredentialResponse) - MessageType_ThpCredentialResponse = 1010, + MessageType_ThpCredentialResponse = 1011, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpEndRequest) - MessageType_ThpEndRequest = 1011, + MessageType_ThpEndRequest = 1012, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpEndResponse) - MessageType_ThpEndResponse = 1012, + 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) @@ -805,10 +807,11 @@ impl ::protobuf::Enum for MessageType { 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), + 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_ThpCodeEntryCpaceHost), @@ -1071,6 +1074,7 @@ impl ::protobuf::Enum for MessageType { "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_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), @@ -1336,6 +1340,7 @@ impl ::protobuf::Enum for MessageType { MessageType::MessageType_ThpCreateNewSession, MessageType::MessageType_ThpNewSession, MessageType::MessageType_ThpStartPairingRequest, + MessageType::MessageType_ThpPairingPreparationsFinished, MessageType::MessageType_ThpCredentialRequest, MessageType::MessageType_ThpCredentialResponse, MessageType::MessageType_ThpEndRequest, @@ -1607,20 +1612,21 @@ impl ::protobuf::EnumFull for MessageType { 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, - MessageType::MessageType_ThpCodeEntryCpaceTrezor => 253, - MessageType::MessageType_ThpCodeEntryTag => 254, - MessageType::MessageType_ThpCodeEntrySecret => 255, - MessageType::MessageType_ThpQrCodeTag => 256, - MessageType::MessageType_ThpQrCodeSecret => 257, - MessageType::MessageType_ThpNfcUnidirectionalTag => 258, - MessageType::MessageType_ThpNfcUnideirectionalSecret => 259, + MessageType::MessageType_ThpPairingPreparationsFinished => 246, + MessageType::MessageType_ThpCredentialRequest => 247, + MessageType::MessageType_ThpCredentialResponse => 248, + MessageType::MessageType_ThpEndRequest => 249, + MessageType::MessageType_ThpEndResponse => 250, + MessageType::MessageType_ThpCodeEntryCommitment => 251, + MessageType::MessageType_ThpCodeEntryChallenge => 252, + MessageType::MessageType_ThpCodeEntryCpaceHost => 253, + MessageType::MessageType_ThpCodeEntryCpaceTrezor => 254, + MessageType::MessageType_ThpCodeEntryTag => 255, + MessageType::MessageType_ThpCodeEntrySecret => 256, + MessageType::MessageType_ThpQrCodeTag => 257, + MessageType::MessageType_ThpQrCodeSecret => 258, + MessageType::MessageType_ThpNfcUnidirectionalTag => 259, + MessageType::MessageType_ThpNfcUnideirectionalSecret => 260, }; Self::enum_descriptor().value_by_index(index) } @@ -1678,7 +1684,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*\x8a[\n\x0bMessageType\x12(\n\x16MessageType_Initialize\ + scriptor.proto*\xc9[\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\ @@ -1958,56 +1964,58 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \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\ + \x12=\n*MessageType_ThpPairingPreparationsFinished\x10\xf1\x07\x1a\x0c\ + \x80\xa6\x1d\x01\xe0\xb5\x18\x01\x90\xb5\x18\x01\x123\n\x20MessageType_T\ + hpCredentialRequest\x10\xf2\x07\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\ + \x90\xb5\x18\x01\x124\n!MessageType_ThpCredentialResponse\x10\xf3\x07\ + \x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\x01\x12,\n\x19Messa\ + geType_ThpEndRequest\x10\xf4\x07\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\ + \x90\xb5\x18\x01\x12-\n\x1aMessageType_ThpEndResponse\x10\xf5\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_ThpCodeEntryChallenge\x10\xf9\ + \x07\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x124\n!Mess\ + ageType_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\x1eMessageType_ThpCodeEntrySecre\ + t\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\x1bMessageType_ThpQrCodeSecret\ + \x10\x81\x08\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\x01\x12\ + 6\n#MessageType_ThpNfcUnidirectionalTag\x10\x88\x08\x1a\x0c\x80\xa6\x1d\ + \x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x12:\n'MessageType_ThpNfcUnideirect\ + ionalSecret\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.EnumValueOptionsR\x06wireIn:>\n\ + \x08wire_out\x18\xd3\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValue\ + OptionsR\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\x0c\ + wireDebugOut:@\n\twire_tiny\x18\xd6\x86\x03\x20\x01(\x08\x12!.google.pro\ + tobuf.EnumValueOptionsR\x08wireTiny:L\n\x0fwire_bootloader\x18\xd7\x86\ + \x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x0ewireBootload\ + er: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\tchannelIn:D\n\x0bchannel_ou\ + t\x18\xda\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\nc\ + hannelOut:B\n\npairing_in\x18\xdb\x86\x03\x20\x01(\x08\x12!.google.proto\ + buf.EnumValueOptionsR\tpairingIn:D\n\x0bpairing_out\x18\xdc\x86\x03\x20\ + \x01(\x08\x12!.google.protobuf.EnumValueOptionsR\npairingOut:F\n\x0cbitc\ + oin_only\x18\xe0\xd4\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOpti\ + onsR\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\ "; /// `FileDescriptorProto` object which was a source for this generated file diff --git a/rust/trezor-client/src/protos/generated/messages_thp.rs b/rust/trezor-client/src/protos/generated/messages_thp.rs index ef9301b36..d0fcde6d1 100644 --- a/rust/trezor-client/src/protos/generated/messages_thp.rs +++ b/rust/trezor-client/src/protos/generated/messages_thp.rs @@ -988,6 +988,109 @@ impl ::protobuf::reflect::ProtobufValue for ThpStartPairingRequest { type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; } +// @@protoc_insertion_point(message:hw.trezor.messages.thp.ThpPairingPreparationsFinished) +#[derive(PartialEq,Clone,Default,Debug)] +pub struct ThpPairingPreparationsFinished { + // special fields + // @@protoc_insertion_point(special_field:hw.trezor.messages.thp.ThpPairingPreparationsFinished.special_fields) + pub special_fields: ::protobuf::SpecialFields, +} + +impl<'a> ::std::default::Default for &'a ThpPairingPreparationsFinished { + fn default() -> &'a ThpPairingPreparationsFinished { + ::default_instance() + } +} + +impl ThpPairingPreparationsFinished { + pub fn new() -> ThpPairingPreparationsFinished { + ::std::default::Default::default() + } + + fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { + let mut fields = ::std::vec::Vec::with_capacity(0); + let mut oneofs = ::std::vec::Vec::with_capacity(0); + ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( + "ThpPairingPreparationsFinished", + fields, + oneofs, + ) + } +} + +impl ::protobuf::Message for ThpPairingPreparationsFinished { + const NAME: &'static str = "ThpPairingPreparationsFinished"; + + 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 { + 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; + 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<()> { + 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() -> ThpPairingPreparationsFinished { + ThpPairingPreparationsFinished::new() + } + + fn clear(&mut self) { + self.special_fields.clear(); + } + + fn default_instance() -> &'static ThpPairingPreparationsFinished { + static instance: ThpPairingPreparationsFinished = ThpPairingPreparationsFinished { + special_fields: ::protobuf::SpecialFields::new(), + }; + &instance + } +} + +impl ::protobuf::MessageFull for ThpPairingPreparationsFinished { + 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("ThpPairingPreparationsFinished").unwrap()).clone() + } +} + +impl ::std::fmt::Display for ThpPairingPreparationsFinished { + fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + ::protobuf::text_format::fmt(self, f) + } +} + +impl ::protobuf::reflect::ProtobufValue for ThpPairingPreparationsFinished { + type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; +} + // @@protoc_insertion_point(message:hw.trezor.messages.thp.ThpCodeEntryCommitment) #[derive(PartialEq,Clone,Default,Debug)] pub struct ThpCodeEntryCommitment { @@ -3236,27 +3339,28 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x12\x1e\n\npassphrase\x18\x01\x20\x01(\tR\npassphrase\x12\x1b\n\ton_dev\ ice\x18\x02\x20\x01(\x08R\x08onDevice\"5\n\rThpNewSession\x12$\n\x0enew_\ session_id\x18\x01\x20\x01(\rR\x0cnewSessionId\"5\n\x16ThpStartPairingRe\ - quest\x12\x1b\n\thost_name\x18\x01\x20\x01(\tR\x08hostName\"8\n\x16ThpCo\ - deEntryCommitment\x12\x1e\n\ncommitment\x18\x01\x20\x01(\x0cR\ncommitmen\ - t\"5\n\x15ThpCodeEntryChallenge\x12\x1c\n\tchallenge\x18\x01\x20\x01(\ - \x0cR\tchallenge\"J\n\x15ThpCodeEntryCpaceHost\x121\n\x15cpace_host_publ\ - ic_key\x18\x01\x20\x01(\x0cR\x12cpaceHostPublicKey\"P\n\x17ThpCodeEntryC\ - paceTrezor\x125\n\x17cpace_trezor_public_key\x18\x01\x20\x01(\x0cR\x14cp\ - aceTrezorPublicKey\"#\n\x0fThpCodeEntryTag\x12\x10\n\x03tag\x18\x02\x20\ - \x01(\x0cR\x03tag\",\n\x12ThpCodeEntrySecret\x12\x16\n\x06secret\x18\x01\ - \x20\x01(\x0cR\x06secret\"\x20\n\x0cThpQrCodeTag\x12\x10\n\x03tag\x18\ - \x01\x20\x01(\x0cR\x03tag\")\n\x0fThpQrCodeSecret\x12\x16\n\x06secret\ - \x18\x01\x20\x01(\x0cR\x06secret\"+\n\x17ThpNfcUnidirectionalTag\x12\x10\ - \n\x03tag\x18\x01\x20\x01(\x0cR\x03tag\"5\n\x1bThpNfcUnideirectionalSecr\ - et\x12\x16\n\x06secret\x18\x01\x20\x01(\x0cR\x06secret\"D\n\x14ThpCreden\ - tialRequest\x12,\n\x12host_static_pubkey\x18\x01\x20\x01(\x0cR\x10hostSt\ - aticPubkey\"i\n\x15ThpCredentialResponse\x120\n\x14trezor_static_pubkey\ - \x18\x01\x20\x01(\x0cR\x12trezorStaticPubkey\x12\x1e\n\ncredential\x18\ - \x02\x20\x01(\x0cR\ncredential\"\x0f\n\rThpEndRequest\"\x10\n\x0eThpEndR\ - esponse*\x8b\x01\n\x10ThpPairingMethod\x12\x1a\n\x16PairingMethod_NoMeth\ - od\x10\x01\x12\x1b\n\x17PairingMethod_CodeEntry\x10\x02\x12\x18\n\x14Pai\ - ringMethod_QrCode\x10\x03\x12$\n\x20PairingMethod_NFC_Unidirectional\x10\ - \x04B7\n#com.satoshilabs.trezor.lib.protobufB\x10TrezorMessageThp\ + quest\x12\x1b\n\thost_name\x18\x01\x20\x01(\tR\x08hostName\"\x20\n\x1eTh\ + pPairingPreparationsFinished\"8\n\x16ThpCodeEntryCommitment\x12\x1e\n\nc\ + ommitment\x18\x01\x20\x01(\x0cR\ncommitment\"5\n\x15ThpCodeEntryChalleng\ + e\x12\x1c\n\tchallenge\x18\x01\x20\x01(\x0cR\tchallenge\"J\n\x15ThpCodeE\ + ntryCpaceHost\x121\n\x15cpace_host_public_key\x18\x01\x20\x01(\x0cR\x12c\ + paceHostPublicKey\"P\n\x17ThpCodeEntryCpaceTrezor\x125\n\x17cpace_trezor\ + _public_key\x18\x01\x20\x01(\x0cR\x14cpaceTrezorPublicKey\"#\n\x0fThpCod\ + eEntryTag\x12\x10\n\x03tag\x18\x02\x20\x01(\x0cR\x03tag\",\n\x12ThpCodeE\ + ntrySecret\x12\x16\n\x06secret\x18\x01\x20\x01(\x0cR\x06secret\"\x20\n\ + \x0cThpQrCodeTag\x12\x10\n\x03tag\x18\x01\x20\x01(\x0cR\x03tag\")\n\x0fT\ + hpQrCodeSecret\x12\x16\n\x06secret\x18\x01\x20\x01(\x0cR\x06secret\"+\n\ + \x17ThpNfcUnidirectionalTag\x12\x10\n\x03tag\x18\x01\x20\x01(\x0cR\x03ta\ + g\"5\n\x1bThpNfcUnideirectionalSecret\x12\x16\n\x06secret\x18\x01\x20\ + \x01(\x0cR\x06secret\"D\n\x14ThpCredentialRequest\x12,\n\x12host_static_\ + pubkey\x18\x01\x20\x01(\x0cR\x10hostStaticPubkey\"i\n\x15ThpCredentialRe\ + sponse\x120\n\x14trezor_static_pubkey\x18\x01\x20\x01(\x0cR\x12trezorSta\ + ticPubkey\x12\x1e\n\ncredential\x18\x02\x20\x01(\x0cR\ncredential\"\x0f\ + \n\rThpEndRequest\"\x10\n\x0eThpEndResponse*\x8b\x01\n\x10ThpPairingMeth\ + od\x12\x1a\n\x16PairingMethod_NoMethod\x10\x01\x12\x1b\n\x17PairingMetho\ + d_CodeEntry\x10\x02\x12\x18\n\x14PairingMethod_QrCode\x10\x03\x12$\n\x20\ + PairingMethod_NFC_Unidirectional\x10\x04B7\n#com.satoshilabs.trezor.lib.\ + protobufB\x10TrezorMessageThp\ "; /// `FileDescriptorProto` object which was a source for this generated file @@ -3274,12 +3378,13 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor { file_descriptor.get(|| { let generated_file_descriptor = generated_file_descriptor_lazy.get(|| { let mut deps = ::std::vec::Vec::with_capacity(0); - let mut messages = ::std::vec::Vec::with_capacity(19); + let mut messages = ::std::vec::Vec::with_capacity(20); messages.push(ThpDeviceProperties::generated_message_descriptor_data()); messages.push(ThpHandshakeCompletionReqNoisePayload::generated_message_descriptor_data()); messages.push(ThpCreateNewSession::generated_message_descriptor_data()); messages.push(ThpNewSession::generated_message_descriptor_data()); messages.push(ThpStartPairingRequest::generated_message_descriptor_data()); + messages.push(ThpPairingPreparationsFinished::generated_message_descriptor_data()); messages.push(ThpCodeEntryCommitment::generated_message_descriptor_data()); messages.push(ThpCodeEntryChallenge::generated_message_descriptor_data()); messages.push(ThpCodeEntryCpaceHost::generated_message_descriptor_data());