From 055662ea2729dfd0a25f1776f8bbf829c3881050 Mon Sep 17 00:00:00 2001 From: matejcik Date: Wed, 31 Jan 2024 12:28:39 +0100 Subject: [PATCH] chore(common): deprecate `language` fields in ApplySettings, ResetDevice, RecoveryDevice --- common/protob/messages-management.proto | 8 +- core/src/trezor/messages.py | 8 - python/src/trezorlib/messages.py | 8 +- .../protos/generated/messages_management.rs | 257 ++++++++++++------ 4 files changed, 175 insertions(+), 106 deletions(-) diff --git a/common/protob/messages-management.proto b/common/protob/messages-management.proto index b74d8739c6..f148dc90c3 100644 --- a/common/protob/messages-management.proto +++ b/common/protob/messages-management.proto @@ -167,7 +167,7 @@ message EndSession { * @next Failure */ message ApplySettings { - optional string language = 1; + optional string language = 1 [deprecated=true]; optional string label = 2; optional bool use_passphrase = 3; optional bytes homescreen = 4; @@ -361,7 +361,7 @@ message LoadDevice { repeated string mnemonics = 1; // seed encoded as mnemonic (12, 18 or 24 words for BIP39, 20 or 33 for SLIP39) optional string pin = 3; // set PIN protection optional bool passphrase_protection = 4; // enable master node encryption using passphrase - optional string language = 5 [default='en-US']; // device language (IETF BCP 47 language tag) + optional string language = 5 [deprecated=true]; // deprecated (use ChangeLanguage) optional string label = 6; // device label optional bool skip_checksum = 7; // do not test mnemonic for valid BIP-39 checksum optional uint32 u2f_counter = 8; // U2F counter @@ -380,7 +380,7 @@ message ResetDevice { optional uint32 strength = 2 [default=256]; // strength of seed in bits optional bool passphrase_protection = 3; // enable master node encryption using passphrase optional bool pin_protection = 4; // enable PIN protection - optional string language = 5 [default='en-US']; // device language (IETF BCP 47 language tag) + optional string language = 5 [deprecated=true]; // deprecated (use ChangeLanguage) optional string label = 6; // device label optional uint32 u2f_counter = 7; // U2F counter optional bool skip_backup = 8; // postpone seed backup to BackupDevice workflow @@ -421,7 +421,7 @@ message RecoveryDevice { optional uint32 word_count = 1; // number of words in BIP-39 mnemonic optional bool passphrase_protection = 2; // enable master node encryption using passphrase optional bool pin_protection = 3; // enable PIN protection - optional string language = 4; // device language (IETF BCP 47 language tag) + optional string language = 4 [deprecated=true]; // deprecated (use ChangeLanguage) optional string label = 5; // device label optional bool enforce_wordlist = 6; // enforce BIP-39 wordlist during the process // 7 reserved for unused recovery method diff --git a/core/src/trezor/messages.py b/core/src/trezor/messages.py index 6de883bf76..c986c2e3d5 100644 --- a/core/src/trezor/messages.py +++ b/core/src/trezor/messages.py @@ -2218,7 +2218,6 @@ if TYPE_CHECKING: return isinstance(msg, cls) class ApplySettings(protobuf.MessageType): - language: "str | None" label: "str | None" use_passphrase: "bool | None" homescreen: "bytes | None" @@ -2232,7 +2231,6 @@ if TYPE_CHECKING: def __init__( self, *, - language: "str | None" = None, label: "str | None" = None, use_passphrase: "bool | None" = None, homescreen: "bytes | None" = None, @@ -2469,7 +2467,6 @@ if TYPE_CHECKING: mnemonics: "list[str]" pin: "str | None" passphrase_protection: "bool | None" - language: "str" label: "str | None" skip_checksum: "bool | None" u2f_counter: "int | None" @@ -2482,7 +2479,6 @@ if TYPE_CHECKING: mnemonics: "list[str] | None" = None, pin: "str | None" = None, passphrase_protection: "bool | None" = None, - language: "str | None" = None, label: "str | None" = None, skip_checksum: "bool | None" = None, u2f_counter: "int | None" = None, @@ -2500,7 +2496,6 @@ if TYPE_CHECKING: strength: "int" passphrase_protection: "bool | None" pin_protection: "bool | None" - language: "str" label: "str | None" u2f_counter: "int | None" skip_backup: "bool | None" @@ -2514,7 +2509,6 @@ if TYPE_CHECKING: strength: "int | None" = None, passphrase_protection: "bool | None" = None, pin_protection: "bool | None" = None, - language: "str | None" = None, label: "str | None" = None, u2f_counter: "int | None" = None, skip_backup: "bool | None" = None, @@ -2557,7 +2551,6 @@ if TYPE_CHECKING: word_count: "int | None" passphrase_protection: "bool | None" pin_protection: "bool | None" - language: "str | None" label: "str | None" enforce_wordlist: "bool | None" type: "RecoveryDeviceType | None" @@ -2570,7 +2563,6 @@ if TYPE_CHECKING: word_count: "int | None" = None, passphrase_protection: "bool | None" = None, pin_protection: "bool | None" = None, - language: "str | None" = None, label: "str | None" = None, enforce_wordlist: "bool | None" = None, type: "RecoveryDeviceType | None" = None, diff --git a/python/src/trezorlib/messages.py b/python/src/trezorlib/messages.py index 5fc22ce7e2..b2e50c896d 100644 --- a/python/src/trezorlib/messages.py +++ b/python/src/trezorlib/messages.py @@ -3603,7 +3603,7 @@ class LoadDevice(protobuf.MessageType): 1: protobuf.Field("mnemonics", "string", repeated=True, required=False, default=None), 3: protobuf.Field("pin", "string", repeated=False, required=False, default=None), 4: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False, default=None), - 5: protobuf.Field("language", "string", repeated=False, required=False, default='en-US'), + 5: protobuf.Field("language", "string", repeated=False, required=False, default=None), 6: protobuf.Field("label", "string", repeated=False, required=False, default=None), 7: protobuf.Field("skip_checksum", "bool", repeated=False, required=False, default=None), 8: protobuf.Field("u2f_counter", "uint32", repeated=False, required=False, default=None), @@ -3617,7 +3617,7 @@ class LoadDevice(protobuf.MessageType): mnemonics: Optional[Sequence["str"]] = None, pin: Optional["str"] = None, passphrase_protection: Optional["bool"] = None, - language: Optional["str"] = 'en-US', + language: Optional["str"] = None, label: Optional["str"] = None, skip_checksum: Optional["bool"] = None, u2f_counter: Optional["int"] = None, @@ -3642,7 +3642,7 @@ class ResetDevice(protobuf.MessageType): 2: protobuf.Field("strength", "uint32", repeated=False, required=False, default=256), 3: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False, default=None), 4: protobuf.Field("pin_protection", "bool", repeated=False, required=False, default=None), - 5: protobuf.Field("language", "string", repeated=False, required=False, default='en-US'), + 5: protobuf.Field("language", "string", repeated=False, required=False, default=None), 6: protobuf.Field("label", "string", repeated=False, required=False, default=None), 7: protobuf.Field("u2f_counter", "uint32", repeated=False, required=False, default=None), 8: protobuf.Field("skip_backup", "bool", repeated=False, required=False, default=None), @@ -3657,7 +3657,7 @@ class ResetDevice(protobuf.MessageType): strength: Optional["int"] = 256, passphrase_protection: Optional["bool"] = None, pin_protection: Optional["bool"] = None, - language: Optional["str"] = 'en-US', + language: Optional["str"] = None, label: Optional["str"] = None, u2f_counter: Optional["int"] = None, skip_backup: Optional["bool"] = None, diff --git a/rust/trezor-client/src/protos/generated/messages_management.rs b/rust/trezor-client/src/protos/generated/messages_management.rs index 30347d7ca8..60184149fe 100644 --- a/rust/trezor-client/src/protos/generated/messages_management.rs +++ b/rust/trezor-client/src/protos/generated/messages_management.rs @@ -3458,6 +3458,8 @@ pub struct ChangeLanguage { // message fields // @@protoc_insertion_point(field:hw.trezor.messages.management.ChangeLanguage.data_length) pub data_length: ::std::option::Option, + // @@protoc_insertion_point(field:hw.trezor.messages.management.ChangeLanguage.show_display) + pub show_display: ::std::option::Option, // special fields // @@protoc_insertion_point(special_field:hw.trezor.messages.management.ChangeLanguage.special_fields) pub special_fields: ::protobuf::SpecialFields, @@ -3493,14 +3495,38 @@ impl ChangeLanguage { self.data_length = ::std::option::Option::Some(v); } + // optional bool show_display = 2; + + pub fn show_display(&self) -> bool { + self.show_display.unwrap_or(false) + } + + pub fn clear_show_display(&mut self) { + self.show_display = ::std::option::Option::None; + } + + pub fn has_show_display(&self) -> bool { + self.show_display.is_some() + } + + // Param is passed by value, moved + pub fn set_show_display(&mut self, v: bool) { + self.show_display = ::std::option::Option::Some(v); + } + fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { - let mut fields = ::std::vec::Vec::with_capacity(1); + let mut fields = ::std::vec::Vec::with_capacity(2); let mut oneofs = ::std::vec::Vec::with_capacity(0); fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>( "data_length", |m: &ChangeLanguage| { &m.data_length }, |m: &mut ChangeLanguage| { &mut m.data_length }, )); + fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>( + "show_display", + |m: &ChangeLanguage| { &m.show_display }, + |m: &mut ChangeLanguage| { &mut m.show_display }, + )); ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( "ChangeLanguage", fields, @@ -3525,6 +3551,9 @@ impl ::protobuf::Message for ChangeLanguage { 8 => { self.data_length = ::std::option::Option::Some(is.read_uint32()?); }, + 16 => { + self.show_display = ::std::option::Option::Some(is.read_bool()?); + }, tag => { ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; }, @@ -3540,6 +3569,9 @@ impl ::protobuf::Message for ChangeLanguage { if let Some(v) = self.data_length { my_size += ::protobuf::rt::uint32_size(1, v); } + if let Some(v) = self.show_display { + my_size += 1 + 1; + } my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); self.special_fields.cached_size().set(my_size as u32); my_size @@ -3549,6 +3581,9 @@ impl ::protobuf::Message for ChangeLanguage { if let Some(v) = self.data_length { os.write_uint32(1, v)?; } + if let Some(v) = self.show_display { + os.write_bool(2, v)?; + } os.write_unknown_fields(self.special_fields.unknown_fields())?; ::std::result::Result::Ok(()) } @@ -3567,12 +3602,14 @@ impl ::protobuf::Message for ChangeLanguage { fn clear(&mut self) { self.data_length = ::std::option::Option::None; + self.show_display = ::std::option::Option::None; self.special_fields.clear(); } fn default_instance() -> &'static ChangeLanguage { static instance: ChangeLanguage = ChangeLanguage { data_length: ::std::option::Option::None, + show_display: ::std::option::Option::None, special_fields: ::protobuf::SpecialFields::new(), }; &instance @@ -6047,7 +6084,7 @@ impl LoadDevice { pub fn language(&self) -> &str { match self.language.as_ref() { Some(v) => v, - None => "en-US", + None => "", } } @@ -6539,7 +6576,7 @@ impl ResetDevice { pub fn language(&self) -> &str { match self.language.as_ref() { Some(v) => v, - None => "en-US", + None => "", } } @@ -8921,6 +8958,8 @@ pub struct RebootToBootloader { pub boot_command: ::std::option::Option<::protobuf::EnumOrUnknown>, // @@protoc_insertion_point(field:hw.trezor.messages.management.RebootToBootloader.firmware_header) pub firmware_header: ::std::option::Option<::std::vec::Vec>, + // @@protoc_insertion_point(field:hw.trezor.messages.management.RebootToBootloader.language_data_length) + pub language_data_length: ::std::option::Option, // special fields // @@protoc_insertion_point(special_field:hw.trezor.messages.management.RebootToBootloader.special_fields) pub special_fields: ::protobuf::SpecialFields, @@ -8995,8 +9034,27 @@ impl RebootToBootloader { self.firmware_header.take().unwrap_or_else(|| ::std::vec::Vec::new()) } + // optional uint32 language_data_length = 3; + + pub fn language_data_length(&self) -> u32 { + self.language_data_length.unwrap_or(0u32) + } + + pub fn clear_language_data_length(&mut self) { + self.language_data_length = ::std::option::Option::None; + } + + pub fn has_language_data_length(&self) -> bool { + self.language_data_length.is_some() + } + + // Param is passed by value, moved + pub fn set_language_data_length(&mut self, v: u32) { + self.language_data_length = ::std::option::Option::Some(v); + } + fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { - let mut fields = ::std::vec::Vec::with_capacity(2); + let mut fields = ::std::vec::Vec::with_capacity(3); let mut oneofs = ::std::vec::Vec::with_capacity(0); fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>( "boot_command", @@ -9008,6 +9066,11 @@ impl RebootToBootloader { |m: &RebootToBootloader| { &m.firmware_header }, |m: &mut RebootToBootloader| { &mut m.firmware_header }, )); + fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>( + "language_data_length", + |m: &RebootToBootloader| { &m.language_data_length }, + |m: &mut RebootToBootloader| { &mut m.language_data_length }, + )); ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( "RebootToBootloader", fields, @@ -9032,6 +9095,9 @@ impl ::protobuf::Message for RebootToBootloader { 18 => { self.firmware_header = ::std::option::Option::Some(is.read_bytes()?); }, + 24 => { + self.language_data_length = ::std::option::Option::Some(is.read_uint32()?); + }, tag => { ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; }, @@ -9050,6 +9116,9 @@ impl ::protobuf::Message for RebootToBootloader { if let Some(v) = self.firmware_header.as_ref() { my_size += ::protobuf::rt::bytes_size(2, &v); } + if let Some(v) = self.language_data_length { + my_size += ::protobuf::rt::uint32_size(3, v); + } my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); self.special_fields.cached_size().set(my_size as u32); my_size @@ -9062,6 +9131,9 @@ impl ::protobuf::Message for RebootToBootloader { if let Some(v) = self.firmware_header.as_ref() { os.write_bytes(2, v)?; } + if let Some(v) = self.language_data_length { + os.write_uint32(3, v)?; + } os.write_unknown_fields(self.special_fields.unknown_fields())?; ::std::result::Result::Ok(()) } @@ -9081,6 +9153,7 @@ impl ::protobuf::Message for RebootToBootloader { fn clear(&mut self) { self.boot_command = ::std::option::Option::None; self.firmware_header = ::std::option::Option::None; + self.language_data_length = ::std::option::Option::None; self.special_fields.clear(); } @@ -9088,6 +9161,7 @@ impl ::protobuf::Message for RebootToBootloader { static instance: RebootToBootloader = RebootToBootloader { boot_command: ::std::option::Option::None, firmware_header: ::std::option::Option::None, + language_data_length: ::std::option::Option::None, special_fields: ::protobuf::SpecialFields::new(), }; &instance @@ -10251,92 +10325,95 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x1d\x01\x12$\n\x1aCapability_PassphraseEntry\x10\x11\x1a\x04\x80\xa6\ \x1d\x01\x12\x15\n\x11Capability_Solana\x10\x12\x1a\x04\xc8\xf3\x18\x01\ \"\x0c\n\nLockDevice\"&\n\x07SetBusy\x12\x1b\n\texpiry_ms\x18\x01\x20\ - \x01(\rR\x08expiryMs\"\x0c\n\nEndSession\"\x97\x04\n\rApplySettings\x12\ - \x1a\n\x08language\x18\x01\x20\x01(\tR\x08language\x12\x14\n\x05label\ - \x18\x02\x20\x01(\tR\x05label\x12%\n\x0euse_passphrase\x18\x03\x20\x01(\ - \x08R\rusePassphrase\x12\x1e\n\nhomescreen\x18\x04\x20\x01(\x0cR\nhomesc\ - reen\x120\n\x12_passphrase_source\x18\x05\x20\x01(\rR\x10PassphraseSourc\ - eB\x02\x18\x01\x12+\n\x12auto_lock_delay_ms\x18\x06\x20\x01(\rR\x0fautoL\ - ockDelayMs\x12)\n\x10display_rotation\x18\x07\x20\x01(\rR\x0fdisplayRota\ - tion\x12=\n\x1bpassphrase_always_on_device\x18\x08\x20\x01(\x08R\x18pass\ - phraseAlwaysOnDevice\x12T\n\rsafety_checks\x18\t\x20\x01(\x0e2/.hw.trezo\ - r.messages.management.SafetyCheckLevelR\x0csafetyChecks\x123\n\x15experi\ - mental_features\x18\n\x20\x01(\x08R\x14experimentalFeatures\x129\n\x19hi\ - de_passphrase_from_host\x18\x0b\x20\x01(\x08R\x16hidePassphraseFromHost\ - \"1\n\x0eChangeLanguage\x12\x1f\n\x0bdata_length\x18\x01\x20\x02(\rR\nda\ - taLength\"Z\n\x16TranslationDataRequest\x12\x1f\n\x0bdata_length\x18\x01\ - \x20\x02(\rR\ndataLength\x12\x1f\n\x0bdata_offset\x18\x02\x20\x02(\rR\nd\ - ataOffset\"3\n\x12TranslationDataAck\x12\x1d\n\ndata_chunk\x18\x01\x20\ - \x02(\x0cR\tdataChunk\"\"\n\nApplyFlags\x12\x14\n\x05flags\x18\x01\x20\ - \x02(\rR\x05flags\"#\n\tChangePin\x12\x16\n\x06remove\x18\x01\x20\x01(\ - \x08R\x06remove\"(\n\x0eChangeWipeCode\x12\x16\n\x06remove\x18\x01\x20\ - \x01(\x08R\x06remove\"\xaa\x01\n\tSdProtect\x12]\n\toperation\x18\x01\ - \x20\x02(\x0e2?.hw.trezor.messages.management.SdProtect.SdProtectOperati\ - onTypeR\toperation\">\n\x16SdProtectOperationType\x12\x0b\n\x07DISABLE\ - \x10\0\x12\n\n\x06ENABLE\x10\x01\x12\x0b\n\x07REFRESH\x10\x02\"O\n\x04Pi\ - ng\x12\x1a\n\x07message\x18\x01\x20\x01(\t:\0R\x07message\x12+\n\x11butt\ - on_protection\x18\x02\x20\x01(\x08R\x10buttonProtection\"\x08\n\x06Cance\ - l\"\x20\n\nGetEntropy\x12\x12\n\x04size\x18\x01\x20\x02(\rR\x04size\"#\n\ - \x07Entropy\x12\x18\n\x07entropy\x18\x01\x20\x02(\x0cR\x07entropy\"/\n\ - \x0fGetFirmwareHash\x12\x1c\n\tchallenge\x18\x01\x20\x01(\x0cR\tchalleng\ - e\"\"\n\x0cFirmwareHash\x12\x12\n\x04hash\x18\x01\x20\x02(\x0cR\x04hash\ - \"2\n\x12AuthenticateDevice\x12\x1c\n\tchallenge\x18\x01\x20\x02(\x0cR\t\ - challenge\"U\n\x11AuthenticityProof\x12\"\n\x0ccertificates\x18\x01\x20\ - \x03(\x0cR\x0ccertificates\x12\x1c\n\tsignature\x18\x02\x20\x02(\x0cR\ts\ - ignature\"\x0c\n\nWipeDevice\"\xb0\x02\n\nLoadDevice\x12\x1c\n\tmnemonic\ - s\x18\x01\x20\x03(\tR\tmnemonics\x12\x10\n\x03pin\x18\x03\x20\x01(\tR\ - \x03pin\x123\n\x15passphrase_protection\x18\x04\x20\x01(\x08R\x14passphr\ - aseProtection\x12!\n\x08language\x18\x05\x20\x01(\t:\x05en-USR\x08langua\ - ge\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12#\n\rskip_checksum\ - \x18\x07\x20\x01(\x08R\x0cskipChecksum\x12\x1f\n\x0bu2f_counter\x18\x08\ - \x20\x01(\rR\nu2fCounter\x12!\n\x0cneeds_backup\x18\t\x20\x01(\x08R\x0bn\ - eedsBackup\x12\x1b\n\tno_backup\x18\n\x20\x01(\x08R\x08noBackup\"\x9c\ - \x03\n\x0bResetDevice\x12%\n\x0edisplay_random\x18\x01\x20\x01(\x08R\rdi\ - splayRandom\x12\x1f\n\x08strength\x18\x02\x20\x01(\r:\x03256R\x08strengt\ - h\x123\n\x15passphrase_protection\x18\x03\x20\x01(\x08R\x14passphrasePro\ - tection\x12%\n\x0epin_protection\x18\x04\x20\x01(\x08R\rpinProtection\ - \x12!\n\x08language\x18\x05\x20\x01(\t:\x05en-USR\x08language\x12\x14\n\ - \x05label\x18\x06\x20\x01(\tR\x05label\x12\x1f\n\x0bu2f_counter\x18\x07\ - \x20\x01(\rR\nu2fCounter\x12\x1f\n\x0bskip_backup\x18\x08\x20\x01(\x08R\ - \nskipBackup\x12\x1b\n\tno_backup\x18\t\x20\x01(\x08R\x08noBackup\x12Q\n\ - \x0bbackup_type\x18\n\x20\x01(\x0e2).hw.trezor.messages.management.Backu\ - pType:\x05Bip39R\nbackupType\"\x0e\n\x0cBackupDevice\"\x10\n\x0eEntropyR\ - equest\"&\n\nEntropyAck\x12\x18\n\x07entropy\x18\x01\x20\x02(\x0cR\x07en\ - tropy\"\xd4\x03\n\x0eRecoveryDevice\x12\x1d\n\nword_count\x18\x01\x20\ - \x01(\rR\twordCount\x123\n\x15passphrase_protection\x18\x02\x20\x01(\x08\ - R\x14passphraseProtection\x12%\n\x0epin_protection\x18\x03\x20\x01(\x08R\ - \rpinProtection\x12\x1a\n\x08language\x18\x04\x20\x01(\tR\x08language\ - \x12\x14\n\x05label\x18\x05\x20\x01(\tR\x05label\x12)\n\x10enforce_wordl\ - ist\x18\x06\x20\x01(\x08R\x0fenforceWordlist\x12T\n\x04type\x18\x08\x20\ - \x01(\x0e2@.hw.trezor.messages.management.RecoveryDevice.RecoveryDeviceT\ - ypeR\x04type\x12\x1f\n\x0bu2f_counter\x18\t\x20\x01(\rR\nu2fCounter\x12\ - \x17\n\x07dry_run\x18\n\x20\x01(\x08R\x06dryRun\"Z\n\x12RecoveryDeviceTy\ - pe\x12%\n!RecoveryDeviceType_ScrambledWords\x10\0\x12\x1d\n\x19RecoveryD\ - eviceType_Matrix\x10\x01\"\xc5\x01\n\x0bWordRequest\x12N\n\x04type\x18\ - \x01\x20\x02(\x0e2:.hw.trezor.messages.management.WordRequest.WordReques\ - tTypeR\x04type\"f\n\x0fWordRequestType\x12\x19\n\x15WordRequestType_Plai\ - n\x10\0\x12\x1b\n\x17WordRequestType_Matrix9\x10\x01\x12\x1b\n\x17WordRe\ - questType_Matrix6\x10\x02\"\x1d\n\x07WordAck\x12\x12\n\x04word\x18\x01\ - \x20\x02(\tR\x04word\"0\n\rSetU2FCounter\x12\x1f\n\x0bu2f_counter\x18\ - \x01\x20\x02(\rR\nu2fCounter\"\x13\n\x11GetNextU2FCounter\"1\n\x0eNextU2\ - FCounter\x12\x1f\n\x0bu2f_counter\x18\x01\x20\x02(\rR\nu2fCounter\"\x11\ - \n\x0fDoPreauthorized\"\x16\n\x14PreauthorizedRequest\"\x15\n\x13CancelA\ - uthorization\"\xe5\x01\n\x12RebootToBootloader\x12o\n\x0cboot_command\ - \x18\x01\x20\x01(\x0e2=.hw.trezor.messages.management.RebootToBootloader\ - .BootCommand:\rSTOP_AND_WAITR\x0bbootCommand\x12'\n\x0ffirmware_header\ - \x18\x02\x20\x01(\x0cR\x0efirmwareHeader\"5\n\x0bBootCommand\x12\x11\n\r\ - STOP_AND_WAIT\x10\0\x12\x13\n\x0fINSTALL_UPGRADE\x10\x01\"\x10\n\x08GetN\ - once:\x04\x88\xb2\x19\x01\"#\n\x05Nonce\x12\x14\n\x05nonce\x18\x01\x20\ - \x02(\x0cR\x05nonce:\x04\x88\xb2\x19\x01\";\n\nUnlockPath\x12\x1b\n\tadd\ - ress_n\x18\x01\x20\x03(\rR\x08addressN\x12\x10\n\x03mac\x18\x02\x20\x01(\ - \x0cR\x03mac\"'\n\x13UnlockedPathRequest\x12\x10\n\x03mac\x18\x01\x20\ - \x01(\x0cR\x03mac\"\x14\n\x12ShowDeviceTutorial\"\x12\n\x10UnlockBootloa\ - der*>\n\nBackupType\x12\t\n\x05Bip39\x10\0\x12\x10\n\x0cSlip39_Basic\x10\ - \x01\x12\x13\n\x0fSlip39_Advanced\x10\x02*G\n\x10SafetyCheckLevel\x12\n\ - \n\x06Strict\x10\0\x12\x10\n\x0cPromptAlways\x10\x01\x12\x15\n\x11Prompt\ - Temporarily\x10\x02*0\n\x10HomescreenFormat\x12\x08\n\x04Toif\x10\x01\ - \x12\x08\n\x04Jpeg\x10\x02\x12\x08\n\x04ToiG\x10\x03BB\n#com.satoshilabs\ - .trezor.lib.protobufB\x17TrezorMessageManagement\x80\xa6\x1d\x01\ + \x01(\rR\x08expiryMs\"\x0c\n\nEndSession\"\x9b\x04\n\rApplySettings\x12\ + \x1e\n\x08language\x18\x01\x20\x01(\tR\x08languageB\x02\x18\x01\x12\x14\ + \n\x05label\x18\x02\x20\x01(\tR\x05label\x12%\n\x0euse_passphrase\x18\ + \x03\x20\x01(\x08R\rusePassphrase\x12\x1e\n\nhomescreen\x18\x04\x20\x01(\ + \x0cR\nhomescreen\x120\n\x12_passphrase_source\x18\x05\x20\x01(\rR\x10Pa\ + ssphraseSourceB\x02\x18\x01\x12+\n\x12auto_lock_delay_ms\x18\x06\x20\x01\ + (\rR\x0fautoLockDelayMs\x12)\n\x10display_rotation\x18\x07\x20\x01(\rR\ + \x0fdisplayRotation\x12=\n\x1bpassphrase_always_on_device\x18\x08\x20\ + \x01(\x08R\x18passphraseAlwaysOnDevice\x12T\n\rsafety_checks\x18\t\x20\ + \x01(\x0e2/.hw.trezor.messages.management.SafetyCheckLevelR\x0csafetyChe\ + cks\x123\n\x15experimental_features\x18\n\x20\x01(\x08R\x14experimentalF\ + eatures\x129\n\x19hide_passphrase_from_host\x18\x0b\x20\x01(\x08R\x16hid\ + ePassphraseFromHost\"T\n\x0eChangeLanguage\x12\x1f\n\x0bdata_length\x18\ + \x01\x20\x02(\rR\ndataLength\x12!\n\x0cshow_display\x18\x02\x20\x01(\x08\ + R\x0bshowDisplay\"Z\n\x16TranslationDataRequest\x12\x1f\n\x0bdata_length\ + \x18\x01\x20\x02(\rR\ndataLength\x12\x1f\n\x0bdata_offset\x18\x02\x20\ + \x02(\rR\ndataOffset\"3\n\x12TranslationDataAck\x12\x1d\n\ndata_chunk\ + \x18\x01\x20\x02(\x0cR\tdataChunk\"\"\n\nApplyFlags\x12\x14\n\x05flags\ + \x18\x01\x20\x02(\rR\x05flags\"#\n\tChangePin\x12\x16\n\x06remove\x18\ + \x01\x20\x01(\x08R\x06remove\"(\n\x0eChangeWipeCode\x12\x16\n\x06remove\ + \x18\x01\x20\x01(\x08R\x06remove\"\xaa\x01\n\tSdProtect\x12]\n\toperatio\ + n\x18\x01\x20\x02(\x0e2?.hw.trezor.messages.management.SdProtect.SdProte\ + ctOperationTypeR\toperation\">\n\x16SdProtectOperationType\x12\x0b\n\x07\ + DISABLE\x10\0\x12\n\n\x06ENABLE\x10\x01\x12\x0b\n\x07REFRESH\x10\x02\"O\ + \n\x04Ping\x12\x1a\n\x07message\x18\x01\x20\x01(\t:\0R\x07message\x12+\n\ + \x11button_protection\x18\x02\x20\x01(\x08R\x10buttonProtection\"\x08\n\ + \x06Cancel\"\x20\n\nGetEntropy\x12\x12\n\x04size\x18\x01\x20\x02(\rR\x04\ + size\"#\n\x07Entropy\x12\x18\n\x07entropy\x18\x01\x20\x02(\x0cR\x07entro\ + py\"/\n\x0fGetFirmwareHash\x12\x1c\n\tchallenge\x18\x01\x20\x01(\x0cR\tc\ + hallenge\"\"\n\x0cFirmwareHash\x12\x12\n\x04hash\x18\x01\x20\x02(\x0cR\ + \x04hash\"2\n\x12AuthenticateDevice\x12\x1c\n\tchallenge\x18\x01\x20\x02\ + (\x0cR\tchallenge\"U\n\x11AuthenticityProof\x12\"\n\x0ccertificates\x18\ + \x01\x20\x03(\x0cR\x0ccertificates\x12\x1c\n\tsignature\x18\x02\x20\x02(\ + \x0cR\tsignature\"\x0c\n\nWipeDevice\"\xad\x02\n\nLoadDevice\x12\x1c\n\t\ + mnemonics\x18\x01\x20\x03(\tR\tmnemonics\x12\x10\n\x03pin\x18\x03\x20\ + \x01(\tR\x03pin\x123\n\x15passphrase_protection\x18\x04\x20\x01(\x08R\ + \x14passphraseProtection\x12\x1e\n\x08language\x18\x05\x20\x01(\tR\x08la\ + nguageB\x02\x18\x01\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12#\ + \n\rskip_checksum\x18\x07\x20\x01(\x08R\x0cskipChecksum\x12\x1f\n\x0bu2f\ + _counter\x18\x08\x20\x01(\rR\nu2fCounter\x12!\n\x0cneeds_backup\x18\t\ + \x20\x01(\x08R\x0bneedsBackup\x12\x1b\n\tno_backup\x18\n\x20\x01(\x08R\ + \x08noBackup\"\x99\x03\n\x0bResetDevice\x12%\n\x0edisplay_random\x18\x01\ + \x20\x01(\x08R\rdisplayRandom\x12\x1f\n\x08strength\x18\x02\x20\x01(\r:\ + \x03256R\x08strength\x123\n\x15passphrase_protection\x18\x03\x20\x01(\ + \x08R\x14passphraseProtection\x12%\n\x0epin_protection\x18\x04\x20\x01(\ + \x08R\rpinProtection\x12\x1e\n\x08language\x18\x05\x20\x01(\tR\x08langua\ + geB\x02\x18\x01\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12\x1f\ + \n\x0bu2f_counter\x18\x07\x20\x01(\rR\nu2fCounter\x12\x1f\n\x0bskip_back\ + up\x18\x08\x20\x01(\x08R\nskipBackup\x12\x1b\n\tno_backup\x18\t\x20\x01(\ + \x08R\x08noBackup\x12Q\n\x0bbackup_type\x18\n\x20\x01(\x0e2).hw.trezor.m\ + essages.management.BackupType:\x05Bip39R\nbackupType\"\x0e\n\x0cBackupDe\ + vice\"\x10\n\x0eEntropyRequest\"&\n\nEntropyAck\x12\x18\n\x07entropy\x18\ + \x01\x20\x02(\x0cR\x07entropy\"\xd8\x03\n\x0eRecoveryDevice\x12\x1d\n\nw\ + ord_count\x18\x01\x20\x01(\rR\twordCount\x123\n\x15passphrase_protection\ + \x18\x02\x20\x01(\x08R\x14passphraseProtection\x12%\n\x0epin_protection\ + \x18\x03\x20\x01(\x08R\rpinProtection\x12\x1e\n\x08language\x18\x04\x20\ + \x01(\tR\x08languageB\x02\x18\x01\x12\x14\n\x05label\x18\x05\x20\x01(\tR\ + \x05label\x12)\n\x10enforce_wordlist\x18\x06\x20\x01(\x08R\x0fenforceWor\ + dlist\x12T\n\x04type\x18\x08\x20\x01(\x0e2@.hw.trezor.messages.managemen\ + t.RecoveryDevice.RecoveryDeviceTypeR\x04type\x12\x1f\n\x0bu2f_counter\ + \x18\t\x20\x01(\rR\nu2fCounter\x12\x17\n\x07dry_run\x18\n\x20\x01(\x08R\ + \x06dryRun\"Z\n\x12RecoveryDeviceType\x12%\n!RecoveryDeviceType_Scramble\ + dWords\x10\0\x12\x1d\n\x19RecoveryDeviceType_Matrix\x10\x01\"\xc5\x01\n\ + \x0bWordRequest\x12N\n\x04type\x18\x01\x20\x02(\x0e2:.hw.trezor.messages\ + .management.WordRequest.WordRequestTypeR\x04type\"f\n\x0fWordRequestType\ + \x12\x19\n\x15WordRequestType_Plain\x10\0\x12\x1b\n\x17WordRequestType_M\ + atrix9\x10\x01\x12\x1b\n\x17WordRequestType_Matrix6\x10\x02\"\x1d\n\x07W\ + ordAck\x12\x12\n\x04word\x18\x01\x20\x02(\tR\x04word\"0\n\rSetU2FCounter\ + \x12\x1f\n\x0bu2f_counter\x18\x01\x20\x02(\rR\nu2fCounter\"\x13\n\x11Get\ + NextU2FCounter\"1\n\x0eNextU2FCounter\x12\x1f\n\x0bu2f_counter\x18\x01\ + \x20\x02(\rR\nu2fCounter\"\x11\n\x0fDoPreauthorized\"\x16\n\x14Preauthor\ + izedRequest\"\x15\n\x13CancelAuthorization\"\x9a\x02\n\x12RebootToBootlo\ + ader\x12o\n\x0cboot_command\x18\x01\x20\x01(\x0e2=.hw.trezor.messages.ma\ + nagement.RebootToBootloader.BootCommand:\rSTOP_AND_WAITR\x0bbootCommand\ + \x12'\n\x0ffirmware_header\x18\x02\x20\x01(\x0cR\x0efirmwareHeader\x123\ + \n\x14language_data_length\x18\x03\x20\x01(\r:\x010R\x12languageDataLeng\ + th\"5\n\x0bBootCommand\x12\x11\n\rSTOP_AND_WAIT\x10\0\x12\x13\n\x0fINSTA\ + LL_UPGRADE\x10\x01\"\x10\n\x08GetNonce:\x04\x88\xb2\x19\x01\"#\n\x05Nonc\ + e\x12\x14\n\x05nonce\x18\x01\x20\x02(\x0cR\x05nonce:\x04\x88\xb2\x19\x01\ + \";\n\nUnlockPath\x12\x1b\n\taddress_n\x18\x01\x20\x03(\rR\x08addressN\ + \x12\x10\n\x03mac\x18\x02\x20\x01(\x0cR\x03mac\"'\n\x13UnlockedPathReque\ + st\x12\x10\n\x03mac\x18\x01\x20\x01(\x0cR\x03mac\"\x14\n\x12ShowDeviceTu\ + torial\"\x12\n\x10UnlockBootloader*>\n\nBackupType\x12\t\n\x05Bip39\x10\ + \0\x12\x10\n\x0cSlip39_Basic\x10\x01\x12\x13\n\x0fSlip39_Advanced\x10\ + \x02*G\n\x10SafetyCheckLevel\x12\n\n\x06Strict\x10\0\x12\x10\n\x0cPrompt\ + Always\x10\x01\x12\x15\n\x11PromptTemporarily\x10\x02*0\n\x10HomescreenF\ + ormat\x12\x08\n\x04Toif\x10\x01\x12\x08\n\x04Jpeg\x10\x02\x12\x08\n\x04T\ + oiG\x10\x03BB\n#com.satoshilabs.trezor.lib.protobufB\x17TrezorMessageMan\ + agement\x80\xa6\x1d\x01\ "; /// `FileDescriptorProto` object which was a source for this generated file