1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-14 03:30:02 +00:00

feat(core): improve thp protobuf

This commit is contained in:
M1nd3r 2024-04-09 16:28:02 +02:00
parent 2637ce299d
commit 6b0c0accd7
10 changed files with 195 additions and 203 deletions

View File

@ -6,7 +6,6 @@ option java_package = "com.satoshilabs.trezor.lib.protobuf";
option java_outer_classname = "TrezorMessageThp";
/**
* Numeric identifiers of pairing methods.
* @embed
@ -110,7 +109,8 @@ message ThpCodeEntryTag {
/**
* Response: Trezor finishes the CPACE protocol.
* @end
* @next ThpCredentialRequest
* @next ThpEndRequest
*/
message ThpCodeEntrySecret {
optional bytes secret = 1; // Trezor's secret
@ -126,7 +126,8 @@ message ThpQrCodeTag {
/**
* Response: Trezor sends the QR secret.
* @end
* @next ThpCredentialRequest
* @next ThpEndRequest
*/
message ThpQrCodeSecret {
optional bytes secret = 1; // Trezor's secret
@ -142,7 +143,8 @@ message ThpNfcUnidirectionalTag {
/**
* Response: Trezor sends the Unidirectioal NFC secret.
* @end
* @next ThpCredentialRequest
* @next ThpEndRequest
*/
message ThpNfcUnideirectionalSecret {
optional bytes secret = 1; // Trezor's secret
@ -160,7 +162,7 @@ message ThpCredentialRequest {
/**
* Response: Trezor issues a new pairing credential.
* @next ThpCredentialRequest
* @next EndRequest
* @next ThpEndRequest
*/
message ThpCredentialResponse {
optional bytes trezor_static_pubkey = 1; // Trezor's static public key used in the handshake.
@ -170,12 +172,12 @@ message ThpCredentialResponse {
/**
* Request: Host requests transition to the encrypted traffic phase.
* @start
* @next EndResponse
* @next ThpEndResponse
*/
message EndRequest {}
message ThpEndRequest {}
/**
* Response: Trezor approves transition to the encrypted traffic phase
* @end
*/
message EndResponse {}
message ThpEndResponse {}

View File

@ -378,7 +378,6 @@ enum MessageType {
// THP
MessageType_ThpStartPairingRequest = 1000 [(bitcoin_only) = true, (wire_in) = true];
MessageType_ThpStartPairingResponse = 1001 [(bitcoin_only) = true, (wire_out) = true];
MessageType_ThpCredentialRequest = 1002 [(bitcoin_only) = true, (wire_in) = true];
MessageType_ThpCredentialResponse = 1003 [(bitcoin_only) = true, (wire_out) = true];
MessageType_ThpEndRequest = 1004 [(bitcoin_only) = true, (wire_in) = true];
@ -396,3 +395,5 @@ enum MessageType {
MessageType_ThpNfcUnidirectionalTag = 1032[(bitcoin_only)=true,(wire_in)=true];
MessageType_ThpNfcUnideirectionalSecret = 1033[(bitcoin_only)=true,(wire_in)=true];
}

View File

@ -133,9 +133,7 @@ WIRETYPE_ENTRY = c.Sequence(
)
# QDEF(MP_QSTR_copysign, 5171, 8, "copysign")
QDEF_RE = re.compile(
r'^QDEF\(MP_QSTR(\S+), ([0-9]+), ([0-9])+, "(.*)"\)$'
)
QDEF_RE = re.compile(r'^QDEF\(MP_QSTR(\S+), ([0-9]+), ([0-9])+, "(.*)"\)$')
@dataclass
@ -558,6 +556,8 @@ class RustBlobRenderer:
enums = []
cursor = 0
for enum in sorted(self.descriptor.enums, key=lambda e: e.name):
if enum.name == "MessageType":
continue
self.enum_map[enum.name] = cursor
enum_blob = ENUM_ENTRY.build(sorted(v.number for v in enum.value))
enums.append(enum_blob)

View File

@ -98,7 +98,6 @@ DebugLinkEraseSdCard = 9005
DebugLinkWatchLayout = 9006
DebugLinkResetDebugEvents = 9007
ThpStartPairingRequest = 1000
ThpStartPairingResponse = 1001
ThpCredentialRequest = 1002
ThpCredentialResponse = 1003
ThpEndRequest = 1004

View File

@ -265,7 +265,6 @@ if TYPE_CHECKING:
SolanaSignTx = 904
SolanaTxSignature = 905
ThpStartPairingRequest = 1000
ThpStartPairingResponse = 1001
ThpCredentialRequest = 1002
ThpCredentialResponse = 1003
ThpEndRequest = 1004

View File

@ -6320,7 +6320,7 @@ if TYPE_CHECKING:
def is_type_of(cls, msg: Any) -> TypeGuard["ThpNfcUnideirectionalSecret"]:
return isinstance(msg, cls)
class CredentialReq(protobuf.MessageType):
class ThpCredentialRequest(protobuf.MessageType):
host_static_pubkey: "bytes | None"
def __init__(
@ -6331,10 +6331,10 @@ if TYPE_CHECKING:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["CredentialReq"]:
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCredentialRequest"]:
return isinstance(msg, cls)
class CredentialResp(protobuf.MessageType):
class ThpCredentialResponse(protobuf.MessageType):
trezor_static_pubkey: "bytes | None"
credential: "bytes | None"
@ -6347,19 +6347,19 @@ if TYPE_CHECKING:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["CredentialResp"]:
def is_type_of(cls, msg: Any) -> TypeGuard["ThpCredentialResponse"]:
return isinstance(msg, cls)
class EndReq(protobuf.MessageType):
class ThpEndRequest(protobuf.MessageType):
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["EndReq"]:
def is_type_of(cls, msg: Any) -> TypeGuard["ThpEndRequest"]:
return isinstance(msg, cls)
class EndResp(protobuf.MessageType):
class ThpEndResponse(protobuf.MessageType):
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["EndResp"]:
def is_type_of(cls, msg: Any) -> TypeGuard["ThpEndResponse"]:
return isinstance(msg, cls)
class WebAuthnListResidentCredentials(protobuf.MessageType):

View File

@ -273,7 +273,6 @@ class MessageType(IntEnum):
SolanaSignTx = 904
SolanaTxSignature = 905
ThpStartPairingRequest = 1000
ThpStartPairingResponse = 1001
ThpCredentialRequest = 1002
ThpCredentialResponse = 1003
ThpEndRequest = 1004
@ -7956,8 +7955,8 @@ class ThpNfcUnideirectionalSecret(protobuf.MessageType):
self.secret = secret
class CredentialReq(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None
class ThpCredentialRequest(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1002
FIELDS = {
1: protobuf.Field("host_static_pubkey", "bytes", repeated=False, required=False, default=None),
}
@ -7970,8 +7969,8 @@ class CredentialReq(protobuf.MessageType):
self.host_static_pubkey = host_static_pubkey
class CredentialResp(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None
class ThpCredentialResponse(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1003
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,12 +7986,12 @@ class CredentialResp(protobuf.MessageType):
self.credential = credential
class EndReq(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None
class ThpEndRequest(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1004
class EndResp(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None
class ThpEndResponse(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 1005
class WebAuthnListResidentCredentials(protobuf.MessageType):

View File

@ -83,7 +83,6 @@ trezor_message_impl! {
DebugLinkWatchLayout => MessageType_DebugLinkWatchLayout,
DebugLinkResetDebugEvents => MessageType_DebugLinkResetDebugEvents,
ThpStartPairingRequest => MessageType_ThpStartPairingRequest,
ThpStartPairingResponse => MessageType_ThpStartPairingResponse,
ThpCredentialRequest => MessageType_ThpCredentialRequest,
ThpCredentialResponse => MessageType_ThpCredentialResponse,
ThpEndRequest => MessageType_ThpEndRequest,

View File

@ -516,8 +516,6 @@ pub enum MessageType {
MessageType_SolanaTxSignature = 905,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpStartPairingRequest)
MessageType_ThpStartPairingRequest = 1000,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpStartPairingResponse)
MessageType_ThpStartPairingResponse = 1001,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCredentialRequest)
MessageType_ThpCredentialRequest = 1002,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ThpCredentialResponse)
@ -805,7 +803,6 @@ impl ::protobuf::Enum for MessageType {
904 => ::std::option::Option::Some(MessageType::MessageType_SolanaSignTx),
905 => ::std::option::Option::Some(MessageType::MessageType_SolanaTxSignature),
1000 => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingRequest),
1001 => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingResponse),
1002 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialRequest),
1003 => ::std::option::Option::Some(MessageType::MessageType_ThpCredentialResponse),
1004 => ::std::option::Option::Some(MessageType::MessageType_ThpEndRequest),
@ -1072,7 +1069,6 @@ impl ::protobuf::Enum for MessageType {
"MessageType_SolanaSignTx" => ::std::option::Option::Some(MessageType::MessageType_SolanaSignTx),
"MessageType_SolanaTxSignature" => ::std::option::Option::Some(MessageType::MessageType_SolanaTxSignature),
"MessageType_ThpStartPairingRequest" => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingRequest),
"MessageType_ThpStartPairingResponse" => ::std::option::Option::Some(MessageType::MessageType_ThpStartPairingResponse),
"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),
@ -1338,7 +1334,6 @@ impl ::protobuf::Enum for MessageType {
MessageType::MessageType_SolanaSignTx,
MessageType::MessageType_SolanaTxSignature,
MessageType::MessageType_ThpStartPairingRequest,
MessageType::MessageType_ThpStartPairingResponse,
MessageType::MessageType_ThpCredentialRequest,
MessageType::MessageType_ThpCredentialResponse,
MessageType::MessageType_ThpEndRequest,
@ -1610,23 +1605,22 @@ impl ::protobuf::EnumFull for MessageType {
MessageType::MessageType_SolanaSignTx => 241,
MessageType::MessageType_SolanaTxSignature => 242,
MessageType::MessageType_ThpStartPairingRequest => 243,
MessageType::MessageType_ThpStartPairingResponse => 244,
MessageType::MessageType_ThpCredentialRequest => 245,
MessageType::MessageType_ThpCredentialResponse => 246,
MessageType::MessageType_ThpEndRequest => 247,
MessageType::MessageType_ThpEndResponse => 248,
MessageType::MessageType_ThpCreateNewSession => 249,
MessageType::MessageType_ThpNewSession => 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,
MessageType::MessageType_ThpCredentialRequest => 244,
MessageType::MessageType_ThpCredentialResponse => 245,
MessageType::MessageType_ThpEndRequest => 246,
MessageType::MessageType_ThpEndResponse => 247,
MessageType::MessageType_ThpCreateNewSession => 248,
MessageType::MessageType_ThpNewSession => 249,
MessageType::MessageType_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,
};
Self::enum_descriptor().value_by_index(index)
}
@ -1676,7 +1670,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*\xfaZ\n\x0bMessageType\x12(\n\x16MessageType_Initialize\
scriptor.proto*\xc6Z\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\
@ -1952,52 +1946,51 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_SolanaSignTx\x10\x88\
\x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_SolanaTxSignature\x10\
\x89\x07\x1a\x04\x98\xb5\x18\x01\x121\n\"MessageType_ThpStartPairingRequ\
est\x10\xe8\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x122\n#MessageTy\
pe_ThpStartPairingResponse\x10\xe9\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\
\x18\x01\x12/\n\x20MessageType_ThpCredentialRequest\x10\xea\x07\x1a\x08\
\x80\xa6\x1d\x01\x90\xb5\x18\x01\x120\n!MessageType_ThpCredentialRespons\
e\x10\xeb\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12(\n\x19MessageT\
ype_ThpEndRequest\x10\xec\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\
\x12)\n\x1aMessageType_ThpEndResponse\x10\xed\x07\x1a\x08\x80\xa6\x1d\
\x01\x98\xb5\x18\x01\x12.\n\x1fMessageType_ThpCreateNewSession\x10\xee\
\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x19MessageType_ThpNe\
wSession\x10\xef\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x121\n\"Mes\
sageType_ThpCodeEntryCommitment\x10\xf8\x07\x1a\x08\x80\xa6\x1d\x01\x98\
\xb5\x18\x01\x120\n!MessageType_ThpCodeEntryChallenge\x10\xf9\x07\x1a\
\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x120\n!MessageType_ThpCodeEntryCpac\
eHost\x10\xfa\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x122\n#Message\
Type_ThpCodeEntryCpaceTrezor\x10\xfb\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\
\x18\x01\x12*\n\x1bMessageType_ThpCodeEntryTag\x10\xfc\x07\x1a\x08\x80\
\xa6\x1d\x01\x90\xb5\x18\x01\x12-\n\x1eMessageType_ThpCodeEntrySecret\
\x10\xfd\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12'\n\x18MessageTy\
pe_ThpQrCodeTag\x10\x80\x08\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12*\
\n\x1bMessageType_ThpQrCodeSecret\x10\x81\x08\x1a\x08\x80\xa6\x1d\x01\
\x98\xb5\x18\x01\x122\n#MessageType_ThpNfcUnidirectionalTag\x10\x88\x08\
\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x126\n'MessageType_ThpNfcUnidei\
rectionalSecret\x10\x89\x08\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x1a\
\x04\xc8\xf3\x18\x01\"\x04\x08Z\x10\\\"\x04\x08r\x10z\"\x06\x08\xdb\x01\
\x10\xdb\x01\"\x06\x08\xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\
\"\x06\x08\xb5\x02\x10\xb8\x02:<\n\x07wire_in\x18\xd2\x86\x03\x20\x01(\
\x08\x12!.google.protobuf.EnumValueOptionsR\x06wireIn:>\n\x08wire_out\
\x18\xd3\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x07\
wireOut:G\n\rwire_debug_in\x18\xd4\x86\x03\x20\x01(\x08\x12!.google.prot\
obuf.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.EnumVa\
lueOptionsR\x08wireTiny:L\n\x0fwire_bootloader\x18\xd7\x86\x03\x20\x01(\
\x08\x12!.google.protobuf.EnumValueOptionsR\x0ewireBootloader:C\n\x0bwir\
e_no_fsm\x18\xd8\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOpti\
onsR\twireNoFsm:F\n\x0cbitcoin_only\x18\xe0\xd4\x03\x20\x01(\x08\x12!.go\
ogle.protobuf.EnumValueOptionsR\x0bbitcoinOnly:U\n\x17has_bitcoin_only_v\
alues\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.protobuf.MessageOptionsR\x13experimentalMessage\
:>\n\twire_type\x18\xa2\x96\x03\x20\x01(\r\x12\x1f.google.protobuf.Messa\
geOptionsR\x08wireType:N\n\x12experimental_field\x18\x89\x9e\x03\x20\x01\
(\x08\x12\x1d.google.protobuf.FieldOptionsR\x11experimentalField:U\n\x17\
include_in_bitcoin_only\x18\xe0\xd4\x03\x20\x01(\x08\x12\x1c.google.prot\
obuf.FileOptionsR\x14includeInBitcoinOnlyB8\n#com.satoshilabs.trezor.lib\
.protobufB\rTrezorMessage\x80\xa6\x1d\x01\
est\x10\xe8\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12/\n\x20Messag\
eType_ThpCredentialRequest\x10\xea\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\
\x18\x01\x120\n!MessageType_ThpCredentialResponse\x10\xeb\x07\x1a\x08\
\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12(\n\x19MessageType_ThpEndRequest\x10\
\xec\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12)\n\x1aMessageType_T\
hpEndResponse\x10\xed\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12.\n\
\x1fMessageType_ThpCreateNewSession\x10\xee\x07\x1a\x08\x80\xa6\x1d\x01\
\x90\xb5\x18\x01\x12(\n\x19MessageType_ThpNewSession\x10\xef\x07\x1a\x08\
\x80\xa6\x1d\x01\x98\xb5\x18\x01\x121\n\"MessageType_ThpCodeEntryCommitm\
ent\x10\xf8\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x120\n!MessageTy\
pe_ThpCodeEntryChallenge\x10\xf9\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\
\x01\x120\n!MessageType_ThpCodeEntryCpaceHost\x10\xfa\x07\x1a\x08\x80\
\xa6\x1d\x01\x90\xb5\x18\x01\x122\n#MessageType_ThpCodeEntryCpaceTrezor\
\x10\xfb\x07\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12*\n\x1bMessageTy\
pe_ThpCodeEntryTag\x10\xfc\x07\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\
\x12-\n\x1eMessageType_ThpCodeEntrySecret\x10\xfd\x07\x1a\x08\x80\xa6\
\x1d\x01\x98\xb5\x18\x01\x12'\n\x18MessageType_ThpQrCodeTag\x10\x80\x08\
\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12*\n\x1bMessageType_ThpQrCode\
Secret\x10\x81\x08\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x122\n#Messag\
eType_ThpNfcUnidirectionalTag\x10\x88\x08\x1a\x08\x80\xa6\x1d\x01\x90\
\xb5\x18\x01\x126\n'MessageType_ThpNfcUnideirectionalSecret\x10\x89\x08\
\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\
\x08Z\x10\\\"\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\xdb\x01\"\x06\x08\xe0\
\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\x06\x08\xb5\x02\x10\xb8\
\x02:<\n\x07wire_in\x18\xd2\x86\x03\x20\x01(\x08\x12!.google.protobuf.En\
umValueOptionsR\x06wireIn:>\n\x08wire_out\x18\xd3\x86\x03\x20\x01(\x08\
\x12!.google.protobuf.EnumValueOptionsR\x07wireOut:G\n\rwire_debug_in\
\x18\xd4\x86\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x0b\
wireDebugIn:I\n\x0ewire_debug_out\x18\xd5\x86\x03\x20\x01(\x08\x12!.goog\
le.protobuf.EnumValueOptionsR\x0cwireDebugOut:@\n\twire_tiny\x18\xd6\x86\
\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\x08wireTiny:L\n\
\x0fwire_bootloader\x18\xd7\x86\x03\x20\x01(\x08\x12!.google.protobuf.En\
umValueOptionsR\x0ewireBootloader:C\n\x0bwire_no_fsm\x18\xd8\x86\x03\x20\
\x01(\x08\x12!.google.protobuf.EnumValueOptionsR\twireNoFsm:F\n\x0cbitco\
in_only\x18\xe0\xd4\x03\x20\x01(\x08\x12!.google.protobuf.EnumValueOptio\
nsR\x0bbitcoinOnly:U\n\x17has_bitcoin_only_values\x18\xb9\x8e\x03\x20\
\x01(\x08\x12\x1c.google.protobuf.EnumOptionsR\x14hasBitcoinOnlyValues:T\
\n\x14experimental_message\x18\xa1\x96\x03\x20\x01(\x08\x12\x1f.google.p\
rotobuf.MessageOptionsR\x13experimentalMessage:>\n\twire_type\x18\xa2\
\x96\x03\x20\x01(\r\x12\x1f.google.protobuf.MessageOptionsR\x08wireType:\
N\n\x12experimental_field\x18\x89\x9e\x03\x20\x01(\x08\x12\x1d.google.pr\
otobuf.FieldOptionsR\x11experimentalField:U\n\x17include_in_bitcoin_only\
\x18\xe0\xd4\x03\x20\x01(\x08\x12\x1c.google.protobuf.FileOptionsR\x14in\
cludeInBitcoinOnlyB8\n#com.satoshilabs.trezor.lib.protobufB\rTrezorMessa\
ge\x80\xa6\x1d\x01\
";
/// `FileDescriptorProto` object which was a source for this generated file

View File

@ -2568,25 +2568,25 @@ impl ::protobuf::reflect::ProtobufValue for ThpNfcUnideirectionalSecret {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.thp.CredentialReq)
// @@protoc_insertion_point(message:hw.trezor.messages.thp.ThpCredentialRequest)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CredentialReq {
pub struct ThpCredentialRequest {
// message fields
// @@protoc_insertion_point(field:hw.trezor.messages.thp.CredentialReq.host_static_pubkey)
// @@protoc_insertion_point(field:hw.trezor.messages.thp.ThpCredentialRequest.host_static_pubkey)
pub host_static_pubkey: ::std::option::Option<::std::vec::Vec<u8>>,
// special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.thp.CredentialReq.special_fields)
// @@protoc_insertion_point(special_field:hw.trezor.messages.thp.ThpCredentialRequest.special_fields)
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CredentialReq {
fn default() -> &'a CredentialReq {
<CredentialReq as ::protobuf::Message>::default_instance()
impl<'a> ::std::default::Default for &'a ThpCredentialRequest {
fn default() -> &'a ThpCredentialRequest {
<ThpCredentialRequest as ::protobuf::Message>::default_instance()
}
}
impl CredentialReq {
pub fn new() -> CredentialReq {
impl ThpCredentialRequest {
pub fn new() -> ThpCredentialRequest {
::std::default::Default::default()
}
@ -2631,19 +2631,19 @@ impl CredentialReq {
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"host_static_pubkey",
|m: &CredentialReq| { &m.host_static_pubkey },
|m: &mut CredentialReq| { &mut m.host_static_pubkey },
|m: &ThpCredentialRequest| { &m.host_static_pubkey },
|m: &mut ThpCredentialRequest| { &mut m.host_static_pubkey },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<CredentialReq>(
"CredentialReq",
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ThpCredentialRequest>(
"ThpCredentialRequest",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for CredentialReq {
const NAME: &'static str = "CredentialReq";
impl ::protobuf::Message for ThpCredentialRequest {
const NAME: &'static str = "ThpCredentialRequest";
fn is_initialized(&self) -> bool {
true
@ -2691,8 +2691,8 @@ impl ::protobuf::Message for CredentialReq {
&mut self.special_fields
}
fn new() -> CredentialReq {
CredentialReq::new()
fn new() -> ThpCredentialRequest {
ThpCredentialRequest::new()
}
fn clear(&mut self) {
@ -2700,8 +2700,8 @@ impl ::protobuf::Message for CredentialReq {
self.special_fields.clear();
}
fn default_instance() -> &'static CredentialReq {
static instance: CredentialReq = CredentialReq {
fn default_instance() -> &'static ThpCredentialRequest {
static instance: ThpCredentialRequest = ThpCredentialRequest {
host_static_pubkey: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
@ -2709,44 +2709,44 @@ impl ::protobuf::Message for CredentialReq {
}
}
impl ::protobuf::MessageFull for CredentialReq {
impl ::protobuf::MessageFull for ThpCredentialRequest {
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("CredentialReq").unwrap()).clone()
descriptor.get(|| file_descriptor().message_by_package_relative_name("ThpCredentialRequest").unwrap()).clone()
}
}
impl ::std::fmt::Display for CredentialReq {
impl ::std::fmt::Display for ThpCredentialRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for CredentialReq {
impl ::protobuf::reflect::ProtobufValue for ThpCredentialRequest {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.thp.CredentialResp)
// @@protoc_insertion_point(message:hw.trezor.messages.thp.ThpCredentialResponse)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CredentialResp {
pub struct ThpCredentialResponse {
// message fields
// @@protoc_insertion_point(field:hw.trezor.messages.thp.CredentialResp.trezor_static_pubkey)
// @@protoc_insertion_point(field:hw.trezor.messages.thp.ThpCredentialResponse.trezor_static_pubkey)
pub trezor_static_pubkey: ::std::option::Option<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.thp.CredentialResp.credential)
// @@protoc_insertion_point(field:hw.trezor.messages.thp.ThpCredentialResponse.credential)
pub credential: ::std::option::Option<::std::vec::Vec<u8>>,
// special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.thp.CredentialResp.special_fields)
// @@protoc_insertion_point(special_field:hw.trezor.messages.thp.ThpCredentialResponse.special_fields)
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CredentialResp {
fn default() -> &'a CredentialResp {
<CredentialResp as ::protobuf::Message>::default_instance()
impl<'a> ::std::default::Default for &'a ThpCredentialResponse {
fn default() -> &'a ThpCredentialResponse {
<ThpCredentialResponse as ::protobuf::Message>::default_instance()
}
}
impl CredentialResp {
pub fn new() -> CredentialResp {
impl ThpCredentialResponse {
pub fn new() -> ThpCredentialResponse {
::std::default::Default::default()
}
@ -2827,24 +2827,24 @@ impl CredentialResp {
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"trezor_static_pubkey",
|m: &CredentialResp| { &m.trezor_static_pubkey },
|m: &mut CredentialResp| { &mut m.trezor_static_pubkey },
|m: &ThpCredentialResponse| { &m.trezor_static_pubkey },
|m: &mut ThpCredentialResponse| { &mut m.trezor_static_pubkey },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"credential",
|m: &CredentialResp| { &m.credential },
|m: &mut CredentialResp| { &mut m.credential },
|m: &ThpCredentialResponse| { &m.credential },
|m: &mut ThpCredentialResponse| { &mut m.credential },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<CredentialResp>(
"CredentialResp",
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ThpCredentialResponse>(
"ThpCredentialResponse",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for CredentialResp {
const NAME: &'static str = "CredentialResp";
impl ::protobuf::Message for ThpCredentialResponse {
const NAME: &'static str = "ThpCredentialResponse";
fn is_initialized(&self) -> bool {
true
@ -2901,8 +2901,8 @@ impl ::protobuf::Message for CredentialResp {
&mut self.special_fields
}
fn new() -> CredentialResp {
CredentialResp::new()
fn new() -> ThpCredentialResponse {
ThpCredentialResponse::new()
}
fn clear(&mut self) {
@ -2911,8 +2911,8 @@ impl ::protobuf::Message for CredentialResp {
self.special_fields.clear();
}
fn default_instance() -> &'static CredentialResp {
static instance: CredentialResp = CredentialResp {
fn default_instance() -> &'static ThpCredentialResponse {
static instance: ThpCredentialResponse = ThpCredentialResponse {
trezor_static_pubkey: ::std::option::Option::None,
credential: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
@ -2921,55 +2921,55 @@ impl ::protobuf::Message for CredentialResp {
}
}
impl ::protobuf::MessageFull for CredentialResp {
impl ::protobuf::MessageFull for ThpCredentialResponse {
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("CredentialResp").unwrap()).clone()
descriptor.get(|| file_descriptor().message_by_package_relative_name("ThpCredentialResponse").unwrap()).clone()
}
}
impl ::std::fmt::Display for CredentialResp {
impl ::std::fmt::Display for ThpCredentialResponse {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for CredentialResp {
impl ::protobuf::reflect::ProtobufValue for ThpCredentialResponse {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.thp.EndReq)
// @@protoc_insertion_point(message:hw.trezor.messages.thp.ThpEndRequest)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct EndReq {
pub struct ThpEndRequest {
// special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.thp.EndReq.special_fields)
// @@protoc_insertion_point(special_field:hw.trezor.messages.thp.ThpEndRequest.special_fields)
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a EndReq {
fn default() -> &'a EndReq {
<EndReq as ::protobuf::Message>::default_instance()
impl<'a> ::std::default::Default for &'a ThpEndRequest {
fn default() -> &'a ThpEndRequest {
<ThpEndRequest as ::protobuf::Message>::default_instance()
}
}
impl EndReq {
pub fn new() -> EndReq {
impl ThpEndRequest {
pub fn new() -> ThpEndRequest {
::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::<EndReq>(
"EndReq",
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ThpEndRequest>(
"ThpEndRequest",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for EndReq {
const NAME: &'static str = "EndReq";
impl ::protobuf::Message for ThpEndRequest {
const NAME: &'static str = "ThpEndRequest";
fn is_initialized(&self) -> bool {
true
@ -3008,71 +3008,71 @@ impl ::protobuf::Message for EndReq {
&mut self.special_fields
}
fn new() -> EndReq {
EndReq::new()
fn new() -> ThpEndRequest {
ThpEndRequest::new()
}
fn clear(&mut self) {
self.special_fields.clear();
}
fn default_instance() -> &'static EndReq {
static instance: EndReq = EndReq {
fn default_instance() -> &'static ThpEndRequest {
static instance: ThpEndRequest = ThpEndRequest {
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for EndReq {
impl ::protobuf::MessageFull for ThpEndRequest {
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("EndReq").unwrap()).clone()
descriptor.get(|| file_descriptor().message_by_package_relative_name("ThpEndRequest").unwrap()).clone()
}
}
impl ::std::fmt::Display for EndReq {
impl ::std::fmt::Display for ThpEndRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for EndReq {
impl ::protobuf::reflect::ProtobufValue for ThpEndRequest {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.thp.EndResp)
// @@protoc_insertion_point(message:hw.trezor.messages.thp.ThpEndResponse)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct EndResp {
pub struct ThpEndResponse {
// special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.thp.EndResp.special_fields)
// @@protoc_insertion_point(special_field:hw.trezor.messages.thp.ThpEndResponse.special_fields)
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a EndResp {
fn default() -> &'a EndResp {
<EndResp as ::protobuf::Message>::default_instance()
impl<'a> ::std::default::Default for &'a ThpEndResponse {
fn default() -> &'a ThpEndResponse {
<ThpEndResponse as ::protobuf::Message>::default_instance()
}
}
impl EndResp {
pub fn new() -> EndResp {
impl ThpEndResponse {
pub fn new() -> ThpEndResponse {
::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::<EndResp>(
"EndResp",
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ThpEndResponse>(
"ThpEndResponse",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for EndResp {
const NAME: &'static str = "EndResp";
impl ::protobuf::Message for ThpEndResponse {
const NAME: &'static str = "ThpEndResponse";
fn is_initialized(&self) -> bool {
true
@ -3111,36 +3111,36 @@ impl ::protobuf::Message for EndResp {
&mut self.special_fields
}
fn new() -> EndResp {
EndResp::new()
fn new() -> ThpEndResponse {
ThpEndResponse::new()
}
fn clear(&mut self) {
self.special_fields.clear();
}
fn default_instance() -> &'static EndResp {
static instance: EndResp = EndResp {
fn default_instance() -> &'static ThpEndResponse {
static instance: ThpEndResponse = ThpEndResponse {
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for EndResp {
impl ::protobuf::MessageFull for ThpEndResponse {
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("EndResp").unwrap()).clone()
descriptor.get(|| file_descriptor().message_by_package_relative_name("ThpEndResponse").unwrap()).clone()
}
}
impl ::std::fmt::Display for EndResp {
impl ::std::fmt::Display for ThpEndResponse {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for EndResp {
impl ::protobuf::reflect::ProtobufValue for ThpEndResponse {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
@ -3248,15 +3248,15 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\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\"=\n\rCredentialR\
eq\x12,\n\x12host_static_pubkey\x18\x01\x20\x01(\x0cR\x10hostStaticPubke\
y\"b\n\x0eCredentialResp\x120\n\x14trezor_static_pubkey\x18\x01\x20\x01(\
\x0cR\x12trezorStaticPubkey\x12\x1e\n\ncredential\x18\x02\x20\x01(\x0cR\
\ncredential\"\x08\n\x06EndReq\"\t\n\x07EndResp*\x8b\x01\n\x10ThpPairing\
Method\x12\x1a\n\x16PairingMethod_NoMethod\x10\x01\x12\x1b\n\x17PairingM\
ethod_CodeEntry\x10\x02\x12\x18\n\x14PairingMethod_QrCode\x10\x03\x12$\n\
\x20PairingMethod_NFC_Unidirectional\x10\x04B7\n#com.satoshilabs.trezor.\
lib.protobufB\x10TrezorMessageThp\
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\
";
/// `FileDescriptorProto` object which was a source for this generated file
@ -3290,10 +3290,10 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
messages.push(ThpQrCodeSecret::generated_message_descriptor_data());
messages.push(ThpNfcUnidirectionalTag::generated_message_descriptor_data());
messages.push(ThpNfcUnideirectionalSecret::generated_message_descriptor_data());
messages.push(CredentialReq::generated_message_descriptor_data());
messages.push(CredentialResp::generated_message_descriptor_data());
messages.push(EndReq::generated_message_descriptor_data());
messages.push(EndResp::generated_message_descriptor_data());
messages.push(ThpCredentialRequest::generated_message_descriptor_data());
messages.push(ThpCredentialResponse::generated_message_descriptor_data());
messages.push(ThpEndRequest::generated_message_descriptor_data());
messages.push(ThpEndResponse::generated_message_descriptor_data());
let mut enums = ::std::vec::Vec::with_capacity(1);
enums.push(ThpPairingMethod::generated_enum_descriptor_data());
::protobuf::reflect::GeneratedFileDescriptor::new_generated(