Add ThpPairingPreparationsFinished message

M1nd3r/thp5
M1nd3r 1 month ago
parent ed7f304487
commit dca9f05921

@ -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

@ -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];

@ -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(

@ -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

@ -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

@ -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"

@ -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):

@ -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,

@ -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

@ -988,6 +988,109 @@ impl ::protobuf::reflect::ProtobufValue for ThpStartPairingRequest {
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)
#[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());

Loading…
Cancel
Save