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

chore(common): deprecate language fields in ApplySettings, ResetDevice, RecoveryDevice

This commit is contained in:
matejcik 2024-01-31 12:28:39 +01:00 committed by Jiří Musil
parent b8ea21d24a
commit 055662ea27
4 changed files with 175 additions and 106 deletions

View File

@ -167,7 +167,7 @@ message EndSession {
* @next Failure * @next Failure
*/ */
message ApplySettings { message ApplySettings {
optional string language = 1; optional string language = 1 [deprecated=true];
optional string label = 2; optional string label = 2;
optional bool use_passphrase = 3; optional bool use_passphrase = 3;
optional bytes homescreen = 4; 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) 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 string pin = 3; // set PIN protection
optional bool passphrase_protection = 4; // enable master node encryption using passphrase 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 string label = 6; // device label
optional bool skip_checksum = 7; // do not test mnemonic for valid BIP-39 checksum optional bool skip_checksum = 7; // do not test mnemonic for valid BIP-39 checksum
optional uint32 u2f_counter = 8; // U2F counter 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 uint32 strength = 2 [default=256]; // strength of seed in bits
optional bool passphrase_protection = 3; // enable master node encryption using passphrase optional bool passphrase_protection = 3; // enable master node encryption using passphrase
optional bool pin_protection = 4; // enable PIN protection 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 string label = 6; // device label
optional uint32 u2f_counter = 7; // U2F counter optional uint32 u2f_counter = 7; // U2F counter
optional bool skip_backup = 8; // postpone seed backup to BackupDevice workflow 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 uint32 word_count = 1; // number of words in BIP-39 mnemonic
optional bool passphrase_protection = 2; // enable master node encryption using passphrase optional bool passphrase_protection = 2; // enable master node encryption using passphrase
optional bool pin_protection = 3; // enable PIN protection 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 string label = 5; // device label
optional bool enforce_wordlist = 6; // enforce BIP-39 wordlist during the process optional bool enforce_wordlist = 6; // enforce BIP-39 wordlist during the process
// 7 reserved for unused recovery method // 7 reserved for unused recovery method

View File

@ -2218,7 +2218,6 @@ if TYPE_CHECKING:
return isinstance(msg, cls) return isinstance(msg, cls)
class ApplySettings(protobuf.MessageType): class ApplySettings(protobuf.MessageType):
language: "str | None"
label: "str | None" label: "str | None"
use_passphrase: "bool | None" use_passphrase: "bool | None"
homescreen: "bytes | None" homescreen: "bytes | None"
@ -2232,7 +2231,6 @@ if TYPE_CHECKING:
def __init__( def __init__(
self, self,
*, *,
language: "str | None" = None,
label: "str | None" = None, label: "str | None" = None,
use_passphrase: "bool | None" = None, use_passphrase: "bool | None" = None,
homescreen: "bytes | None" = None, homescreen: "bytes | None" = None,
@ -2469,7 +2467,6 @@ if TYPE_CHECKING:
mnemonics: "list[str]" mnemonics: "list[str]"
pin: "str | None" pin: "str | None"
passphrase_protection: "bool | None" passphrase_protection: "bool | None"
language: "str"
label: "str | None" label: "str | None"
skip_checksum: "bool | None" skip_checksum: "bool | None"
u2f_counter: "int | None" u2f_counter: "int | None"
@ -2482,7 +2479,6 @@ if TYPE_CHECKING:
mnemonics: "list[str] | None" = None, mnemonics: "list[str] | None" = None,
pin: "str | None" = None, pin: "str | None" = None,
passphrase_protection: "bool | None" = None, passphrase_protection: "bool | None" = None,
language: "str | None" = None,
label: "str | None" = None, label: "str | None" = None,
skip_checksum: "bool | None" = None, skip_checksum: "bool | None" = None,
u2f_counter: "int | None" = None, u2f_counter: "int | None" = None,
@ -2500,7 +2496,6 @@ if TYPE_CHECKING:
strength: "int" strength: "int"
passphrase_protection: "bool | None" passphrase_protection: "bool | None"
pin_protection: "bool | None" pin_protection: "bool | None"
language: "str"
label: "str | None" label: "str | None"
u2f_counter: "int | None" u2f_counter: "int | None"
skip_backup: "bool | None" skip_backup: "bool | None"
@ -2514,7 +2509,6 @@ if TYPE_CHECKING:
strength: "int | None" = None, strength: "int | None" = None,
passphrase_protection: "bool | None" = None, passphrase_protection: "bool | None" = None,
pin_protection: "bool | None" = None, pin_protection: "bool | None" = None,
language: "str | None" = None,
label: "str | None" = None, label: "str | None" = None,
u2f_counter: "int | None" = None, u2f_counter: "int | None" = None,
skip_backup: "bool | None" = None, skip_backup: "bool | None" = None,
@ -2557,7 +2551,6 @@ if TYPE_CHECKING:
word_count: "int | None" word_count: "int | None"
passphrase_protection: "bool | None" passphrase_protection: "bool | None"
pin_protection: "bool | None" pin_protection: "bool | None"
language: "str | None"
label: "str | None" label: "str | None"
enforce_wordlist: "bool | None" enforce_wordlist: "bool | None"
type: "RecoveryDeviceType | None" type: "RecoveryDeviceType | None"
@ -2570,7 +2563,6 @@ if TYPE_CHECKING:
word_count: "int | None" = None, word_count: "int | None" = None,
passphrase_protection: "bool | None" = None, passphrase_protection: "bool | None" = None,
pin_protection: "bool | None" = None, pin_protection: "bool | None" = None,
language: "str | None" = None,
label: "str | None" = None, label: "str | None" = None,
enforce_wordlist: "bool | None" = None, enforce_wordlist: "bool | None" = None,
type: "RecoveryDeviceType | None" = None, type: "RecoveryDeviceType | None" = None,

View File

@ -3603,7 +3603,7 @@ class LoadDevice(protobuf.MessageType):
1: protobuf.Field("mnemonics", "string", repeated=True, required=False, default=None), 1: protobuf.Field("mnemonics", "string", repeated=True, required=False, default=None),
3: protobuf.Field("pin", "string", repeated=False, 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), 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), 6: protobuf.Field("label", "string", repeated=False, required=False, default=None),
7: protobuf.Field("skip_checksum", "bool", 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), 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, mnemonics: Optional[Sequence["str"]] = None,
pin: Optional["str"] = None, pin: Optional["str"] = None,
passphrase_protection: Optional["bool"] = None, passphrase_protection: Optional["bool"] = None,
language: Optional["str"] = 'en-US', language: Optional["str"] = None,
label: Optional["str"] = None, label: Optional["str"] = None,
skip_checksum: Optional["bool"] = None, skip_checksum: Optional["bool"] = None,
u2f_counter: Optional["int"] = 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), 2: protobuf.Field("strength", "uint32", repeated=False, required=False, default=256),
3: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False, default=None), 3: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False, default=None),
4: protobuf.Field("pin_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), 6: protobuf.Field("label", "string", repeated=False, required=False, default=None),
7: protobuf.Field("u2f_counter", "uint32", 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), 8: protobuf.Field("skip_backup", "bool", repeated=False, required=False, default=None),
@ -3657,7 +3657,7 @@ class ResetDevice(protobuf.MessageType):
strength: Optional["int"] = 256, strength: Optional["int"] = 256,
passphrase_protection: Optional["bool"] = None, passphrase_protection: Optional["bool"] = None,
pin_protection: Optional["bool"] = None, pin_protection: Optional["bool"] = None,
language: Optional["str"] = 'en-US', language: Optional["str"] = None,
label: Optional["str"] = None, label: Optional["str"] = None,
u2f_counter: Optional["int"] = None, u2f_counter: Optional["int"] = None,
skip_backup: Optional["bool"] = None, skip_backup: Optional["bool"] = None,

View File

@ -3458,6 +3458,8 @@ pub struct ChangeLanguage {
// message fields // message fields
// @@protoc_insertion_point(field:hw.trezor.messages.management.ChangeLanguage.data_length) // @@protoc_insertion_point(field:hw.trezor.messages.management.ChangeLanguage.data_length)
pub data_length: ::std::option::Option<u32>, pub data_length: ::std::option::Option<u32>,
// @@protoc_insertion_point(field:hw.trezor.messages.management.ChangeLanguage.show_display)
pub show_display: ::std::option::Option<bool>,
// special fields // special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.management.ChangeLanguage.special_fields) // @@protoc_insertion_point(special_field:hw.trezor.messages.management.ChangeLanguage.special_fields)
pub special_fields: ::protobuf::SpecialFields, pub special_fields: ::protobuf::SpecialFields,
@ -3493,14 +3495,38 @@ impl ChangeLanguage {
self.data_length = ::std::option::Option::Some(v); 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 { 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); 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::<_, _>(
"data_length", "data_length",
|m: &ChangeLanguage| { &m.data_length }, |m: &ChangeLanguage| { &m.data_length },
|m: &mut ChangeLanguage| { &mut 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>( ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ChangeLanguage>(
"ChangeLanguage", "ChangeLanguage",
fields, fields,
@ -3525,6 +3551,9 @@ impl ::protobuf::Message for ChangeLanguage {
8 => { 8 => {
self.data_length = ::std::option::Option::Some(is.read_uint32()?); self.data_length = ::std::option::Option::Some(is.read_uint32()?);
}, },
16 => {
self.show_display = ::std::option::Option::Some(is.read_bool()?);
},
tag => { tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; ::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 { if let Some(v) = self.data_length {
my_size += ::protobuf::rt::uint32_size(1, v); 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()); my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32); self.special_fields.cached_size().set(my_size as u32);
my_size my_size
@ -3549,6 +3581,9 @@ impl ::protobuf::Message for ChangeLanguage {
if let Some(v) = self.data_length { if let Some(v) = self.data_length {
os.write_uint32(1, v)?; 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())?; os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(()) ::std::result::Result::Ok(())
} }
@ -3567,12 +3602,14 @@ impl ::protobuf::Message for ChangeLanguage {
fn clear(&mut self) { fn clear(&mut self) {
self.data_length = ::std::option::Option::None; self.data_length = ::std::option::Option::None;
self.show_display = ::std::option::Option::None;
self.special_fields.clear(); self.special_fields.clear();
} }
fn default_instance() -> &'static ChangeLanguage { fn default_instance() -> &'static ChangeLanguage {
static instance: ChangeLanguage = ChangeLanguage { static instance: ChangeLanguage = ChangeLanguage {
data_length: ::std::option::Option::None, data_length: ::std::option::Option::None,
show_display: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(), special_fields: ::protobuf::SpecialFields::new(),
}; };
&instance &instance
@ -6047,7 +6084,7 @@ impl LoadDevice {
pub fn language(&self) -> &str { pub fn language(&self) -> &str {
match self.language.as_ref() { match self.language.as_ref() {
Some(v) => v, Some(v) => v,
None => "en-US", None => "",
} }
} }
@ -6539,7 +6576,7 @@ impl ResetDevice {
pub fn language(&self) -> &str { pub fn language(&self) -> &str {
match self.language.as_ref() { match self.language.as_ref() {
Some(v) => v, Some(v) => v,
None => "en-US", None => "",
} }
} }
@ -8921,6 +8958,8 @@ pub struct RebootToBootloader {
pub boot_command: ::std::option::Option<::protobuf::EnumOrUnknown<reboot_to_bootloader::BootCommand>>, pub boot_command: ::std::option::Option<::protobuf::EnumOrUnknown<reboot_to_bootloader::BootCommand>>,
// @@protoc_insertion_point(field:hw.trezor.messages.management.RebootToBootloader.firmware_header) // @@protoc_insertion_point(field:hw.trezor.messages.management.RebootToBootloader.firmware_header)
pub firmware_header: ::std::option::Option<::std::vec::Vec<u8>>, pub firmware_header: ::std::option::Option<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.management.RebootToBootloader.language_data_length)
pub language_data_length: ::std::option::Option<u32>,
// special fields // special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.management.RebootToBootloader.special_fields) // @@protoc_insertion_point(special_field:hw.trezor.messages.management.RebootToBootloader.special_fields)
pub special_fields: ::protobuf::SpecialFields, pub special_fields: ::protobuf::SpecialFields,
@ -8995,8 +9034,27 @@ impl RebootToBootloader {
self.firmware_header.take().unwrap_or_else(|| ::std::vec::Vec::new()) 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 { 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); 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::<_, _>(
"boot_command", "boot_command",
@ -9008,6 +9066,11 @@ impl RebootToBootloader {
|m: &RebootToBootloader| { &m.firmware_header }, |m: &RebootToBootloader| { &m.firmware_header },
|m: &mut RebootToBootloader| { &mut 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>( ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<RebootToBootloader>(
"RebootToBootloader", "RebootToBootloader",
fields, fields,
@ -9032,6 +9095,9 @@ impl ::protobuf::Message for RebootToBootloader {
18 => { 18 => {
self.firmware_header = ::std::option::Option::Some(is.read_bytes()?); self.firmware_header = ::std::option::Option::Some(is.read_bytes()?);
}, },
24 => {
self.language_data_length = ::std::option::Option::Some(is.read_uint32()?);
},
tag => { tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; ::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() { if let Some(v) = self.firmware_header.as_ref() {
my_size += ::protobuf::rt::bytes_size(2, &v); 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()); my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32); self.special_fields.cached_size().set(my_size as u32);
my_size my_size
@ -9062,6 +9131,9 @@ impl ::protobuf::Message for RebootToBootloader {
if let Some(v) = self.firmware_header.as_ref() { if let Some(v) = self.firmware_header.as_ref() {
os.write_bytes(2, v)?; 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())?; os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(()) ::std::result::Result::Ok(())
} }
@ -9081,6 +9153,7 @@ impl ::protobuf::Message for RebootToBootloader {
fn clear(&mut self) { fn clear(&mut self) {
self.boot_command = ::std::option::Option::None; self.boot_command = ::std::option::Option::None;
self.firmware_header = ::std::option::Option::None; self.firmware_header = ::std::option::Option::None;
self.language_data_length = ::std::option::Option::None;
self.special_fields.clear(); self.special_fields.clear();
} }
@ -9088,6 +9161,7 @@ impl ::protobuf::Message for RebootToBootloader {
static instance: RebootToBootloader = RebootToBootloader { static instance: RebootToBootloader = RebootToBootloader {
boot_command: ::std::option::Option::None, boot_command: ::std::option::Option::None,
firmware_header: ::std::option::Option::None, firmware_header: ::std::option::Option::None,
language_data_length: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(), special_fields: ::protobuf::SpecialFields::new(),
}; };
&instance &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$\n\x1aCapability_PassphraseEntry\x10\x11\x1a\x04\x80\xa6\
\x1d\x01\x12\x15\n\x11Capability_Solana\x10\x12\x1a\x04\xc8\xf3\x18\x01\ \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\ \"\x0c\n\nLockDevice\"&\n\x07SetBusy\x12\x1b\n\texpiry_ms\x18\x01\x20\
\x01(\rR\x08expiryMs\"\x0c\n\nEndSession\"\x97\x04\n\rApplySettings\x12\ \x01(\rR\x08expiryMs\"\x0c\n\nEndSession\"\x9b\x04\n\rApplySettings\x12\
\x1a\n\x08language\x18\x01\x20\x01(\tR\x08language\x12\x14\n\x05label\ \x1e\n\x08language\x18\x01\x20\x01(\tR\x08languageB\x02\x18\x01\x12\x14\
\x18\x02\x20\x01(\tR\x05label\x12%\n\x0euse_passphrase\x18\x03\x20\x01(\ \n\x05label\x18\x02\x20\x01(\tR\x05label\x12%\n\x0euse_passphrase\x18\
\x08R\rusePassphrase\x12\x1e\n\nhomescreen\x18\x04\x20\x01(\x0cR\nhomesc\ \x03\x20\x01(\x08R\rusePassphrase\x12\x1e\n\nhomescreen\x18\x04\x20\x01(\
reen\x120\n\x12_passphrase_source\x18\x05\x20\x01(\rR\x10PassphraseSourc\ \x0cR\nhomescreen\x120\n\x12_passphrase_source\x18\x05\x20\x01(\rR\x10Pa\
eB\x02\x18\x01\x12+\n\x12auto_lock_delay_ms\x18\x06\x20\x01(\rR\x0fautoL\ ssphraseSourceB\x02\x18\x01\x12+\n\x12auto_lock_delay_ms\x18\x06\x20\x01\
ockDelayMs\x12)\n\x10display_rotation\x18\x07\x20\x01(\rR\x0fdisplayRota\ (\rR\x0fautoLockDelayMs\x12)\n\x10display_rotation\x18\x07\x20\x01(\rR\
tion\x12=\n\x1bpassphrase_always_on_device\x18\x08\x20\x01(\x08R\x18pass\ \x0fdisplayRotation\x12=\n\x1bpassphrase_always_on_device\x18\x08\x20\
phraseAlwaysOnDevice\x12T\n\rsafety_checks\x18\t\x20\x01(\x0e2/.hw.trezo\ \x01(\x08R\x18passphraseAlwaysOnDevice\x12T\n\rsafety_checks\x18\t\x20\
r.messages.management.SafetyCheckLevelR\x0csafetyChecks\x123\n\x15experi\ \x01(\x0e2/.hw.trezor.messages.management.SafetyCheckLevelR\x0csafetyChe\
mental_features\x18\n\x20\x01(\x08R\x14experimentalFeatures\x129\n\x19hi\ cks\x123\n\x15experimental_features\x18\n\x20\x01(\x08R\x14experimentalF\
de_passphrase_from_host\x18\x0b\x20\x01(\x08R\x16hidePassphraseFromHost\ eatures\x129\n\x19hide_passphrase_from_host\x18\x0b\x20\x01(\x08R\x16hid\
\"1\n\x0eChangeLanguage\x12\x1f\n\x0bdata_length\x18\x01\x20\x02(\rR\nda\ ePassphraseFromHost\"T\n\x0eChangeLanguage\x12\x1f\n\x0bdata_length\x18\
taLength\"Z\n\x16TranslationDataRequest\x12\x1f\n\x0bdata_length\x18\x01\ \x01\x20\x02(\rR\ndataLength\x12!\n\x0cshow_display\x18\x02\x20\x01(\x08\
\x20\x02(\rR\ndataLength\x12\x1f\n\x0bdata_offset\x18\x02\x20\x02(\rR\nd\ R\x0bshowDisplay\"Z\n\x16TranslationDataRequest\x12\x1f\n\x0bdata_length\
ataOffset\"3\n\x12TranslationDataAck\x12\x1d\n\ndata_chunk\x18\x01\x20\ \x18\x01\x20\x02(\rR\ndataLength\x12\x1f\n\x0bdata_offset\x18\x02\x20\
\x02(\x0cR\tdataChunk\"\"\n\nApplyFlags\x12\x14\n\x05flags\x18\x01\x20\ \x02(\rR\ndataOffset\"3\n\x12TranslationDataAck\x12\x1d\n\ndata_chunk\
\x02(\rR\x05flags\"#\n\tChangePin\x12\x16\n\x06remove\x18\x01\x20\x01(\ \x18\x01\x20\x02(\x0cR\tdataChunk\"\"\n\nApplyFlags\x12\x14\n\x05flags\
\x08R\x06remove\"(\n\x0eChangeWipeCode\x12\x16\n\x06remove\x18\x01\x20\ \x18\x01\x20\x02(\rR\x05flags\"#\n\tChangePin\x12\x16\n\x06remove\x18\
\x01(\x08R\x06remove\"\xaa\x01\n\tSdProtect\x12]\n\toperation\x18\x01\ \x01\x20\x01(\x08R\x06remove\"(\n\x0eChangeWipeCode\x12\x16\n\x06remove\
\x20\x02(\x0e2?.hw.trezor.messages.management.SdProtect.SdProtectOperati\ \x18\x01\x20\x01(\x08R\x06remove\"\xaa\x01\n\tSdProtect\x12]\n\toperatio\
onTypeR\toperation\">\n\x16SdProtectOperationType\x12\x0b\n\x07DISABLE\ n\x18\x01\x20\x02(\x0e2?.hw.trezor.messages.management.SdProtect.SdProte\
\x10\0\x12\n\n\x06ENABLE\x10\x01\x12\x0b\n\x07REFRESH\x10\x02\"O\n\x04Pi\ ctOperationTypeR\toperation\">\n\x16SdProtectOperationType\x12\x0b\n\x07\
ng\x12\x1a\n\x07message\x18\x01\x20\x01(\t:\0R\x07message\x12+\n\x11butt\ DISABLE\x10\0\x12\n\n\x06ENABLE\x10\x01\x12\x0b\n\x07REFRESH\x10\x02\"O\
on_protection\x18\x02\x20\x01(\x08R\x10buttonProtection\"\x08\n\x06Cance\ \n\x04Ping\x12\x1a\n\x07message\x18\x01\x20\x01(\t:\0R\x07message\x12+\n\
l\"\x20\n\nGetEntropy\x12\x12\n\x04size\x18\x01\x20\x02(\rR\x04size\"#\n\ \x11button_protection\x18\x02\x20\x01(\x08R\x10buttonProtection\"\x08\n\
\x07Entropy\x12\x18\n\x07entropy\x18\x01\x20\x02(\x0cR\x07entropy\"/\n\ \x06Cancel\"\x20\n\nGetEntropy\x12\x12\n\x04size\x18\x01\x20\x02(\rR\x04\
\x0fGetFirmwareHash\x12\x1c\n\tchallenge\x18\x01\x20\x01(\x0cR\tchalleng\ size\"#\n\x07Entropy\x12\x18\n\x07entropy\x18\x01\x20\x02(\x0cR\x07entro\
e\"\"\n\x0cFirmwareHash\x12\x12\n\x04hash\x18\x01\x20\x02(\x0cR\x04hash\ py\"/\n\x0fGetFirmwareHash\x12\x1c\n\tchallenge\x18\x01\x20\x01(\x0cR\tc\
\"2\n\x12AuthenticateDevice\x12\x1c\n\tchallenge\x18\x01\x20\x02(\x0cR\t\ hallenge\"\"\n\x0cFirmwareHash\x12\x12\n\x04hash\x18\x01\x20\x02(\x0cR\
challenge\"U\n\x11AuthenticityProof\x12\"\n\x0ccertificates\x18\x01\x20\ \x04hash\"2\n\x12AuthenticateDevice\x12\x1c\n\tchallenge\x18\x01\x20\x02\
\x03(\x0cR\x0ccertificates\x12\x1c\n\tsignature\x18\x02\x20\x02(\x0cR\ts\ (\x0cR\tchallenge\"U\n\x11AuthenticityProof\x12\"\n\x0ccertificates\x18\
ignature\"\x0c\n\nWipeDevice\"\xb0\x02\n\nLoadDevice\x12\x1c\n\tmnemonic\ \x01\x20\x03(\x0cR\x0ccertificates\x12\x1c\n\tsignature\x18\x02\x20\x02(\
s\x18\x01\x20\x03(\tR\tmnemonics\x12\x10\n\x03pin\x18\x03\x20\x01(\tR\ \x0cR\tsignature\"\x0c\n\nWipeDevice\"\xad\x02\n\nLoadDevice\x12\x1c\n\t\
\x03pin\x123\n\x15passphrase_protection\x18\x04\x20\x01(\x08R\x14passphr\ mnemonics\x18\x01\x20\x03(\tR\tmnemonics\x12\x10\n\x03pin\x18\x03\x20\
aseProtection\x12!\n\x08language\x18\x05\x20\x01(\t:\x05en-USR\x08langua\ \x01(\tR\x03pin\x123\n\x15passphrase_protection\x18\x04\x20\x01(\x08R\
ge\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12#\n\rskip_checksum\ \x14passphraseProtection\x12\x1e\n\x08language\x18\x05\x20\x01(\tR\x08la\
\x18\x07\x20\x01(\x08R\x0cskipChecksum\x12\x1f\n\x0bu2f_counter\x18\x08\ nguageB\x02\x18\x01\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12#\
\x20\x01(\rR\nu2fCounter\x12!\n\x0cneeds_backup\x18\t\x20\x01(\x08R\x0bn\ \n\rskip_checksum\x18\x07\x20\x01(\x08R\x0cskipChecksum\x12\x1f\n\x0bu2f\
eedsBackup\x12\x1b\n\tno_backup\x18\n\x20\x01(\x08R\x08noBackup\"\x9c\ _counter\x18\x08\x20\x01(\rR\nu2fCounter\x12!\n\x0cneeds_backup\x18\t\
\x03\n\x0bResetDevice\x12%\n\x0edisplay_random\x18\x01\x20\x01(\x08R\rdi\ \x20\x01(\x08R\x0bneedsBackup\x12\x1b\n\tno_backup\x18\n\x20\x01(\x08R\
splayRandom\x12\x1f\n\x08strength\x18\x02\x20\x01(\r:\x03256R\x08strengt\ \x08noBackup\"\x99\x03\n\x0bResetDevice\x12%\n\x0edisplay_random\x18\x01\
h\x123\n\x15passphrase_protection\x18\x03\x20\x01(\x08R\x14passphrasePro\ \x20\x01(\x08R\rdisplayRandom\x12\x1f\n\x08strength\x18\x02\x20\x01(\r:\
tection\x12%\n\x0epin_protection\x18\x04\x20\x01(\x08R\rpinProtection\ \x03256R\x08strength\x123\n\x15passphrase_protection\x18\x03\x20\x01(\
\x12!\n\x08language\x18\x05\x20\x01(\t:\x05en-USR\x08language\x12\x14\n\ \x08R\x14passphraseProtection\x12%\n\x0epin_protection\x18\x04\x20\x01(\
\x05label\x18\x06\x20\x01(\tR\x05label\x12\x1f\n\x0bu2f_counter\x18\x07\ \x08R\rpinProtection\x12\x1e\n\x08language\x18\x05\x20\x01(\tR\x08langua\
\x20\x01(\rR\nu2fCounter\x12\x1f\n\x0bskip_backup\x18\x08\x20\x01(\x08R\ geB\x02\x18\x01\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12\x1f\
\nskipBackup\x12\x1b\n\tno_backup\x18\t\x20\x01(\x08R\x08noBackup\x12Q\n\ \n\x0bu2f_counter\x18\x07\x20\x01(\rR\nu2fCounter\x12\x1f\n\x0bskip_back\
\x0bbackup_type\x18\n\x20\x01(\x0e2).hw.trezor.messages.management.Backu\ up\x18\x08\x20\x01(\x08R\nskipBackup\x12\x1b\n\tno_backup\x18\t\x20\x01(\
pType:\x05Bip39R\nbackupType\"\x0e\n\x0cBackupDevice\"\x10\n\x0eEntropyR\ \x08R\x08noBackup\x12Q\n\x0bbackup_type\x18\n\x20\x01(\x0e2).hw.trezor.m\
equest\"&\n\nEntropyAck\x12\x18\n\x07entropy\x18\x01\x20\x02(\x0cR\x07en\ essages.management.BackupType:\x05Bip39R\nbackupType\"\x0e\n\x0cBackupDe\
tropy\"\xd4\x03\n\x0eRecoveryDevice\x12\x1d\n\nword_count\x18\x01\x20\ vice\"\x10\n\x0eEntropyRequest\"&\n\nEntropyAck\x12\x18\n\x07entropy\x18\
\x01(\rR\twordCount\x123\n\x15passphrase_protection\x18\x02\x20\x01(\x08\ \x01\x20\x02(\x0cR\x07entropy\"\xd8\x03\n\x0eRecoveryDevice\x12\x1d\n\nw\
R\x14passphraseProtection\x12%\n\x0epin_protection\x18\x03\x20\x01(\x08R\ ord_count\x18\x01\x20\x01(\rR\twordCount\x123\n\x15passphrase_protection\
\rpinProtection\x12\x1a\n\x08language\x18\x04\x20\x01(\tR\x08language\ \x18\x02\x20\x01(\x08R\x14passphraseProtection\x12%\n\x0epin_protection\
\x12\x14\n\x05label\x18\x05\x20\x01(\tR\x05label\x12)\n\x10enforce_wordl\ \x18\x03\x20\x01(\x08R\rpinProtection\x12\x1e\n\x08language\x18\x04\x20\
ist\x18\x06\x20\x01(\x08R\x0fenforceWordlist\x12T\n\x04type\x18\x08\x20\ \x01(\tR\x08languageB\x02\x18\x01\x12\x14\n\x05label\x18\x05\x20\x01(\tR\
\x01(\x0e2@.hw.trezor.messages.management.RecoveryDevice.RecoveryDeviceT\ \x05label\x12)\n\x10enforce_wordlist\x18\x06\x20\x01(\x08R\x0fenforceWor\
ypeR\x04type\x12\x1f\n\x0bu2f_counter\x18\t\x20\x01(\rR\nu2fCounter\x12\ dlist\x12T\n\x04type\x18\x08\x20\x01(\x0e2@.hw.trezor.messages.managemen\
\x17\n\x07dry_run\x18\n\x20\x01(\x08R\x06dryRun\"Z\n\x12RecoveryDeviceTy\ t.RecoveryDevice.RecoveryDeviceTypeR\x04type\x12\x1f\n\x0bu2f_counter\
pe\x12%\n!RecoveryDeviceType_ScrambledWords\x10\0\x12\x1d\n\x19RecoveryD\ \x18\t\x20\x01(\rR\nu2fCounter\x12\x17\n\x07dry_run\x18\n\x20\x01(\x08R\
eviceType_Matrix\x10\x01\"\xc5\x01\n\x0bWordRequest\x12N\n\x04type\x18\ \x06dryRun\"Z\n\x12RecoveryDeviceType\x12%\n!RecoveryDeviceType_Scramble\
\x01\x20\x02(\x0e2:.hw.trezor.messages.management.WordRequest.WordReques\ dWords\x10\0\x12\x1d\n\x19RecoveryDeviceType_Matrix\x10\x01\"\xc5\x01\n\
tTypeR\x04type\"f\n\x0fWordRequestType\x12\x19\n\x15WordRequestType_Plai\ \x0bWordRequest\x12N\n\x04type\x18\x01\x20\x02(\x0e2:.hw.trezor.messages\
n\x10\0\x12\x1b\n\x17WordRequestType_Matrix9\x10\x01\x12\x1b\n\x17WordRe\ .management.WordRequest.WordRequestTypeR\x04type\"f\n\x0fWordRequestType\
questType_Matrix6\x10\x02\"\x1d\n\x07WordAck\x12\x12\n\x04word\x18\x01\ \x12\x19\n\x15WordRequestType_Plain\x10\0\x12\x1b\n\x17WordRequestType_M\
\x20\x02(\tR\x04word\"0\n\rSetU2FCounter\x12\x1f\n\x0bu2f_counter\x18\ atrix9\x10\x01\x12\x1b\n\x17WordRequestType_Matrix6\x10\x02\"\x1d\n\x07W\
\x01\x20\x02(\rR\nu2fCounter\"\x13\n\x11GetNextU2FCounter\"1\n\x0eNextU2\ ordAck\x12\x12\n\x04word\x18\x01\x20\x02(\tR\x04word\"0\n\rSetU2FCounter\
FCounter\x12\x1f\n\x0bu2f_counter\x18\x01\x20\x02(\rR\nu2fCounter\"\x11\ \x12\x1f\n\x0bu2f_counter\x18\x01\x20\x02(\rR\nu2fCounter\"\x13\n\x11Get\
\n\x0fDoPreauthorized\"\x16\n\x14PreauthorizedRequest\"\x15\n\x13CancelA\ NextU2FCounter\"1\n\x0eNextU2FCounter\x12\x1f\n\x0bu2f_counter\x18\x01\
uthorization\"\xe5\x01\n\x12RebootToBootloader\x12o\n\x0cboot_command\ \x20\x02(\rR\nu2fCounter\"\x11\n\x0fDoPreauthorized\"\x16\n\x14Preauthor\
\x18\x01\x20\x01(\x0e2=.hw.trezor.messages.management.RebootToBootloader\ izedRequest\"\x15\n\x13CancelAuthorization\"\x9a\x02\n\x12RebootToBootlo\
.BootCommand:\rSTOP_AND_WAITR\x0bbootCommand\x12'\n\x0ffirmware_header\ ader\x12o\n\x0cboot_command\x18\x01\x20\x01(\x0e2=.hw.trezor.messages.ma\
\x18\x02\x20\x01(\x0cR\x0efirmwareHeader\"5\n\x0bBootCommand\x12\x11\n\r\ nagement.RebootToBootloader.BootCommand:\rSTOP_AND_WAITR\x0bbootCommand\
STOP_AND_WAIT\x10\0\x12\x13\n\x0fINSTALL_UPGRADE\x10\x01\"\x10\n\x08GetN\ \x12'\n\x0ffirmware_header\x18\x02\x20\x01(\x0cR\x0efirmwareHeader\x123\
once:\x04\x88\xb2\x19\x01\"#\n\x05Nonce\x12\x14\n\x05nonce\x18\x01\x20\ \n\x14language_data_length\x18\x03\x20\x01(\r:\x010R\x12languageDataLeng\
\x02(\x0cR\x05nonce:\x04\x88\xb2\x19\x01\";\n\nUnlockPath\x12\x1b\n\tadd\ th\"5\n\x0bBootCommand\x12\x11\n\rSTOP_AND_WAIT\x10\0\x12\x13\n\x0fINSTA\
ress_n\x18\x01\x20\x03(\rR\x08addressN\x12\x10\n\x03mac\x18\x02\x20\x01(\ LL_UPGRADE\x10\x01\"\x10\n\x08GetNonce:\x04\x88\xb2\x19\x01\"#\n\x05Nonc\
\x0cR\x03mac\"'\n\x13UnlockedPathRequest\x12\x10\n\x03mac\x18\x01\x20\ e\x12\x14\n\x05nonce\x18\x01\x20\x02(\x0cR\x05nonce:\x04\x88\xb2\x19\x01\
\x01(\x0cR\x03mac\"\x14\n\x12ShowDeviceTutorial\"\x12\n\x10UnlockBootloa\ \";\n\nUnlockPath\x12\x1b\n\taddress_n\x18\x01\x20\x03(\rR\x08addressN\
der*>\n\nBackupType\x12\t\n\x05Bip39\x10\0\x12\x10\n\x0cSlip39_Basic\x10\ \x12\x10\n\x03mac\x18\x02\x20\x01(\x0cR\x03mac\"'\n\x13UnlockedPathReque\
\x01\x12\x13\n\x0fSlip39_Advanced\x10\x02*G\n\x10SafetyCheckLevel\x12\n\ st\x12\x10\n\x03mac\x18\x01\x20\x01(\x0cR\x03mac\"\x14\n\x12ShowDeviceTu\
\n\x06Strict\x10\0\x12\x10\n\x0cPromptAlways\x10\x01\x12\x15\n\x11Prompt\ torial\"\x12\n\x10UnlockBootloader*>\n\nBackupType\x12\t\n\x05Bip39\x10\
Temporarily\x10\x02*0\n\x10HomescreenFormat\x12\x08\n\x04Toif\x10\x01\ \0\x12\x10\n\x0cSlip39_Basic\x10\x01\x12\x13\n\x0fSlip39_Advanced\x10\
\x12\x08\n\x04Jpeg\x10\x02\x12\x08\n\x04ToiG\x10\x03BB\n#com.satoshilabs\ \x02*G\n\x10SafetyCheckLevel\x12\n\n\x06Strict\x10\0\x12\x10\n\x0cPrompt\
.trezor.lib.protobufB\x17TrezorMessageManagement\x80\xa6\x1d\x01\ 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 /// `FileDescriptorProto` object which was a source for this generated file