1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-22 07:28:10 +00:00

Rename trezorctl self-test to prodtest-t1.

It was confusing for trezorctl users. The new name clearly signals that
it's meant to work only for Model One.
This commit is contained in:
obrusvit 2024-02-20 12:03:59 +01:00 committed by Vít Obrusník
parent 0309e41c9d
commit e2b7244383
14 changed files with 184 additions and 156 deletions

View File

@ -35,10 +35,10 @@ message FirmwareUpload {
} }
/** /**
* Request: Perform a device self-test * Request: Perform a prodtest on T1
* @next Success * @next Success
* @next Failure * @next Failure
*/ */
message SelfTest { message ProdTestT1 {
optional bytes payload = 1; // payload to be used in self-test optional bytes payload = 1; // payload to be used in prodtest
} }

View File

@ -141,7 +141,7 @@ enum MessageType {
MessageType_FirmwareErase = 6 [(bitcoin_only) = true, (wire_in) = true, (wire_bootloader) = true]; MessageType_FirmwareErase = 6 [(bitcoin_only) = true, (wire_in) = true, (wire_bootloader) = true];
MessageType_FirmwareUpload = 7 [(bitcoin_only) = true, (wire_in) = true, (wire_bootloader) = true]; MessageType_FirmwareUpload = 7 [(bitcoin_only) = true, (wire_in) = true, (wire_bootloader) = true];
MessageType_FirmwareRequest = 8 [(bitcoin_only) = true, (wire_out) = true, (wire_bootloader) = true]; MessageType_FirmwareRequest = 8 [(bitcoin_only) = true, (wire_out) = true, (wire_bootloader) = true];
MessageType_SelfTest = 32 [(bitcoin_only) = true, (wire_in) = true, (wire_bootloader) = true]; MessageType_ProdTestT1 = 32 [(bitcoin_only) = true, (wire_in) = true, (wire_bootloader) = true];
// Bitcoin // Bitcoin
MessageType_GetPublicKey = 11 [(bitcoin_only) = true, (wire_in) = true]; MessageType_GetPublicKey = 11 [(bitcoin_only) = true, (wire_in) = true];

View File

@ -56,7 +56,7 @@ TranslationDataAck = 992
FirmwareErase = 6 FirmwareErase = 6
FirmwareUpload = 7 FirmwareUpload = 7
FirmwareRequest = 8 FirmwareRequest = 8
SelfTest = 32 ProdTestT1 = 32
GetPublicKey = 11 GetPublicKey = 11
PublicKey = 12 PublicKey = 12
SignTx = 15 SignTx = 15

View File

@ -78,7 +78,7 @@ if TYPE_CHECKING:
FirmwareErase = 6 FirmwareErase = 6
FirmwareUpload = 7 FirmwareUpload = 7
FirmwareRequest = 8 FirmwareRequest = 8
SelfTest = 32 ProdTestT1 = 32
GetPublicKey = 11 GetPublicKey = 11
PublicKey = 12 PublicKey = 12
SignTx = 15 SignTx = 15

View File

@ -0,0 +1 @@
Renamed `trezorctl device self-test` command to `trezorctl device prodtest-t1`

View File

@ -57,6 +57,7 @@ on one page here.
ping Send ping message. ping Send ping message.
ripple Ripple commands. ripple Ripple commands.
set Device settings. set Device settings.
solana Solana commands.
stellar Stellar commands. stellar Stellar commands.
tezos Tezos commands. tezos Tezos commands.
usb-reset Perform USB reset on stuck devices. usb-reset Perform USB reset on stuck devices.
@ -211,10 +212,10 @@ Device management commands - setup, recover seed, wipe, etc.
authenticate Get information to verify the authenticity of the device. authenticate Get information to verify the authenticity of the device.
backup Perform device seed backup. backup Perform device seed backup.
load Upload seed and custom configuration to the device. load Upload seed and custom configuration to the device.
prodtest-t1 Perform a prodtest on Model One.
reboot-to-bootloader Reboot device into bootloader mode. reboot-to-bootloader Reboot device into bootloader mode.
recover Start safe recovery workflow. recover Start safe recovery workflow.
sd-protect Secure the device with SD card protection. sd-protect Secure the device with SD card protection.
self-test Perform a factory self-test.
set-busy Show a "Do not disconnect" dialog. set-busy Show a "Do not disconnect" dialog.
setup Perform device setup and generate new seed. setup Perform device setup and generate new seed.
tutorial Show on-device tutorial. tutorial Show on-device tutorial.
@ -409,11 +410,33 @@ Device settings.
flags Set device flags. flags Set device flags.
homescreen Set new homescreen. homescreen Set new homescreen.
label Set new device label. label Set new device label.
language Set new language with translations.
passphrase Enable, disable or configure passphrase protection. passphrase Enable, disable or configure passphrase protection.
pin Set, change or remove PIN. pin Set, change or remove PIN.
safety-checks Set safety check level. safety-checks Set safety check level.
wipe-code Set or remove the wipe code. wipe-code Set or remove the wipe code.
Solana commands.
~~~~~~~~~~~~~~~~
.. code::
trezorctl solana --help
.. code::
Usage: trezorctl solana [OPTIONS] COMMAND [ARGS]...
Solana commands.
Options:
--help Show this message and exit.
Commands:
get-address Get Solana address.
get-public-key Get Solana public key.
sign-tx Sign Solana transaction.
Stellar commands. Stellar commands.
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~

View File

@ -19,7 +19,11 @@ from typing import TYPE_CHECKING, Union
import click import click
from .. import mapping, messages, protobuf from .. import mapping, messages, protobuf
from ..debuglink import TrezorClientDebugLink, record_screen from ..client import TrezorClient
from ..debuglink import TrezorClientDebugLink
from ..debuglink import prodtest_t1 as debuglink_prodtest_t1
from ..debuglink import record_screen
from . import with_client
if TYPE_CHECKING: if TYPE_CHECKING:
from . import TrezorConnection from . import TrezorConnection
@ -98,3 +102,13 @@ def record_screen_from_connection(
debug_client.open() debug_client.open()
record_screen(debug_client, directory, report_func=click.echo) record_screen(debug_client, directory, report_func=click.echo)
debug_client.close() debug_client.close()
@cli.command()
@with_client
def prodtest_t1(client: "TrezorClient") -> str:
"""Perform a prodtest on Model One.
Only available on PRODTEST firmware and on T1B1. Formerly named self-test.
"""
return debuglink_prodtest_t1(client)

View File

@ -51,16 +51,6 @@ def cli() -> None:
"""Device management commands - setup, recover seed, wipe, etc.""" """Device management commands - setup, recover seed, wipe, etc."""
@cli.command()
@with_client
def self_test(client: "TrezorClient") -> str:
"""Perform a factory self-test.
Only available on PRODTEST firmware.
"""
return debuglink.self_test(client)
@cli.command() @cli.command()
@click.option( @click.option(
"-b", "-b",

View File

@ -69,7 +69,7 @@ COMMAND_ALIASES = {
"backup-device": device.backup, "backup-device": device.backup,
"sd-protect": device.sd_protect, "sd-protect": device.sd_protect,
"load-device": device.load, "load-device": device.load,
"self-test": device.self_test, "prodtest-t1": debug.prodtest_t1,
"get-entropy": crypto.get_entropy, "get-entropy": crypto.get_entropy,
"encrypt-keyvalue": crypto.encrypt_keyvalue, "encrypt-keyvalue": crypto.encrypt_keyvalue,
"decrypt-keyvalue": crypto.decrypt_keyvalue, "decrypt-keyvalue": crypto.decrypt_keyvalue,

View File

@ -1275,12 +1275,12 @@ load_device_by_mnemonic = load_device
@expect(messages.Success, field="message", ret_type=str) @expect(messages.Success, field="message", ret_type=str)
def self_test(client: "TrezorClient") -> protobuf.MessageType: def prodtest_t1(client: "TrezorClient") -> protobuf.MessageType:
if client.features.bootloader_mode is not True: if client.features.bootloader_mode is not True:
raise RuntimeError("Device must be in bootloader mode") raise RuntimeError("Device must be in bootloader mode")
return client.call( return client.call(
messages.SelfTest( messages.ProdTestT1(
payload=b"\x00\xFF\x55\xAA\x66\x99\x33\xCCABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\x00\xFF\x55\xAA\x66\x99\x33\xCC" payload=b"\x00\xFF\x55\xAA\x66\x99\x33\xCCABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\x00\xFF\x55\xAA\x66\x99\x33\xCC"
) )
) )

View File

@ -86,7 +86,7 @@ class MessageType(IntEnum):
FirmwareErase = 6 FirmwareErase = 6
FirmwareUpload = 7 FirmwareUpload = 7
FirmwareRequest = 8 FirmwareRequest = 8
SelfTest = 32 ProdTestT1 = 32
GetPublicKey = 11 GetPublicKey = 11
PublicKey = 12 PublicKey = 12
SignTx = 15 SignTx = 15
@ -2137,7 +2137,7 @@ class FirmwareUpload(protobuf.MessageType):
self.hash = hash self.hash = hash
class SelfTest(protobuf.MessageType): class ProdTestT1(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 32 MESSAGE_WIRE_TYPE = 32
FIELDS = { FIELDS = {
1: protobuf.Field("payload", "bytes", repeated=False, required=False, default=None), 1: protobuf.Field("payload", "bytes", repeated=False, required=False, default=None),

View File

@ -56,7 +56,7 @@ trezor_message_impl! {
FirmwareErase => MessageType_FirmwareErase, FirmwareErase => MessageType_FirmwareErase,
FirmwareUpload => MessageType_FirmwareUpload, FirmwareUpload => MessageType_FirmwareUpload,
FirmwareRequest => MessageType_FirmwareRequest, FirmwareRequest => MessageType_FirmwareRequest,
SelfTest => MessageType_SelfTest, ProdTestT1 => MessageType_ProdTestT1,
CipherKeyValue => MessageType_CipherKeyValue, CipherKeyValue => MessageType_CipherKeyValue,
CipheredKeyValue => MessageType_CipheredKeyValue, CipheredKeyValue => MessageType_CipheredKeyValue,
SignIdentity => MessageType_SignIdentity, SignIdentity => MessageType_SignIdentity,

View File

@ -142,8 +142,8 @@ pub enum MessageType {
MessageType_FirmwareUpload = 7, MessageType_FirmwareUpload = 7,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_FirmwareRequest) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_FirmwareRequest)
MessageType_FirmwareRequest = 8, MessageType_FirmwareRequest = 8,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_SelfTest) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_ProdTestT1)
MessageType_SelfTest = 32, MessageType_ProdTestT1 = 32,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_GetPublicKey) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_GetPublicKey)
MessageType_GetPublicKey = 11, MessageType_GetPublicKey = 11,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_PublicKey) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_PublicKey)
@ -582,7 +582,7 @@ impl ::protobuf::Enum for MessageType {
6 => ::std::option::Option::Some(MessageType::MessageType_FirmwareErase), 6 => ::std::option::Option::Some(MessageType::MessageType_FirmwareErase),
7 => ::std::option::Option::Some(MessageType::MessageType_FirmwareUpload), 7 => ::std::option::Option::Some(MessageType::MessageType_FirmwareUpload),
8 => ::std::option::Option::Some(MessageType::MessageType_FirmwareRequest), 8 => ::std::option::Option::Some(MessageType::MessageType_FirmwareRequest),
32 => ::std::option::Option::Some(MessageType::MessageType_SelfTest), 32 => ::std::option::Option::Some(MessageType::MessageType_ProdTestT1),
11 => ::std::option::Option::Some(MessageType::MessageType_GetPublicKey), 11 => ::std::option::Option::Some(MessageType::MessageType_GetPublicKey),
12 => ::std::option::Option::Some(MessageType::MessageType_PublicKey), 12 => ::std::option::Option::Some(MessageType::MessageType_PublicKey),
15 => ::std::option::Option::Some(MessageType::MessageType_SignTx), 15 => ::std::option::Option::Some(MessageType::MessageType_SignTx),
@ -831,7 +831,7 @@ impl ::protobuf::Enum for MessageType {
"MessageType_FirmwareErase" => ::std::option::Option::Some(MessageType::MessageType_FirmwareErase), "MessageType_FirmwareErase" => ::std::option::Option::Some(MessageType::MessageType_FirmwareErase),
"MessageType_FirmwareUpload" => ::std::option::Option::Some(MessageType::MessageType_FirmwareUpload), "MessageType_FirmwareUpload" => ::std::option::Option::Some(MessageType::MessageType_FirmwareUpload),
"MessageType_FirmwareRequest" => ::std::option::Option::Some(MessageType::MessageType_FirmwareRequest), "MessageType_FirmwareRequest" => ::std::option::Option::Some(MessageType::MessageType_FirmwareRequest),
"MessageType_SelfTest" => ::std::option::Option::Some(MessageType::MessageType_SelfTest), "MessageType_ProdTestT1" => ::std::option::Option::Some(MessageType::MessageType_ProdTestT1),
"MessageType_GetPublicKey" => ::std::option::Option::Some(MessageType::MessageType_GetPublicKey), "MessageType_GetPublicKey" => ::std::option::Option::Some(MessageType::MessageType_GetPublicKey),
"MessageType_PublicKey" => ::std::option::Option::Some(MessageType::MessageType_PublicKey), "MessageType_PublicKey" => ::std::option::Option::Some(MessageType::MessageType_PublicKey),
"MessageType_SignTx" => ::std::option::Option::Some(MessageType::MessageType_SignTx), "MessageType_SignTx" => ::std::option::Option::Some(MessageType::MessageType_SignTx),
@ -1079,7 +1079,7 @@ impl ::protobuf::Enum for MessageType {
MessageType::MessageType_FirmwareErase, MessageType::MessageType_FirmwareErase,
MessageType::MessageType_FirmwareUpload, MessageType::MessageType_FirmwareUpload,
MessageType::MessageType_FirmwareRequest, MessageType::MessageType_FirmwareRequest,
MessageType::MessageType_SelfTest, MessageType::MessageType_ProdTestT1,
MessageType::MessageType_GetPublicKey, MessageType::MessageType_GetPublicKey,
MessageType::MessageType_PublicKey, MessageType::MessageType_PublicKey,
MessageType::MessageType_SignTx, MessageType::MessageType_SignTx,
@ -1333,7 +1333,7 @@ impl ::protobuf::EnumFull for MessageType {
MessageType::MessageType_FirmwareErase => 54, MessageType::MessageType_FirmwareErase => 54,
MessageType::MessageType_FirmwareUpload => 55, MessageType::MessageType_FirmwareUpload => 55,
MessageType::MessageType_FirmwareRequest => 56, MessageType::MessageType_FirmwareRequest => 56,
MessageType::MessageType_SelfTest => 57, MessageType::MessageType_ProdTestT1 => 57,
MessageType::MessageType_GetPublicKey => 58, MessageType::MessageType_GetPublicKey => 58,
MessageType::MessageType_PublicKey => 59, MessageType::MessageType_PublicKey => 59,
MessageType::MessageType_SignTx => 60, MessageType::MessageType_SignTx => 60,
@ -1568,7 +1568,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*\x98T\n\x0bMessageType\x12(\n\x16MessageType_Initialize\ scriptor.proto*\x9aT\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\
@ -1636,106 +1636,106 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12,\n\x1aMessageType_FirmwareUpload\ \x80\xa6\x1d\x01\x90\xb5\x18\x01\x12,\n\x1aMessageType_FirmwareUpload\
\x10\x07\x1a\x0c\xb8\xb5\x18\x01\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12-\n\ \x10\x07\x1a\x0c\xb8\xb5\x18\x01\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12-\n\
\x1bMessageType_FirmwareRequest\x10\x08\x1a\x0c\xb8\xb5\x18\x01\x80\xa6\ \x1bMessageType_FirmwareRequest\x10\x08\x1a\x0c\xb8\xb5\x18\x01\x80\xa6\
\x1d\x01\x98\xb5\x18\x01\x12&\n\x14MessageType_SelfTest\x10\x20\x1a\x0c\ \x1d\x01\x98\xb5\x18\x01\x12(\n\x16MessageType_ProdTestT1\x10\x20\x1a\
\xb8\xb5\x18\x01\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12&\n\x18MessageType_G\ \x0c\xb8\xb5\x18\x01\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12&\n\x18MessageTy\
etPublicKey\x10\x0b\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12#\n\x15Me\ pe_GetPublicKey\x10\x0b\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12#\n\
ssageType_PublicKey\x10\x0c\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12\ \x15MessageType_PublicKey\x10\x0c\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\
\x20\n\x12MessageType_SignTx\x10\x0f\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\ \x01\x12\x20\n\x12MessageType_SignTx\x10\x0f\x1a\x08\x80\xa6\x1d\x01\x90\
\x01\x12#\n\x15MessageType_TxRequest\x10\x15\x1a\x08\x80\xa6\x1d\x01\x98\ \xb5\x18\x01\x12#\n\x15MessageType_TxRequest\x10\x15\x1a\x08\x80\xa6\x1d\
\xb5\x18\x01\x12\x1f\n\x11MessageType_TxAck\x10\x16\x1a\x08\x80\xa6\x1d\ \x01\x98\xb5\x18\x01\x12\x1f\n\x11MessageType_TxAck\x10\x16\x1a\x08\x80\
\x01\x90\xb5\x18\x01\x12$\n\x16MessageType_GetAddress\x10\x1d\x1a\x08\ \xa6\x1d\x01\x90\xb5\x18\x01\x12$\n\x16MessageType_GetAddress\x10\x1d\
\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12!\n\x13MessageType_Address\x10\x1e\ \x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12!\n\x13MessageType_Address\
\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12)\n\x1fMessageType_TxAckPaym\ \x10\x1e\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12)\n\x1fMessageType_T\
entRequest\x10%\x1a\x04\x90\xb5\x18\x01\x12%\n\x17MessageType_SignMessag\ xAckPaymentRequest\x10%\x1a\x04\x90\xb5\x18\x01\x12%\n\x17MessageType_Si\
e\x10&\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12'\n\x19MessageType_Ver\ gnMessage\x10&\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12'\n\x19Message\
ifyMessage\x10'\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12*\n\x1cMessag\ Type_VerifyMessage\x10'\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12*\n\
eType_MessageSignature\x10(\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12(\ \x1cMessageType_MessageSignature\x10(\x1a\x08\x80\xa6\x1d\x01\x98\xb5\
\n\x1aMessageType_GetOwnershipId\x10+\x1a\x08\x80\xa6\x1d\x01\x90\xb5\ \x18\x01\x12(\n\x1aMessageType_GetOwnershipId\x10+\x1a\x08\x80\xa6\x1d\
\x18\x01\x12%\n\x17MessageType_OwnershipId\x10,\x1a\x08\x80\xa6\x1d\x01\ \x01\x90\xb5\x18\x01\x12%\n\x17MessageType_OwnershipId\x10,\x1a\x08\x80\
\x98\xb5\x18\x01\x12+\n\x1dMessageType_GetOwnershipProof\x101\x1a\x08\ \xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_GetOwnershipProof\x10\
\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_OwnershipProof\ 1\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_Ownershi\
\x102\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_Auth\ pProof\x102\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageTyp\
orizeCoinJoin\x103\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMes\ e_AuthorizeCoinJoin\x103\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\
sageType_CipherKeyValue\x10\x17\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\ \x1aMessageType_CipherKeyValue\x10\x17\x1a\x08\x80\xa6\x1d\x01\x90\xb5\
\x12*\n\x1cMessageType_CipheredKeyValue\x100\x1a\x08\x80\xa6\x1d\x01\x98\ \x18\x01\x12*\n\x1cMessageType_CipheredKeyValue\x100\x1a\x08\x80\xa6\x1d\
\xb5\x18\x01\x12&\n\x18MessageType_SignIdentity\x105\x1a\x08\x80\xa6\x1d\ \x01\x98\xb5\x18\x01\x12&\n\x18MessageType_SignIdentity\x105\x1a\x08\x80\
\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_SignedIdentity\x106\x1a\x08\ \xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_SignedIdentity\x106\
\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_GetECDHSessionKey\ \x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_GetECDHSe\
\x10=\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_ECDH\ ssionKey\x10=\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageT\
SessionKey\x10>\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12$\n\x16Messag\ ype_ECDHSessionKey\x10>\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12$\n\
eType_CosiCommit\x10G\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1a\ \x16MessageType_CosiCommit\x10G\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\
MessageType_CosiCommitment\x10H\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\ \x12(\n\x1aMessageType_CosiCommitment\x10H\x1a\x08\x80\xa6\x1d\x01\x98\
\x12\"\n\x14MessageType_CosiSign\x10I\x1a\x08\x80\xa6\x1d\x01\x90\xb5\ \xb5\x18\x01\x12\"\n\x14MessageType_CosiSign\x10I\x1a\x08\x80\xa6\x1d\
\x18\x01\x12'\n\x19MessageType_CosiSignature\x10J\x1a\x08\x80\xa6\x1d\ \x01\x90\xb5\x18\x01\x12'\n\x19MessageType_CosiSignature\x10J\x1a\x08\
\x01\x98\xb5\x18\x01\x123\n\x1dMessageType_DebugLinkDecision\x10d\x1a\ \x80\xa6\x1d\x01\x98\xb5\x18\x01\x123\n\x1dMessageType_DebugLinkDecision\
\x10\xc0\xb5\x18\x01\xb0\xb5\x18\x01\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12\ \x10d\x1a\x10\xc0\xb5\x18\x01\xb0\xb5\x18\x01\x80\xa6\x1d\x01\xa0\xb5\
/\n\x1dMessageType_DebugLinkGetState\x10e\x1a\x0c\x80\xa6\x1d\x01\xb0\ \x18\x01\x12/\n\x1dMessageType_DebugLinkGetState\x10e\x1a\x0c\x80\xa6\
\xb5\x18\x01\xa0\xb5\x18\x01\x12(\n\x1aMessageType_DebugLinkState\x10f\ \x1d\x01\xb0\xb5\x18\x01\xa0\xb5\x18\x01\x12(\n\x1aMessageType_DebugLink\
\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12'\n\x19MessageType_DebugLink\ State\x10f\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12'\n\x19MessageType\
Stop\x10g\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12&\n\x18MessageType_\ _DebugLinkStop\x10g\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12&\n\x18Me\
DebugLinkLog\x10h\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12-\n\x1fMess\ ssageType_DebugLinkLog\x10h\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12-\
ageType_DebugLinkMemoryRead\x10n\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\ \n\x1fMessageType_DebugLinkMemoryRead\x10n\x1a\x08\x80\xa6\x1d\x01\xa0\
\x12)\n\x1bMessageType_DebugLinkMemory\x10o\x1a\x08\x80\xa6\x1d\x01\xa8\ \xb5\x18\x01\x12)\n\x1bMessageType_DebugLinkMemory\x10o\x1a\x08\x80\xa6\
\xb5\x18\x01\x12.\n\x20MessageType_DebugLinkMemoryWrite\x10p\x1a\x08\x80\ \x1d\x01\xa8\xb5\x18\x01\x12.\n\x20MessageType_DebugLinkMemoryWrite\x10p\
\xa6\x1d\x01\xa0\xb5\x18\x01\x12-\n\x1fMessageType_DebugLinkFlashErase\ \x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12-\n\x1fMessageType_DebugLink\
\x10q\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12*\n\x1bMessageType_Debu\ FlashErase\x10q\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12*\n\x1bMessag\
gLinkLayout\x10\xa9F\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x120\n!Mess\ eType_DebugLinkLayout\x10\xa9F\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\
ageType_DebugLinkReseedRandom\x10\xaaF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\ \x120\n!MessageType_DebugLinkReseedRandom\x10\xaaF\x1a\x08\x80\xa6\x1d\
\x18\x01\x120\n!MessageType_DebugLinkRecordScreen\x10\xabF\x1a\x08\x80\ \x01\xa0\xb5\x18\x01\x120\n!MessageType_DebugLinkRecordScreen\x10\xabF\
\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20MessageType_DebugLinkEraseSdCard\ \x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20MessageType_DebugLink\
\x10\xadF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20MessageType_\ EraseSdCard\x10\xadF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20M\
DebugLinkWatchLayout\x10\xaeF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\ essageType_DebugLinkWatchLayout\x10\xaeF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\
\x124\n%MessageType_DebugLinkResetDebugEvents\x10\xafF\x1a\x08\x80\xa6\ \x18\x01\x124\n%MessageType_DebugLinkResetDebugEvents\x10\xafF\x1a\x08\
\x1d\x01\xa0\xb5\x18\x01\x12+\n\x20MessageType_EthereumGetPublicKey\x10\ \x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12+\n\x20MessageType_EthereumGetPublic\
\xc2\x03\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_EthereumPublicKey\ Key\x10\xc2\x03\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_EthereumPu\
\x10\xc3\x03\x1a\x04\x98\xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAd\ blicKey\x10\xc3\x03\x1a\x04\x98\xb5\x18\x01\x12(\n\x1eMessageType_Ethere\
dress\x108\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\ umGetAddress\x108\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_Ethereum\
\x109\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\ Address\x109\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumSignT\
\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_EthereumSignTxEIP1559\x10\ x\x10:\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_EthereumSignTxEIP1559\
\xc4\x03\x1a\x04\x90\xb5\x18\x01\x12'\n\x1dMessageType_EthereumTxRequest\ \x10\xc4\x03\x1a\x04\x90\xb5\x18\x01\x12'\n\x1dMessageType_EthereumTxReq\
\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\ uest\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\
\x1a\x04\x90\xb5\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\x10@\ \x10<\x1a\x04\x90\xb5\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\
\x1a\x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10A\ \x10@\x1a\x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\
\x1a\x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10\ \x10A\x1a\x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessageSignatur\
B\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\x10\ e\x10B\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\
\xd0\x03\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDataStr\ \x10\xd0\x03\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDat\
uctRequest\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_Ethere\ aStructRequest\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_Et\
umTypedDataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)MessageT\ hereumTypedDataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)Mess\
ype_EthereumTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\x01\ ageType_EthereumTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\
\x120\n%MessageType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\x90\ \x01\x120\n%MessageType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\
\xb5\x18\x01\x121\n&MessageType_EthereumTypedDataSignature\x10\xd5\x03\ \x90\xb5\x18\x01\x121\n&MessageType_EthereumTypedDataSignature\x10\xd5\
\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\x10\ \x03\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\
\xd6\x03\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\x10\ \x10\xd6\x03\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\
C\x1a\x04\x90\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\x1a\ \x10C\x1a\x04\x90\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\
\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\x90\ \x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\
\xb5\x18\x01\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\x18\ \x90\xb5\x18\x01\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\
\x01\x12'\n\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\x18\ \x18\x01\x12'\n\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\
\x01\x12)\n\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\x18\ \x18\x01\x12)\n\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\
\x01\x12&\n\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\xb5\ \x18\x01\x12&\n\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\
\x18\x01\x12#\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\xb5\ \xb5\x18\x01\x12#\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\
\x18\x01\x12\"\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\xb5\ \xb5\x18\x01\x12\"\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\
\x18\x01\x12$\n\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\xb5\ \xb5\x18\x01\x12$\n\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\
\x18\x01\x12(\n\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\x90\ \xb5\x18\x01\x12(\n\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\
\xb5\x18\x01\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\x04\ \x90\xb5\x18\x01\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\
\x98\xb5\x18\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\x04\ \x04\x98\xb5\x18\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\
\x90\xb5\x18\x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\x01\ \x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\
\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\xcf\ \x01\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\
\x01\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\x10\ \xcf\x01\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\
\xd0\x01\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAccoun\ \x10\xd0\x01\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAc\
tOp\x10\xd2\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_StellarPay\ countOp\x10\xd2\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_Stella\
mentOp\x10\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_StellarPat\ rPaymentOp\x10\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_Stella\
hPaymentStrictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$Messa\ rPathPaymentStrictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$M\
geType_StellarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\x126\ essageType_StellarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\
\n+MessageType_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\x90\ \x126\n+MessageType_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\
\xb5\x18\x01\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\x1a\ \x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\
\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\xd8\ \x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\
\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrustOp\ \xd8\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrust\
\x10\xd9\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccountMe\ Op\x10\xd9\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccount\
rgeOp\x10\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarM\ MergeOp\x10\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Stella\
anageDataOp\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_Stell\ rManageDataOp\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_Ste\
arBumpSequenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_\ llarBumpSequenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageTyp\
StellarManageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*Messa\ e_StellarManageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*Mes\
geType_StellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\ sageType_StellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\
\x01\x125\n*MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\ \x01\x125\n*MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\
\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\ \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\
\x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\ \x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\

View File

@ -565,25 +565,25 @@ impl ::protobuf::reflect::ProtobufValue for FirmwareUpload {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>; type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
} }
// @@protoc_insertion_point(message:hw.trezor.messages.bootloader.SelfTest) // @@protoc_insertion_point(message:hw.trezor.messages.bootloader.ProdTestT1)
#[derive(PartialEq,Clone,Default,Debug)] #[derive(PartialEq,Clone,Default,Debug)]
pub struct SelfTest { pub struct ProdTestT1 {
// message fields // message fields
// @@protoc_insertion_point(field:hw.trezor.messages.bootloader.SelfTest.payload) // @@protoc_insertion_point(field:hw.trezor.messages.bootloader.ProdTestT1.payload)
pub payload: ::std::option::Option<::std::vec::Vec<u8>>, pub payload: ::std::option::Option<::std::vec::Vec<u8>>,
// special fields // special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.bootloader.SelfTest.special_fields) // @@protoc_insertion_point(special_field:hw.trezor.messages.bootloader.ProdTestT1.special_fields)
pub special_fields: ::protobuf::SpecialFields, pub special_fields: ::protobuf::SpecialFields,
} }
impl<'a> ::std::default::Default for &'a SelfTest { impl<'a> ::std::default::Default for &'a ProdTestT1 {
fn default() -> &'a SelfTest { fn default() -> &'a ProdTestT1 {
<SelfTest as ::protobuf::Message>::default_instance() <ProdTestT1 as ::protobuf::Message>::default_instance()
} }
} }
impl SelfTest { impl ProdTestT1 {
pub fn new() -> SelfTest { pub fn new() -> ProdTestT1 {
::std::default::Default::default() ::std::default::Default::default()
} }
@ -628,19 +628,19 @@ impl SelfTest {
let mut oneofs = ::std::vec::Vec::with_capacity(0); let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>( fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"payload", "payload",
|m: &SelfTest| { &m.payload }, |m: &ProdTestT1| { &m.payload },
|m: &mut SelfTest| { &mut m.payload }, |m: &mut ProdTestT1| { &mut m.payload },
)); ));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<SelfTest>( ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ProdTestT1>(
"SelfTest", "ProdTestT1",
fields, fields,
oneofs, oneofs,
) )
} }
} }
impl ::protobuf::Message for SelfTest { impl ::protobuf::Message for ProdTestT1 {
const NAME: &'static str = "SelfTest"; const NAME: &'static str = "ProdTestT1";
fn is_initialized(&self) -> bool { fn is_initialized(&self) -> bool {
true true
@ -688,8 +688,8 @@ impl ::protobuf::Message for SelfTest {
&mut self.special_fields &mut self.special_fields
} }
fn new() -> SelfTest { fn new() -> ProdTestT1 {
SelfTest::new() ProdTestT1::new()
} }
fn clear(&mut self) { fn clear(&mut self) {
@ -697,8 +697,8 @@ impl ::protobuf::Message for SelfTest {
self.special_fields.clear(); self.special_fields.clear();
} }
fn default_instance() -> &'static SelfTest { fn default_instance() -> &'static ProdTestT1 {
static instance: SelfTest = SelfTest { static instance: ProdTestT1 = ProdTestT1 {
payload: ::std::option::Option::None, payload: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(), special_fields: ::protobuf::SpecialFields::new(),
}; };
@ -706,20 +706,20 @@ impl ::protobuf::Message for SelfTest {
} }
} }
impl ::protobuf::MessageFull for SelfTest { impl ::protobuf::MessageFull for ProdTestT1 {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor { fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new(); static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("SelfTest").unwrap()).clone() descriptor.get(|| file_descriptor().message_by_package_relative_name("ProdTestT1").unwrap()).clone()
} }
} }
impl ::std::fmt::Display for SelfTest { impl ::std::fmt::Display for ProdTestT1 {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f) ::protobuf::text_format::fmt(self, f)
} }
} }
impl ::protobuf::reflect::ProtobufValue for SelfTest { impl ::protobuf::reflect::ProtobufValue for ProdTestT1 {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>; type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
} }
@ -729,7 +729,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\x0fFirmwareRequest\x12\x16\n\x06offset\x18\x01\x20\x02(\rR\x06offset\ \x0fFirmwareRequest\x12\x16\n\x06offset\x18\x01\x20\x02(\rR\x06offset\
\x12\x16\n\x06length\x18\x02\x20\x02(\rR\x06length\">\n\x0eFirmwareUploa\ \x12\x16\n\x06length\x18\x02\x20\x02(\rR\x06length\">\n\x0eFirmwareUploa\
d\x12\x18\n\x07payload\x18\x01\x20\x02(\x0cR\x07payload\x12\x12\n\x04has\ d\x12\x18\n\x07payload\x18\x01\x20\x02(\x0cR\x07payload\x12\x12\n\x04has\
h\x18\x02\x20\x01(\x0cR\x04hash\"$\n\x08SelfTest\x12\x18\n\x07payload\ h\x18\x02\x20\x01(\x0cR\x04hash\"&\n\nProdTestT1\x12\x18\n\x07payload\
\x18\x01\x20\x01(\x0cR\x07payloadB>\n#com.satoshilabs.trezor.lib.protobu\ \x18\x01\x20\x01(\x0cR\x07payloadB>\n#com.satoshilabs.trezor.lib.protobu\
fB\x17TrezorMessageBootloader\ fB\x17TrezorMessageBootloader\
"; ";
@ -753,7 +753,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
messages.push(FirmwareErase::generated_message_descriptor_data()); messages.push(FirmwareErase::generated_message_descriptor_data());
messages.push(FirmwareRequest::generated_message_descriptor_data()); messages.push(FirmwareRequest::generated_message_descriptor_data());
messages.push(FirmwareUpload::generated_message_descriptor_data()); messages.push(FirmwareUpload::generated_message_descriptor_data());
messages.push(SelfTest::generated_message_descriptor_data()); messages.push(ProdTestT1::generated_message_descriptor_data());
let mut enums = ::std::vec::Vec::with_capacity(0); let mut enums = ::std::vec::Vec::with_capacity(0);
::protobuf::reflect::GeneratedFileDescriptor::new_generated( ::protobuf::reflect::GeneratedFileDescriptor::new_generated(
file_descriptor_proto(), file_descriptor_proto(),