Add ThpPairingPreparationsFinished message

M1nd3r/thp2
M1nd3r 2 months ago
parent 0fdbc4ef49
commit 72e482ee97

@ -58,13 +58,21 @@ message ThpNewSession{
* Request: Start pairing process. * Request: Start pairing process.
* @start * @start
* @next ThpCodeEntryCommitment * @next ThpCodeEntryCommitment
* @next ThpQrCodeTag // Sent by the Host * @next ThpPairingPreparationsFinished
* @next ThpNfcUnidirectionalTag // Sent by the Host
*/ */
message ThpStartPairingRequest{ message ThpStartPairingRequest{
optional string host_name = 1; // Human-readable host name 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. * Response: If Code Entry is an allowed pairing option, Trezor responds with a commitment.
* @next ThpCodeEntryChallenge * @next ThpCodeEntryChallenge
@ -75,9 +83,7 @@ message ThpCodeEntryCommitment {
/** /**
* Response: Host responds to Trezor's Code Entry commitment with a challenge. * Response: Host responds to Trezor's Code Entry commitment with a challenge.
* @next ThpCodeEntryCpaceHost // Sent by the Host * @next ThpPairingPreparationsFinished
* @next ThpQrCodeTag // Sent by the Host
* @next ThpNfcUnidirectionalTag // Sent by the Host
*/ */
message ThpCodeEntryChallenge { message ThpCodeEntryChallenge {
optional bytes challenge = 1; // host's random 32-byte challenge optional bytes challenge = 1; // host's random 32-byte challenge

@ -384,10 +384,11 @@ enum MessageType {
MessageType_ThpCreateNewSession = 1000[(bitcoin_only)=true, (wire_in)=true, (channel_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_ThpNewSession = 1001[(bitcoin_only)=true, (wire_out)=true, (channel_out) = true];
MessageType_ThpStartPairingRequest = 1008 [(bitcoin_only) = true, (wire_in) = true, (pairing_in) = 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_ThpPairingPreparationsFinished = 1009 [(bitcoin_only) = true, (wire_in) = true, (pairing_out) = true];
MessageType_ThpCredentialResponse = 1010 [(bitcoin_only) = true, (wire_out) = true, (pairing_out) = true]; MessageType_ThpCredentialRequest = 1010 [(bitcoin_only) = true, (wire_in) = true, (pairing_in) = true];
MessageType_ThpEndRequest = 1011 [(bitcoin_only) = true, (wire_in) = true, (pairing_in) = true]; MessageType_ThpCredentialResponse = 1011 [(bitcoin_only) = true, (wire_out) = true, (pairing_out) = true];
MessageType_ThpEndResponse = 1012[(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_ThpCodeEntryCommitment = 1016[(bitcoin_only)=true, (wire_out)=true, (pairing_out) = true];
MessageType_ThpCodeEntryChallenge = 1017[(bitcoin_only)=true, (wire_in)=true, (pairing_in) = 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_ThpCodeEntryCpaceHost = 1018[(bitcoin_only)=true, (wire_in)=true, (pairing_in) = true];

@ -13,6 +13,7 @@ from trezor.messages import (
ThpEndResponse, ThpEndResponse,
ThpNfcUnideirectionalSecret, ThpNfcUnideirectionalSecret,
ThpNfcUnidirectionalTag, ThpNfcUnidirectionalTag,
ThpPairingPreparationsFinished,
ThpQrCodeSecret, ThpQrCodeSecret,
ThpQrCodeTag, ThpQrCodeTag,
ThpStartPairingRequest, ThpStartPairingRequest,
@ -27,7 +28,7 @@ from trezor.wire.thp.thp_session import ThpError
async def handle_pairing_request( async def handle_pairing_request(
channel: Channel, message: protobuf.MessageType channel: Channel, message: protobuf.MessageType
) -> ThpCodeEntryCommitment | None: ) -> ThpCodeEntryCommitment | ThpPairingPreparationsFinished:
assert ThpStartPairingRequest.is_type_of(message) assert ThpStartPairingRequest.is_type_of(message)
if __debug__: if __debug__:
@ -37,16 +38,17 @@ async def handle_pairing_request(
channel.set_channel_state(ChannelState.TP2) channel.set_channel_state(ChannelState.TP2)
return ThpCodeEntryCommitment() return ThpCodeEntryCommitment()
channel.set_channel_state(ChannelState.TP3) channel.set_channel_state(ChannelState.TP3)
return None return ThpPairingPreparationsFinished()
async def handle_code_entry_challenge( async def handle_code_entry_challenge(
channel: Channel, message: protobuf.MessageType channel: Channel, message: protobuf.MessageType
) -> None: ) -> ThpPairingPreparationsFinished:
assert ThpCodeEntryChallenge.is_type_of(message) assert ThpCodeEntryChallenge.is_type_of(message)
_check_state(channel, ChannelState.TP2) _check_state(channel, ChannelState.TP2)
channel.set_channel_state(ChannelState.TP3) channel.set_channel_state(ChannelState.TP3)
return ThpPairingPreparationsFinished()
async def handle_code_entry_cpace( async def handle_code_entry_cpace(

@ -100,10 +100,11 @@ DebugLinkResetDebugEvents = 9007
ThpCreateNewSession = 1000 ThpCreateNewSession = 1000
ThpNewSession = 1001 ThpNewSession = 1001
ThpStartPairingRequest = 1008 ThpStartPairingRequest = 1008
ThpCredentialRequest = 1009 ThpPairingPreparationsFinished = 1009
ThpCredentialResponse = 1010 ThpCredentialRequest = 1010
ThpEndRequest = 1011 ThpCredentialResponse = 1011
ThpEndResponse = 1012 ThpEndRequest = 1012
ThpEndResponse = 1013
ThpCodeEntryCommitment = 1016 ThpCodeEntryCommitment = 1016
ThpCodeEntryChallenge = 1017 ThpCodeEntryChallenge = 1017
ThpCodeEntryCpaceHost = 1018 ThpCodeEntryCpaceHost = 1018

@ -267,10 +267,11 @@ if TYPE_CHECKING:
ThpCreateNewSession = 1000 ThpCreateNewSession = 1000
ThpNewSession = 1001 ThpNewSession = 1001
ThpStartPairingRequest = 1008 ThpStartPairingRequest = 1008
ThpCredentialRequest = 1009 ThpPairingPreparationsFinished = 1009
ThpCredentialResponse = 1010 ThpCredentialRequest = 1010
ThpEndRequest = 1011 ThpCredentialResponse = 1011
ThpEndResponse = 1012 ThpEndRequest = 1012
ThpEndResponse = 1013
ThpCodeEntryCommitment = 1016 ThpCodeEntryCommitment = 1016
ThpCodeEntryChallenge = 1017 ThpCodeEntryChallenge = 1017
ThpCodeEntryCpaceHost = 1018 ThpCodeEntryCpaceHost = 1018

@ -6178,6 +6178,12 @@ if TYPE_CHECKING:
def is_type_of(cls, msg: Any) -> TypeGuard["ThpStartPairingRequest"]: def is_type_of(cls, msg: Any) -> TypeGuard["ThpStartPairingRequest"]:
return isinstance(msg, cls) 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): class ThpCodeEntryCommitment(protobuf.MessageType):
commitment: "bytes | None" commitment: "bytes | None"

@ -275,10 +275,11 @@ class MessageType(IntEnum):
ThpCreateNewSession = 1000 ThpCreateNewSession = 1000
ThpNewSession = 1001 ThpNewSession = 1001
ThpStartPairingRequest = 1008 ThpStartPairingRequest = 1008
ThpCredentialRequest = 1009 ThpPairingPreparationsFinished = 1009
ThpCredentialResponse = 1010 ThpCredentialRequest = 1010
ThpEndRequest = 1011 ThpCredentialResponse = 1011
ThpEndResponse = 1012 ThpEndRequest = 1012
ThpEndResponse = 1013
ThpCodeEntryCommitment = 1016 ThpCodeEntryCommitment = 1016
ThpCodeEntryChallenge = 1017 ThpCodeEntryChallenge = 1017
ThpCodeEntryCpaceHost = 1018 ThpCodeEntryCpaceHost = 1018
@ -7812,6 +7813,10 @@ class ThpStartPairingRequest(protobuf.MessageType):
self.host_name = host_name self.host_name = host_name
class ThpPairingPreparationsFinished(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1009
class ThpCodeEntryCommitment(protobuf.MessageType): class ThpCodeEntryCommitment(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1016 MESSAGE_WIRE_TYPE = 1016
FIELDS = { FIELDS = {
@ -7953,7 +7958,7 @@ class ThpNfcUnideirectionalSecret(protobuf.MessageType):
class ThpCredentialRequest(protobuf.MessageType): class ThpCredentialRequest(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1009 MESSAGE_WIRE_TYPE = 1010
FIELDS = { FIELDS = {
1: protobuf.Field("host_static_pubkey", "bytes", repeated=False, required=False, default=None), 1: protobuf.Field("host_static_pubkey", "bytes", repeated=False, required=False, default=None),
} }
@ -7967,7 +7972,7 @@ class ThpCredentialRequest(protobuf.MessageType):
class ThpCredentialResponse(protobuf.MessageType): class ThpCredentialResponse(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1010 MESSAGE_WIRE_TYPE = 1011
FIELDS = { FIELDS = {
1: protobuf.Field("trezor_static_pubkey", "bytes", repeated=False, required=False, default=None), 1: protobuf.Field("trezor_static_pubkey", "bytes", repeated=False, required=False, default=None),
2: protobuf.Field("credential", "bytes", repeated=False, required=False, default=None), 2: protobuf.Field("credential", "bytes", repeated=False, required=False, default=None),
@ -7984,11 +7989,11 @@ class ThpCredentialResponse(protobuf.MessageType):
class ThpEndRequest(protobuf.MessageType): class ThpEndRequest(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1011 MESSAGE_WIRE_TYPE = 1012
class ThpEndResponse(protobuf.MessageType): class ThpEndResponse(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1012 MESSAGE_WIRE_TYPE = 1013
class WebAuthnListResidentCredentials(protobuf.MessageType): class WebAuthnListResidentCredentials(protobuf.MessageType):

@ -85,6 +85,7 @@ trezor_message_impl! {
ThpCreateNewSession => MessageType_ThpCreateNewSession, ThpCreateNewSession => MessageType_ThpCreateNewSession,
ThpNewSession => MessageType_ThpNewSession, ThpNewSession => MessageType_ThpNewSession,
ThpStartPairingRequest => MessageType_ThpStartPairingRequest, ThpStartPairingRequest => MessageType_ThpStartPairingRequest,
ThpPairingPreparationsFinished => MessageType_ThpPairingPreparationsFinished,
ThpCredentialRequest => MessageType_ThpCredentialRequest, ThpCredentialRequest => MessageType_ThpCredentialRequest,
ThpCredentialResponse => MessageType_ThpCredentialResponse, ThpCredentialResponse => MessageType_ThpCredentialResponse,
ThpEndRequest => MessageType_ThpEndRequest, ThpEndRequest => MessageType_ThpEndRequest,

@ -520,14 +520,16 @@ pub enum MessageType {
MessageType_ThpNewSession = 1001, MessageType_ThpNewSession = 1001,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpStartPairingRequest) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpStartPairingRequest)
MessageType_ThpStartPairingRequest = 1008, 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) // @@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) // @@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) // @@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) // @@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) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCodeEntryCommitment)
MessageType_ThpCodeEntryCommitment = 1016, MessageType_ThpCodeEntryCommitment = 1016,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCodeEntryChallenge) // @@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), 1000 => ::std::option::Option::Some(MessageType::MessageType_ThpCreateNewSession),
1001 => ::std::option::Option::Some(MessageType::MessageType_ThpNewSession), 1001 => ::std::option::Option::Some(MessageType::MessageType_ThpNewSession),
1008 => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingRequest), 1008 => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingRequest),
1009 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialRequest), 1009 => ::std::option::Option::Some(MessageType::MessageType_ThpPairingPreparationsFinished),
1010 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialResponse), 1010 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialRequest),
1011 => ::std::option::Option::Some(MessageType::MessageType_ThpEndRequest), 1011 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialResponse),
1012 => ::std::option::Option::Some(MessageType::MessageType_ThpEndResponse), 1012 => ::std::option::Option::Some(MessageType::MessageType_ThpEndRequest),
1013 => ::std::option::Option::Some(MessageType::MessageType_ThpEndResponse),
1016 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCommitment), 1016 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCommitment),
1017 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryChallenge), 1017 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryChallenge),
1018 => ::std::option::Option::Some(MessageType::MessageType_ThpCodeEntryCpaceHost), 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_ThpCreateNewSession" => ::std::option::Option::Some(MessageType::MessageType_ThpCreateNewSession),
"MessageType_ThpNewSession" => ::std::option::Option::Some(MessageType::MessageType_ThpNewSession), "MessageType_ThpNewSession" => ::std::option::Option::Some(MessageType::MessageType_ThpNewSession),
"MessageType_ThpStartPairingRequest" => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingRequest), "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_ThpCredentialRequest" => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialRequest),
"MessageType_ThpCredentialResponse" => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialResponse), "MessageType_ThpCredentialResponse" => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialResponse),
"MessageType_ThpEndRequest" => ::std::option::Option::Some(MessageType::MessageType_ThpEndRequest), "MessageType_ThpEndRequest" => ::std::option::Option::Some(MessageType::MessageType_ThpEndRequest),
@ -1336,6 +1340,7 @@ impl ::protobuf::Enum for MessageType {
MessageType::MessageType_ThpCreateNewSession, MessageType::MessageType_ThpCreateNewSession,
MessageType::MessageType_ThpNewSession, MessageType::MessageType_ThpNewSession,
MessageType::MessageType_ThpStartPairingRequest, MessageType::MessageType_ThpStartPairingRequest,
MessageType::MessageType_ThpPairingPreparationsFinished,
MessageType::MessageType_ThpCredentialRequest, MessageType::MessageType_ThpCredentialRequest,
MessageType::MessageType_ThpCredentialResponse, MessageType::MessageType_ThpCredentialResponse,
MessageType::MessageType_ThpEndRequest, MessageType::MessageType_ThpEndRequest,
@ -1607,20 +1612,21 @@ impl ::protobuf::EnumFull for MessageType {
MessageType::MessageType_ThpCreateNewSession => 243, MessageType::MessageType_ThpCreateNewSession => 243,
MessageType::MessageType_ThpNewSession => 244, MessageType::MessageType_ThpNewSession => 244,
MessageType::MessageType_ThpStartPairingRequest => 245, MessageType::MessageType_ThpStartPairingRequest => 245,
MessageType::MessageType_ThpCredentialRequest => 246, MessageType::MessageType_ThpPairingPreparationsFinished => 246,
MessageType::MessageType_ThpCredentialResponse => 247, MessageType::MessageType_ThpCredentialRequest => 247,
MessageType::MessageType_ThpEndRequest => 248, MessageType::MessageType_ThpCredentialResponse => 248,
MessageType::MessageType_ThpEndResponse => 249, MessageType::MessageType_ThpEndRequest => 249,
MessageType::MessageType_ThpCodeEntryCommitment => 250, MessageType::MessageType_ThpEndResponse => 250,
MessageType::MessageType_ThpCodeEntryChallenge => 251, MessageType::MessageType_ThpCodeEntryCommitment => 251,
MessageType::MessageType_ThpCodeEntryCpaceHost => 252, MessageType::MessageType_ThpCodeEntryChallenge => 252,
MessageType::MessageType_ThpCodeEntryCpaceTrezor => 253, MessageType::MessageType_ThpCodeEntryCpaceHost => 253,
MessageType::MessageType_ThpCodeEntryTag => 254, MessageType::MessageType_ThpCodeEntryCpaceTrezor => 254,
MessageType::MessageType_ThpCodeEntrySecret => 255, MessageType::MessageType_ThpCodeEntryTag => 255,
MessageType::MessageType_ThpQrCodeTag => 256, MessageType::MessageType_ThpCodeEntrySecret => 256,
MessageType::MessageType_ThpQrCodeSecret => 257, MessageType::MessageType_ThpQrCodeTag => 257,
MessageType::MessageType_ThpNfcUnidirectionalTag => 258, MessageType::MessageType_ThpQrCodeSecret => 258,
MessageType::MessageType_ThpNfcUnideirectionalSecret => 259, MessageType::MessageType_ThpNfcUnidirectionalTag => 259,
MessageType::MessageType_ThpNfcUnideirectionalSecret => 260,
}; };
Self::enum_descriptor().value_by_index(index) Self::enum_descriptor().value_by_index(index)
} }
@ -1678,7 +1684,7 @@ pub mod exts {
static file_descriptor_proto_data: &'static [u8] = b"\ static file_descriptor_proto_data: &'static [u8] = b"\
\n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\x20google/protobuf/de\ \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\ \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\ \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\ %\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\ \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\ \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\ 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\ \x12=\n*MessageType_ThpPairingPreparationsFinished\x10\xf1\x07\x1a\x0c\
\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x124\n!MessageType_ThpCredentia\ \x80\xa6\x1d\x01\xe0\xb5\x18\x01\x90\xb5\x18\x01\x123\n\x20MessageType_T\
lResponse\x10\xf2\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\ hpCredentialRequest\x10\xf2\x07\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\
\x18\x01\x12,\n\x19MessageType_ThpEndRequest\x10\xf3\x07\x1a\x0c\x80\xa6\ \x90\xb5\x18\x01\x124\n!MessageType_ThpCredentialResponse\x10\xf3\x07\
\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x12-\n\x1aMessageType_ThpEndRes\ \x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\x01\x12,\n\x19Messa\
ponse\x10\xf4\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\ geType_ThpEndRequest\x10\xf4\x07\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\
\x01\x125\n\"MessageType_ThpCodeEntryCommitment\x10\xf8\x07\x1a\x0c\x80\ \x90\xb5\x18\x01\x12-\n\x1aMessageType_ThpEndResponse\x10\xf5\x07\x1a\
\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\x01\x124\n!MessageType_ThpCodeE\ \x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\x01\x125\n\"MessageType\
ntryChallenge\x10\xf9\x07\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\ _ThpCodeEntryCommitment\x10\xf8\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\
\xb5\x18\x01\x124\n!MessageType_ThpCodeEntryCpaceHost\x10\xfa\x07\x1a\ \x01\x98\xb5\x18\x01\x124\n!MessageType_ThpCodeEntryChallenge\x10\xf9\
\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x126\n#MessageType_\ \x07\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x124\n!Mess\
ThpCodeEntryCpaceTrezor\x10\xfb\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\ ageType_ThpCodeEntryCpaceHost\x10\xfa\x07\x1a\x0c\x80\xa6\x1d\x01\xd8\
\x01\x98\xb5\x18\x01\x12.\n\x1bMessageType_ThpCodeEntryTag\x10\xfc\x07\ \xb5\x18\x01\x90\xb5\x18\x01\x126\n#MessageType_ThpCodeEntryCpaceTrezor\
\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x121\n\x1eMessa\ \x10\xfb\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\x01\x12\
geType_ThpCodeEntrySecret\x10\xfd\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\ .\n\x1bMessageType_ThpCodeEntryTag\x10\xfc\x07\x1a\x0c\x80\xa6\x1d\x01\
\x18\x01\x98\xb5\x18\x01\x12+\n\x18MessageType_ThpQrCodeTag\x10\x80\x08\ \xd8\xb5\x18\x01\x90\xb5\x18\x01\x121\n\x1eMessageType_ThpCodeEntrySecre\
\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x12.\n\x1bMessa\ t\x10\xfd\x07\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\x01\
geType_ThpQrCodeSecret\x10\x81\x08\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\ \x12+\n\x18MessageType_ThpQrCodeTag\x10\x80\x08\x1a\x0c\x80\xa6\x1d\x01\
\x01\x98\xb5\x18\x01\x126\n#MessageType_ThpNfcUnidirectionalTag\x10\x88\ \xd8\xb5\x18\x01\x90\xb5\x18\x01\x12.\n\x1bMessageType_ThpQrCodeSecret\
\x08\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x12:\n'Mess\ \x10\x81\x08\x1a\x0c\x80\xa6\x1d\x01\xe0\xb5\x18\x01\x98\xb5\x18\x01\x12\
ageType_ThpNfcUnideirectionalSecret\x10\x89\x08\x1a\x0c\x80\xa6\x1d\x01\ 6\n#MessageType_ThpNfcUnidirectionalTag\x10\x88\x08\x1a\x0c\x80\xa6\x1d\
\xd8\xb5\x18\x01\x90\xb5\x18\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08Z\x10\ \x01\xd8\xb5\x18\x01\x90\xb5\x18\x01\x12:\n'MessageType_ThpNfcUnideirect\
\\\"\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\xdb\x01\"\x06\x08\xe0\x01\x10\ ionalSecret\x10\x89\x08\x1a\x0c\x80\xa6\x1d\x01\xd8\xb5\x18\x01\x90\xb5\
\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\x06\x08\xb5\x02\x10\xb8\x02:<\n\ \x18\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08Z\x10\\\"\x04\x08r\x10z\"\x06\
\x07wire_in\x18\xd2\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueO\ \x08\xdb\x01\x10\xdb\x01\"\x06\x08\xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\
ptionsR\x06wireIn:>\n\x08wire_out\x18\xd3\x86\x03\x20\x01(\x08\x12!.goog\ \x10\xb0\x02\"\x06\x08\xb5\x02\x10\xb8\x02:<\n\x07wire_in\x18\xd2\x86\
le.protobuf.EnumValueOptionsR\x07wireOut:G\n\rwire_debug_in\x18\xd4\x86\ \x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x06wireIn:>\n\
\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x0bwireDebugIn:\ \x08wire_out\x18\xd3\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValue\
I\n\x0ewire_debug_out\x18\xd5\x86\x03\x20\x01(\x08\x12!.google.protobuf.\ OptionsR\x07wireOut:G\n\rwire_debug_in\x18\xd4\x86\x03\x20\x01(\x08\x12!\
EnumValueOptionsR\x0cwireDebugOut:@\n\twire_tiny\x18\xd6\x86\x03\x20\x01\ .google.protobuf.EnumValueOptionsR\x0bwireDebugIn:I\n\x0ewire_debug_out\
(\x08\x12!.google.protobuf.EnumValueOptionsR\x08wireTiny:L\n\x0fwire_boo\ \x18\xd5\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x0c\
tloader\x18\xd7\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptio\ wireDebugOut:@\n\twire_tiny\x18\xd6\x86\x03\x20\x01(\x08\x12!.google.pro\
nsR\x0ewireBootloader:C\n\x0bwire_no_fsm\x18\xd8\x86\x03\x20\x01(\x08\ tobuf.EnumValueOptionsR\x08wireTiny:L\n\x0fwire_bootloader\x18\xd7\x86\
\x12!.google.protobuf.EnumValueOptionsR\twireNoFsm:B\n\nchannel_in\x18\ \x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x0ewireBootload\
\xd9\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\tchanne\ er:C\n\x0bwire_no_fsm\x18\xd8\x86\x03\x20\x01(\x08\x12!.google.protobuf.\
lIn:D\n\x0bchannel_out\x18\xda\x86\x03\x20\x01(\x08\x12!.google.protobuf\ EnumValueOptionsR\twireNoFsm:B\n\nchannel_in\x18\xd9\x86\x03\x20\x01(\
.EnumValueOptionsR\nchannelOut:B\n\npairing_in\x18\xdb\x86\x03\x20\x01(\ \x08\x12!.google.protobuf.EnumValueOptionsR\tchannelIn:D\n\x0bchannel_ou\
\x08\x12!.google.protobuf.EnumValueOptionsR\tpairingIn:D\n\x0bpairing_ou\ t\x18\xda\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\nc\
t\x18\xdc\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\np\ hannelOut:B\n\npairing_in\x18\xdb\x86\x03\x20\x01(\x08\x12!.google.proto\
airingOut:F\n\x0cbitcoin_only\x18\xe0\xd4\x03\x20\x01(\x08\x12!.google.p\ buf.EnumValueOptionsR\tpairingIn:D\n\x0bpairing_out\x18\xdc\x86\x03\x20\
rotobuf.EnumValueOptionsR\x0bbitcoinOnly:U\n\x17has_bitcoin_only_values\ \x01(\x08\x12!.google.protobuf.EnumValueOptionsR\npairingOut:F\n\x0cbitc\
\x18\xb9\x8e\x03\x20\x01(\x08\x12\x1c.google.protobuf.EnumOptionsR\x14ha\ oin_only\x18\xe0\xd4\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOpti\
sBitcoinOnlyValues:T\n\x14experimental_message\x18\xa1\x96\x03\x20\x01(\ onsR\x0bbitcoinOnly:U\n\x17has_bitcoin_only_values\x18\xb9\x8e\x03\x20\
\x08\x12\x1f.google.protobuf.MessageOptionsR\x13experimentalMessage:>\n\ \x01(\x08\x12\x1c.google.protobuf.EnumOptionsR\x14hasBitcoinOnlyValues:T\
\twire_type\x18\xa2\x96\x03\x20\x01(\r\x12\x1f.google.protobuf.MessageOp\ \n\x14experimental_message\x18\xa1\x96\x03\x20\x01(\x08\x12\x1f.google.p\
tionsR\x08wireType:N\n\x12experimental_field\x18\x89\x9e\x03\x20\x01(\ rotobuf.MessageOptionsR\x13experimentalMessage:>\n\twire_type\x18\xa2\
\x08\x12\x1d.google.protobuf.FieldOptionsR\x11experimentalField:U\n\x17i\ \x96\x03\x20\x01(\r\x12\x1f.google.protobuf.MessageOptionsR\x08wireType:\
nclude_in_bitcoin_only\x18\xe0\xd4\x03\x20\x01(\x08\x12\x1c.google.proto\ N\n\x12experimental_field\x18\x89\x9e\x03\x20\x01(\x08\x12\x1d.google.pr\
buf.FileOptionsR\x14includeInBitcoinOnlyB8\n#com.satoshilabs.trezor.lib.\ otobuf.FieldOptionsR\x11experimentalField:U\n\x17include_in_bitcoin_only\
protobufB\rTrezorMessage\x80\xa6\x1d\x01\ \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 /// `FileDescriptorProto` object which was a source for this generated file

@ -988,6 +988,109 @@ impl ::protobuf::reflect::ProtobufValue for ThpStartPairingRequest {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>; type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
} }
// @@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 {
<ThpPairingPreparationsFinished as ::protobuf::Message>::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>(
"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<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.thp.ThpCodeEntryCommitment) // @@protoc_insertion_point(message:hw.trezor.messages.thp.ThpCodeEntryCommitment)
#[derive(PartialEq,Clone,Default,Debug)] #[derive(PartialEq,Clone,Default,Debug)]
pub struct ThpCodeEntryCommitment { 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\ \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_\ ice\x18\x02\x20\x01(\x08R\x08onDevice\"5\n\rThpNewSession\x12$\n\x0enew_\
session_id\x18\x01\x20\x01(\rR\x0cnewSessionId\"5\n\x16ThpStartPairingRe\ 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\ quest\x12\x1b\n\thost_name\x18\x01\x20\x01(\tR\x08hostName\"\x20\n\x1eTh\
deEntryCommitment\x12\x1e\n\ncommitment\x18\x01\x20\x01(\x0cR\ncommitmen\ pPairingPreparationsFinished\"8\n\x16ThpCodeEntryCommitment\x12\x1e\n\nc\
t\"5\n\x15ThpCodeEntryChallenge\x12\x1c\n\tchallenge\x18\x01\x20\x01(\ ommitment\x18\x01\x20\x01(\x0cR\ncommitment\"5\n\x15ThpCodeEntryChalleng\
\x0cR\tchallenge\"J\n\x15ThpCodeEntryCpaceHost\x121\n\x15cpace_host_publ\ e\x12\x1c\n\tchallenge\x18\x01\x20\x01(\x0cR\tchallenge\"J\n\x15ThpCodeE\
ic_key\x18\x01\x20\x01(\x0cR\x12cpaceHostPublicKey\"P\n\x17ThpCodeEntryC\ ntryCpaceHost\x121\n\x15cpace_host_public_key\x18\x01\x20\x01(\x0cR\x12c\
paceTrezor\x125\n\x17cpace_trezor_public_key\x18\x01\x20\x01(\x0cR\x14cp\ paceHostPublicKey\"P\n\x17ThpCodeEntryCpaceTrezor\x125\n\x17cpace_trezor\
aceTrezorPublicKey\"#\n\x0fThpCodeEntryTag\x12\x10\n\x03tag\x18\x02\x20\ _public_key\x18\x01\x20\x01(\x0cR\x14cpaceTrezorPublicKey\"#\n\x0fThpCod\
\x01(\x0cR\x03tag\",\n\x12ThpCodeEntrySecret\x12\x16\n\x06secret\x18\x01\ eEntryTag\x12\x10\n\x03tag\x18\x02\x20\x01(\x0cR\x03tag\",\n\x12ThpCodeE\
\x20\x01(\x0cR\x06secret\"\x20\n\x0cThpQrCodeTag\x12\x10\n\x03tag\x18\ ntrySecret\x12\x16\n\x06secret\x18\x01\x20\x01(\x0cR\x06secret\"\x20\n\
\x01\x20\x01(\x0cR\x03tag\")\n\x0fThpQrCodeSecret\x12\x16\n\x06secret\ \x0cThpQrCodeTag\x12\x10\n\x03tag\x18\x01\x20\x01(\x0cR\x03tag\")\n\x0fT\
\x18\x01\x20\x01(\x0cR\x06secret\"+\n\x17ThpNfcUnidirectionalTag\x12\x10\ hpQrCodeSecret\x12\x16\n\x06secret\x18\x01\x20\x01(\x0cR\x06secret\"+\n\
\n\x03tag\x18\x01\x20\x01(\x0cR\x03tag\"5\n\x1bThpNfcUnideirectionalSecr\ \x17ThpNfcUnidirectionalTag\x12\x10\n\x03tag\x18\x01\x20\x01(\x0cR\x03ta\
et\x12\x16\n\x06secret\x18\x01\x20\x01(\x0cR\x06secret\"D\n\x14ThpCreden\ g\"5\n\x1bThpNfcUnideirectionalSecret\x12\x16\n\x06secret\x18\x01\x20\
tialRequest\x12,\n\x12host_static_pubkey\x18\x01\x20\x01(\x0cR\x10hostSt\ \x01(\x0cR\x06secret\"D\n\x14ThpCredentialRequest\x12,\n\x12host_static_\
aticPubkey\"i\n\x15ThpCredentialResponse\x120\n\x14trezor_static_pubkey\ pubkey\x18\x01\x20\x01(\x0cR\x10hostStaticPubkey\"i\n\x15ThpCredentialRe\
\x18\x01\x20\x01(\x0cR\x12trezorStaticPubkey\x12\x1e\n\ncredential\x18\ sponse\x120\n\x14trezor_static_pubkey\x18\x01\x20\x01(\x0cR\x12trezorSta\
\x02\x20\x01(\x0cR\ncredential\"\x0f\n\rThpEndRequest\"\x10\n\x0eThpEndR\ ticPubkey\x12\x1e\n\ncredential\x18\x02\x20\x01(\x0cR\ncredential\"\x0f\
esponse*\x8b\x01\n\x10ThpPairingMethod\x12\x1a\n\x16PairingMethod_NoMeth\ \n\rThpEndRequest\"\x10\n\x0eThpEndResponse*\x8b\x01\n\x10ThpPairingMeth\
od\x10\x01\x12\x1b\n\x17PairingMethod_CodeEntry\x10\x02\x12\x18\n\x14Pai\ od\x12\x1a\n\x16PairingMethod_NoMethod\x10\x01\x12\x1b\n\x17PairingMetho\
ringMethod_QrCode\x10\x03\x12$\n\x20PairingMethod_NFC_Unidirectional\x10\ d_CodeEntry\x10\x02\x12\x18\n\x14PairingMethod_QrCode\x10\x03\x12$\n\x20\
\x04B7\n#com.satoshilabs.trezor.lib.protobufB\x10TrezorMessageThp\ PairingMethod_NFC_Unidirectional\x10\x04B7\n#com.satoshilabs.trezor.lib.\
protobufB\x10TrezorMessageThp\
"; ";
/// `FileDescriptorProto` object which was a source for this generated file /// `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(|| { file_descriptor.get(|| {
let generated_file_descriptor = generated_file_descriptor_lazy.get(|| { let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
let mut deps = ::std::vec::Vec::with_capacity(0); 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(ThpDeviceProperties::generated_message_descriptor_data());
messages.push(ThpHandshakeCompletionReqNoisePayload::generated_message_descriptor_data()); messages.push(ThpHandshakeCompletionReqNoisePayload::generated_message_descriptor_data());
messages.push(ThpCreateNewSession::generated_message_descriptor_data()); messages.push(ThpCreateNewSession::generated_message_descriptor_data());
messages.push(ThpNewSession::generated_message_descriptor_data()); messages.push(ThpNewSession::generated_message_descriptor_data());
messages.push(ThpStartPairingRequest::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(ThpCodeEntryCommitment::generated_message_descriptor_data());
messages.push(ThpCodeEntryChallenge::generated_message_descriptor_data()); messages.push(ThpCodeEntryChallenge::generated_message_descriptor_data());
messages.push(ThpCodeEntryCpaceHost::generated_message_descriptor_data()); messages.push(ThpCodeEntryCpaceHost::generated_message_descriptor_data());

Loading…
Cancel
Save