What changed, and why it matters
This commit simply reserves an unused number (27) in a list of device capabilities so it cannot accidentally be reused later. It does not change any running code, fix a bug, or introduce a security issue.
No action required; this is a benign schema maintenance commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The change adds reserved 27 to the Capability enum in messages-management.proto and regenerates the corresponding Rust protobuf descriptor blob. Reserving an enum value is a forward-compatibility/schema-hygiene measure; it does not alter generated accessors, parsing logic, or device behavior. No security vulnerability is present or being fixed.
Changed components
common/protob/messages-management.protorust/trezor-client/src/protos/generated/messages_management.rsInspect captured patch +137 / −136
diff --git a/common/protob/messages-management.proto b/common/protob/messages-management.proto
index 4a01e256..97cdae83 100644
--- a/common/protob/messages-management.proto
+++ b/common/protob/messages-management.proto
@@ -192,6 +192,7 @@ message Features {
Capability_Tron = 24;
Capability_N4W1 = 25 [(bitcoin_only) = true];
Capability_TouchWakeup = 26 [(bitcoin_only) = true]; // Touch to wake from sleep
+ reserved 27; // reserved for internal use
}
}
diff --git a/rust/trezor-client/src/protos/generated/messages_management.rs b/rust/trezor-client/src/protos/generated/messages_management.rs
index 575eb0d3..1b3e1cce 100644
--- a/rust/trezor-client/src/protos/generated/messages_management.rs
+++ b/rust/trezor-client/src/protos/generated/messages_management.rs
@@ -13401,7 +13401,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\roptions.proto\"\x80\x01\n\nInitialize\x12\x1d\n\nsession_id\x18\x01\
\x20\x01(\x0cR\tsessionId\x12,\n\x10_skip_passphrase\x18\x02\x20\x01(\
\x08R\x0eSkipPassphraseB\x02\x18\x01\x12%\n\x0ederive_cardano\x18\x03\
- \x20\x01(\x08R\rderiveCardano\"\r\n\x0bGetFeatures\"\xcf\x1b\n\x08Featur\
+ \x20\x01(\x08R\rderiveCardano\"\r\n\x0bGetFeatures\"\xd5\x1b\n\x08Featur\
es\x12\x16\n\x06vendor\x18\x01\x20\x01(\tR\x06vendor\x12#\n\rmajor_versi\
on\x18\x02\x20\x02(\rR\x0cmajorVersion\x12#\n\rminor_version\x18\x03\x20\
\x02(\rR\x0cminorVersion\x12#\n\rpatch_version\x18\x04\x20\x02(\rR\x0cpa\
@@ -13462,7 +13462,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\
to_wake\x18?\x20\x01(\x08R\ttapToWake\"C\n\x12BackupAvailability\x12\x10\
\n\x0cNotAvailable\x10\0\x12\x0c\n\x08Required\x10\x01\x12\r\n\tAvailabl\
e\x10\x02\"7\n\x0eRecoveryStatus\x12\x0b\n\x07Nothing\x10\0\x12\x0c\n\
- \x08Recovery\x10\x01\x12\n\n\x06Backup\x10\x02\"\xc8\x05\n\nCapability\
+ \x08Recovery\x10\x01\x12\n\n\x06Backup\x10\x02\"\xce\x05\n\nCapability\
\x12\x1c\n\x12Capability_Bitcoin\x10\x01\x1a\x04\x80\xa6\x1d\x01\x12\x1b\
\n\x17Capability_Bitcoin_like\x10\x02\x12\x16\n\x12Capability_Binance\
\x10\x03\x12\x16\n\x12Capability_Cardano\x10\x04\x12\x1b\n\x11Capability\
@@ -13482,140 +13482,140 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\x1a\x04\x80\xa6\x1d\x01\x12\x13\n\x0fCapability_Tron\x10\x18\x12\x19\n\
\x0fCapability_N4W1\x10\x19\x1a\x04\x80\xa6\x1d\x01\x12\x20\n\x16Capabil\
ity_TouchWakeup\x10\x1a\x1a\x04\x80\xa6\x1d\x01\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\"\xdd\x05\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\x12Y\n\x10display_rotation\x18\x07\x20\x01(\x0e2\
- ..hw.trezor.messages.management.DisplayRotationR\x0fdisplayRotation\x12=\
- \n\x1bpassphrase_always_on_device\x18\x08\x20\x01(\x08R\x18passphraseAlw\
- aysOnDevice\x12T\n\rsafety_checks\x18\t\x20\x01(\x0e2/.hw.trezor.message\
- s.management.SafetyCheckLevelR\x0csafetyChecks\x123\n\x15experimental_fe\
- atures\x18\n\x20\x01(\x08R\x14experimentalFeatures\x129\n\x19hide_passph\
- rase_from_host\x18\x0b\x20\x01(\x08R\x16hidePassphraseFromHost\x12'\n\
- \x0fhaptic_feedback\x18\r\x20\x01(\x08R\x0ehapticFeedback\x12+\n\x11home\
- screen_length\x18\x0e\x20\x01(\rR\x10homescreenLength\x12:\n\x1aauto_loc\
- k_delay_battery_ms\x18\x0f\x20\x01(\rR\x16autoLockDelayBatteryMs\"T\n\
- \x0eChangeLanguage\x12\x1f\n\x0bdata_length\x18\x01\x20\x02(\rR\ndataLen\
- gth\x12!\n\x0cshow_display\x18\x02\x20\x01(\x08R\x0bshowDisplay\"T\n\x10\
- DataChunkRequest\x12\x1f\n\x0bdata_length\x18\x01\x20\x02(\rR\ndataLengt\
- h\x12\x1f\n\x0bdata_offset\x18\x02\x20\x02(\rR\ndataOffset\"-\n\x0cDataC\
- hunkAck\x12\x1d\n\ndata_chunk\x18\x01\x20\x02(\x0cR\tdataChunk\"\"\n\nAp\
- plyFlags\x12\x14\n\x05flags\x18\x01\x20\x02(\rR\x05flags\"#\n\tChangePin\
- \x12\x16\n\x06remove\x18\x01\x20\x01(\x08R\x06remove\"(\n\x0eChangeWipeC\
- ode\x12\x16\n\x06remove\x18\x01\x20\x01(\x08R\x06remove\"\xaa\x01\n\tSdP\
- rotect\x12]\n\toperation\x18\x01\x20\x02(\x0e2?.hw.trezor.messages.manag\
- ement.SdProtect.SdProtectOperationTypeR\toperation\">\n\x16SdProtectOper\
- ationType\x12\x0b\n\x07DISABLE\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\x10but\
- tonProtection\"\x08\n\x06Cancel\"\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\tchallen\
- ge\x18\x01\x20\x01(\x0cR\tchallenge\"\"\n\x0cFirmwareHash\x12\x12\n\x04h\
- ash\x18\x01\x20\x02(\x0cR\x04hash\"J\n\x12AuthenticateDevice\x12\x1c\n\t\
- challenge\x18\x01\x20\x02(\x0cR\tchallenge\x12\x16\n\x06stream\x18\x02\
- \x20\x01(\x08R\x06stream\"\x9b\x02\n\x11AuthenticityProof\x12/\n\x13opti\
- ga_certificates\x18\x01\x20\x03(\x0cR\x12optigaCertificates\x12)\n\x10op\
- tiga_signature\x18\x02\x20\x02(\x0cR\x0foptigaSignature\x12/\n\x13tropic\
- _certificates\x18\x03\x20\x03(\x0cR\x12tropicCertificates\x12)\n\x10trop\
- ic_signature\x18\x04\x20\x01(\x0cR\x0ftropicSignature\x12)\n\x10mcu_cert\
- ificates\x18\x05\x20\x03(\x0cR\x0fmcuCertificates\x12#\n\rmcu_signature\
- \x18\x06\x20\x01(\x0cR\x0cmcuSignature\"\xa0\x02\n\x16AuthenticityProofS\
- izes\x12/\n\x13optiga_certificates\x18\x01\x20\x03(\rR\x12optigaCertific\
- ates\x12)\n\x10optiga_signature\x18\x02\x20\x02(\rR\x0foptigaSignature\
- \x12/\n\x13tropic_certificates\x18\x03\x20\x03(\rR\x12tropicCertificates\
- \x12)\n\x10tropic_signature\x18\x04\x20\x01(\rR\x0ftropicSignature\x12)\
- \n\x10mcu_certificates\x18\x05\x20\x03(\rR\x0fmcuCertificates\x12#\n\rmc\
- u_signature\x18\x06\x20\x01(\rR\x0cmcuSignature\"\x86\x02\n\x19GetAuthen\
- ticityProofChunk\x12m\n\nproof_type\x18\x01\x20\x01(\x0e2N.hw.trezor.mes\
- sages.management.GetAuthenticityProofChunk.AuthenticityProofTypeR\tproof\
- Type\x12\x14\n\x05index\x18\x02\x20\x01(\rR\x05index\x12\x16\n\x06offset\
- \x18\x03\x20\x02(\rR\x06offset\x12\x12\n\x04size\x18\x04\x20\x02(\rR\x04\
- size\"8\n\x15AuthenticityProofType\x12\n\n\x06OPTIGA\x10\0\x12\n\n\x06TR\
- OPIC\x10\x01\x12\x07\n\x03MCU\x10\x02\".\n\x16AuthenticityProofChunk\x12\
- \x14\n\x05chunk\x18\x01\x20\x02(\x0cR\x05chunk\"\x0c\n\nWipeDevice\"\xda\
- \x02\n\nLoadDevice\x12\x1c\n\tmnemonics\x18\x01\x20\x03(\tR\tmnemonics\
- \x12\x10\n\x03pin\x18\x03\x20\x01(\tR\x03pin\x123\n\x15passphrase_protec\
- tion\x18\x04\x20\x01(\x08R\x14passphraseProtection\x12\x1e\n\x08language\
- \x18\x05\x20\x01(\tR\x08languageB\x02\x18\x01\x12\x14\n\x05label\x18\x06\
- \x20\x01(\tR\x05label\x12#\n\rskip_checksum\x18\x07\x20\x01(\x08R\x0cski\
- pChecksum\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_back\
- up\x18\n\x20\x01(\x08R\x08noBackup\x12+\n\x11unfinished_backup\x18\x0b\
- \x20\x01(\x08R\x10unfinishedBackup\"\xf8\x03\n\x0bResetDevice\x12\x1f\n\
- \x08strength\x18\x02\x20\x01(\r:\x03256R\x08strength\x123\n\x15passphras\
- e_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\x08languageB\x02\x18\x01\x12\x14\n\x05label\x18\x06\
- \x20\x01(\tR\x05label\x12\x1f\n\x0bu2f_counter\x18\x07\x20\x01(\rR\nu2fC\
- ounter\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.BackupType:\x05Bip39\
- R\nbackupType\x12#\n\rentropy_check\x18\x0b\x20\x01(\x08R\x0centropyChec\
- k\x12Y\n\rbackup_method\x18\x0c\x20\x01(\x0e2+.hw.trezor.messages.manage\
- ment.BackupMethod:\x07DisplayR\x0cbackupMethodJ\x04\x08\x01\x10\x02\"\
- \xc0\x02\n\x0cBackupDevice\x12'\n\x0fgroup_threshold\x18\x01\x20\x01(\rR\
- \x0egroupThreshold\x12O\n\x06groups\x18\x02\x20\x03(\x0b27.hw.trezor.mes\
- sages.management.BackupDevice.Slip39GroupR\x06groups\x12Y\n\rbackup_meth\
- od\x18\x03\x20\x01(\x0e2+.hw.trezor.messages.management.BackupMethod:\
- \x07DisplayR\x0cbackupMethod\x1a[\n\x0bSlip39Group\x12)\n\x10member_thre\
- shold\x18\x01\x20\x02(\rR\x0fmemberThreshold\x12!\n\x0cmember_count\x18\
- \x02\x20\x02(\rR\x0bmemberCount\"b\n\x0eEntropyRequest\x12-\n\x12entropy\
- _commitment\x18\x01\x20\x01(\x0cR\x11entropyCommitment\x12!\n\x0cprev_en\
- tropy\x18\x02\x20\x01(\x0cR\x0bprevEntropy\"&\n\nEntropyAck\x12\x18\n\
- \x07entropy\x18\x01\x20\x02(\x0cR\x07entropy\"\x13\n\x11EntropyCheckRead\
- y\"5\n\x14EntropyCheckContinue\x12\x1d\n\x06finish\x18\x01\x20\x01(\x08:\
- \x05falseR\x06finish\"\xdf\x04\n\x0eRecoveryDevice\x12\x1d\n\nword_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\x05labe\
- l\x12)\n\x10enforce_wordlist\x18\x06\x20\x01(\x08R\x0fenforceWordlist\
- \x12j\n\x0cinput_method\x18\x08\x20\x01(\x0e2G.hw.trezor.messages.manage\
- ment.RecoveryDevice.RecoveryDeviceInputMethodR\x0binputMethod\x12\x1f\n\
- \x0bu2f_counter\x18\t\x20\x01(\rR\nu2fCounter\x12O\n\x04type\x18\n\x20\
- \x01(\x0e2+.hw.trezor.messages.management.RecoveryType:\x0eNormalRecover\
- yR\x04type\x12P\n\rbackup_method\x18\x0b\x20\x01(\x0e2+.hw.trezor.messag\
- es.management.BackupMethodR\x0cbackupMethod\";\n\x19RecoveryDeviceInputM\
- ethod\x12\x12\n\x0eScrambledWords\x10\0\x12\n\n\x06Matrix\x10\x01J\x04\
- \x08\x07\x10\x08\"\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_Matrix9\x10\x01\x12\x1b\n\x17WordRequest\
- Type_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\x0eNextU2FCou\
- nter\x12\x1f\n\x0bu2f_counter\x18\x01\x20\x02(\rR\nu2fCounter\"\x11\n\
- \x0fDoPreauthorized\"\x16\n\x14PreauthorizedRequest\"\x15\n\x13CancelAut\
- horization\"\xeb\x01\n\x12RebootToBootloader\x12o\n\x0cboot_command\x18\
- \x01\x20\x01(\x0e2=.hw.trezor.messages.management.RebootToBootloader.Boo\
- tCommand:\rSTOP_AND_WAITR\x0bbootCommand\x12'\n\x0ffirmware_header\x18\
- \x02\x20\x01(\x0cR\x0efirmwareHeader\"5\n\x0bBootCommand\x12\x11\n\rSTOP\
- _AND_WAIT\x10\0\x12\x13\n\x0fINSTALL_UPGRADE\x10\x01J\x04\x08\x03\x10\
- \x04\"\n\n\x08GetNonce\"\x1d\n\x05Nonce\x12\x14\n\x05nonce\x18\x01\x20\
- \x02(\x0cR\x05nonce\";\n\nUnlockPath\x12\x1b\n\taddress_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\x02(\x0cR\x03mac\"\
- \x14\n\x12ShowDeviceTutorial\"\x12\n\x10UnlockBootloader\"%\n\rSetBright\
- ness\x12\x14\n\x05value\x18\x01\x20\x01(\rR\x05value\"\x11\n\x0fGetSeria\
- lNumber\"3\n\x0cSerialNumber\x12#\n\rserial_number\x18\x01\x20\x02(\tR\
- \x0cserialNumber*\x99\x01\n\nBackupType\x12\t\n\x05Bip39\x10\0\x12\x10\n\
- \x0cSlip39_Basic\x10\x01\x12\x13\n\x0fSlip39_Advanced\x10\x02\x12\x1c\n\
- \x18Slip39_Single_Extendable\x10\x03\x12\x1b\n\x17Slip39_Basic_Extendabl\
- e\x10\x04\x12\x1e\n\x1aSlip39_Advanced_Extendable\x10\x05*%\n\x0cBackupM\
- ethod\x12\x0b\n\x07Display\x10\0\x12\x08\n\x04N4W1\x10\x01*G\n\x10Safety\
- CheckLevel\x12\n\n\x06Strict\x10\0\x12\x10\n\x0cPromptAlways\x10\x01\x12\
- \x15\n\x11PromptTemporarily\x10\x02*=\n\x0fDisplayRotation\x12\t\n\x05No\
- rth\x10\0\x12\x08\n\x04East\x10Z\x12\n\n\x05South\x10\xb4\x01\x12\t\n\
- \x04West\x10\x8e\x02*0\n\x10HomescreenFormat\x12\x08\n\x04Toif\x10\x01\
- \x12\x08\n\x04Jpeg\x10\x02\x12\x08\n\x04ToiG\x10\x03*H\n\x0cRecoveryType\
- \x12\x12\n\x0eNormalRecovery\x10\0\x12\n\n\x06DryRun\x10\x01\x12\x18\n\
- \x14UnlockRepeatedBackup\x10\x02BB\n#com.satoshilabs.trezor.lib.protobuf\
- B\x17TrezorMessageManagement\x80\xa6\x1d\x01\
+ \"\x04\x08\x1b\x10\x1b\"\x0c\n\nLockDevice\"&\n\x07SetBusy\x12\x1b\n\tex\
+ piry_ms\x18\x01\x20\x01(\rR\x08expiryMs\"\x0c\n\nEndSession\"\xdd\x05\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\x0eu\
+ se_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\x10PassphraseSourceB\x02\x18\x01\x12+\n\x12auto_lock_delay_\
+ ms\x18\x06\x20\x01(\rR\x0fautoLockDelayMs\x12Y\n\x10display_rotation\x18\
+ \x07\x20\x01(\x0e2..hw.trezor.messages.management.DisplayRotationR\x0fdi\
+ splayRotation\x12=\n\x1bpassphrase_always_on_device\x18\x08\x20\x01(\x08\
+ R\x18passphraseAlwaysOnDevice\x12T\n\rsafety_checks\x18\t\x20\x01(\x0e2/\
+ .hw.trezor.messages.management.SafetyCheckLevelR\x0csafetyChecks\x123\n\
+ \x15experimental_features\x18\n\x20\x01(\x08R\x14experimentalFeatures\
+ \x129\n\x19hide_passphrase_from_host\x18\x0b\x20\x01(\x08R\x16hidePassph\
+ raseFromHost\x12'\n\x0fhaptic_feedback\x18\r\x20\x01(\x08R\x0ehapticFeed\
+ back\x12+\n\x11homescreen_length\x18\x0e\x20\x01(\rR\x10homescreenLength\
+ \x12:\n\x1aauto_lock_delay_battery_ms\x18\x0f\x20\x01(\rR\x16autoLockDel\
+ ayBatteryMs\"T\n\x0eChangeLanguage\x12\x1f\n\x0bdata_length\x18\x01\x20\
+ \x02(\rR\ndataLength\x12!\n\x0cshow_display\x18\x02\x20\x01(\x08R\x0bsho\
+ wDisplay\"T\n\x10DataChunkRequest\x12\x1f\n\x0bdata_length\x18\x01\x20\
+ \x02(\rR\ndataLength\x12\x1f\n\x0bdata_offset\x18\x02\x20\x02(\rR\ndataO\
+ ffset\"-\n\x0cDataChunkAck\x12\x1d\n\ndata_chunk\x18\x01\x20\x02(\x0cR\t\
+ dataChunk\"\"\n\nApplyFlags\x12\x14\n\x05flags\x18\x01\x20\x02(\rR\x05fl\
+ ags\"#\n\tChangePin\x12\x16\n\x06remove\x18\x01\x20\x01(\x08R\x06remove\
+ \"(\n\x0eChangeWipeCode\x12\x16\n\x06remove\x18\x01\x20\x01(\x08R\x06rem\
+ ove\"\xaa\x01\n\tSdProtect\x12]\n\toperation\x18\x01\x20\x02(\x0e2?.hw.t\
+ rezor.messages.management.SdProtect.SdProtectOperationTypeR\toperation\"\
+ >\n\x16SdProtectOperationType\x12\x0b\n\x07DISABLE\x10\0\x12\n\n\x06ENAB\
+ LE\x10\x01\x12\x0b\n\x07REFRESH\x10\x02\"O\n\x04Ping\x12\x1a\n\x07messag\
+ e\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\x04size\"#\n\x07Entropy\x12\x18\n\
+ \x07entropy\x18\x01\x20\x02(\x0cR\x07entropy\"/\n\x0fGetFirmwareHash\x12\
+ \x1c\n\tchallenge\x18\x01\x20\x01(\x0cR\tchallenge\"\"\n\x0cFirmwareHash\
+ \x12\x12\n\x04hash\x18\x01\x20\x02(\x0cR\x04hash\"J\n\x12AuthenticateDev\
+ ice\x12\x1c\n\tchallenge\x18\x01\x20\x02(\x0cR\tchallenge\x12\x16\n\x06s\
+ tream\x18\x02\x20\x01(\x08R\x06stream\"\x9b\x02\n\x11AuthenticityProof\
+ \x12/\n\x13optiga_certificates\x18\x01\x20\x03(\x0cR\x12optigaCertificat\
+ es\x12)\n\x10optiga_signature\x18\x02\x20\x02(\x0cR\x0foptigaSignature\
+ \x12/\n\x13tropic_certificates\x18\x03\x20\x03(\x0cR\x12tropicCertificat\
+ es\x12)\n\x10tropic_signature\x18\x04\x20\x01(\x0cR\x0ftropicSignature\
+ \x12)\n\x10mcu_certificates\x18\x05\x20\x03(\x0cR\x0fmcuCertificates\x12\
+ #\n\rmcu_signature\x18\x06\x20\x01(\x0cR\x0cmcuSignature\"\xa0\x02\n\x16\
+ AuthenticityProofSizes\x12/\n\x13optiga_certificates\x18\x01\x20\x03(\rR\
+ \x12optigaCertificates\x12)\n\x10optiga_signature\x18\x02\x20\x02(\rR\
+ \x0foptigaSignature\x12/\n\x13tropic_certificates\x18\x03\x20\x03(\rR\
+ \x12tropicCertificates\x12)\n\x10tropic_signature\x18\x04\x20\x01(\rR\
+ \x0ftropicSignature\x12)\n\x10mcu_certificates\x18\x05\x20\x03(\rR\x0fmc\
+ uCertificates\x12#\n\rmcu_signature\x18\x06\x20\x01(\rR\x0cmcuSignature\
+ \"\x86\x02\n\x19GetAuthenticityProofChunk\x12m\n\nproof_type\x18\x01\x20\
+ \x01(\x0e2N.hw.trezor.messages.management.GetAuthenticityProofChunk.Auth\
+ enticityProofTypeR\tproofType\x12\x14\n\x05index\x18\x02\x20\x01(\rR\x05\
+ index\x12\x16\n\x06offset\x18\x03\x20\x02(\rR\x06offset\x12\x12\n\x04siz\
+ e\x18\x04\x20\x02(\rR\x04size\"8\n\x15AuthenticityProofType\x12\n\n\x06O\
+ PTIGA\x10\0\x12\n\n\x06TROPIC\x10\x01\x12\x07\n\x03MCU\x10\x02\".\n\x16A\
+ uthenticityProofChunk\x12\x14\n\x05chunk\x18\x01\x20\x02(\x0cR\x05chunk\
+ \"\x0c\n\nWipeDevice\"\xda\x02\n\nLoadDevice\x12\x1c\n\tmnemonics\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\x14passphraseProt\
+ ection\x12\x1e\n\x08language\x18\x05\x20\x01(\tR\x08languageB\x02\x18\
+ \x01\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12#\n\rskip_checks\
+ um\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\x12\
+ +\n\x11unfinished_backup\x18\x0b\x20\x01(\x08R\x10unfinishedBackup\"\xf8\
+ \x03\n\x0bResetDevice\x12\x1f\n\x08strength\x18\x02\x20\x01(\r:\x03256R\
+ \x08strength\x123\n\x15passphrase_protection\x18\x03\x20\x01(\x08R\x14pa\
+ ssphraseProtection\x12%\n\x0epin_protection\x18\x04\x20\x01(\x08R\rpinPr\
+ otection\x12\x1e\n\x08language\x18\x05\x20\x01(\tR\x08languageB\x02\x18\
+ \x01\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12\x1f\n\x0bu2f_co\
+ unter\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\x08n\
+ oBackup\x12Q\n\x0bbackup_type\x18\n\x20\x01(\x0e2).hw.trezor.messages.ma\
+ nagement.BackupType:\x05Bip39R\nbackupType\x12#\n\rentropy_check\x18\x0b\
+ \x20\x01(\x08R\x0centropyCheck\x12Y\n\rbackup_method\x18\x0c\x20\x01(\
+ \x0e2+.hw.trezor.messages.management.BackupMethod:\x07DisplayR\x0cbackup\
+ MethodJ\x04\x08\x01\x10\x02\"\xc0\x02\n\x0cBackupDevice\x12'\n\x0fgroup_\
+ threshold\x18\x01\x20\x01(\rR\x0egroupThreshold\x12O\n\x06groups\x18\x02\
+ \x20\x03(\x0b27.hw.trezor.messages.management.BackupDevice.Slip39GroupR\
+ \x06groups\x12Y\n\rbackup_method\x18\x03\x20\x01(\x0e2+.hw.trezor.messag\
+ es.management.BackupMethod:\x07DisplayR\x0cbackupMethod\x1a[\n\x0bSlip39\
+ Group\x12)\n\x10member_threshold\x18\x01\x20\x02(\rR\x0fmemberThreshold\
+ \x12!\n\x0cmember_count\x18\x02\x20\x02(\rR\x0bmemberCount\"b\n\x0eEntro\
+ pyRequest\x12-\n\x12entropy_commitment\x18\x01\x20\x01(\x0cR\x11entropyC\
+ ommitment\x12!\n\x0cprev_entropy\x18\x02\x20\x01(\x0cR\x0bprevEntropy\"&\
+ \n\nEntropyAck\x12\x18\n\x07entropy\x18\x01\x20\x02(\x0cR\x07entropy\"\
+ \x13\n\x11EntropyCheckReady\"5\n\x14EntropyCheckContinue\x12\x1d\n\x06fi\
+ nish\x18\x01\x20\x01(\x08:\x05falseR\x06finish\"\xdf\x04\n\x0eRecoveryDe\
+ vice\x12\x1d\n\nword_count\x18\x01\x20\x01(\rR\twordCount\x123\n\x15pass\
+ phrase_protection\x18\x02\x20\x01(\x08R\x14passphraseProtection\x12%\n\
+ \x0epin_protection\x18\x03\x20\x01(\x08R\rpinProtection\x12\x1e\n\x08lan\
+ guage\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\x0fenforceWordlist\x12j\n\x0cinput_method\x18\x08\x20\x01(\x0e2G.\
+ hw.trezor.messages.management.RecoveryDevice.RecoveryDeviceInputMethodR\
+ \x0binputMethod\x12\x1f\n\x0bu2f_counter\x18\t\x20\x01(\rR\nu2fCounter\
+ \x12O\n\x04type\x18\n\x20\x01(\x0e2+.hw.trezor.messages.management.Recov\
+ eryType:\x0eNormalRecoveryR\x04type\x12P\n\rbackup_method\x18\x0b\x20\
+ \x01(\x0e2+.hw.trezor.messages.management.BackupMethodR\x0cbackupMethod\
+ \";\n\x19RecoveryDeviceInputMethod\x12\x12\n\x0eScrambledWords\x10\0\x12\
+ \n\n\x06Matrix\x10\x01J\x04\x08\x07\x10\x08\"\xc5\x01\n\x0bWordRequest\
+ \x12N\n\x04type\x18\x01\x20\x02(\x0e2:.hw.trezor.messages.management.Wor\
+ dRequest.WordRequestTypeR\x04type\"f\n\x0fWordRequestType\x12\x19\n\x15W\
+ ordRequestType_Plain\x10\0\x12\x1b\n\x17WordRequestType_Matrix9\x10\x01\
+ \x12\x1b\n\x17WordRequestType_Matrix6\x10\x02\"\x1d\n\x07WordAck\x12\x12\
+ \n\x04word\x18\x01\x20\x02(\tR\x04word\"0\n\rSetU2FCounter\x12\x1f\n\x0b\
+ u2f_counter\x18\x01\x20\x02(\rR\nu2fCounter\"\x13\n\x11GetNextU2FCounter\
+ \"1\n\x0eNextU2FCounter\x12\x1f\n\x0bu2f_counter\x18\x01\x20\x02(\rR\nu2\
+ fCounter\"\x11\n\x0fDoPreauthorized\"\x16\n\x14PreauthorizedRequest\"\
+ \x15\n\x13CancelAuthorization\"\xeb\x01\n\x12RebootToBootloader\x12o\n\
+ \x0cboot_command\x18\x01\x20\x01(\x0e2=.hw.trezor.messages.management.Re\
+ bootToBootloader.BootCommand:\rSTOP_AND_WAITR\x0bbootCommand\x12'\n\x0ff\
+ irmware_header\x18\x02\x20\x01(\x0cR\x0efirmwareHeader\"5\n\x0bBootComma\
+ nd\x12\x11\n\rSTOP_AND_WAIT\x10\0\x12\x13\n\x0fINSTALL_UPGRADE\x10\x01J\
+ \x04\x08\x03\x10\x04\"\n\n\x08GetNonce\"\x1d\n\x05Nonce\x12\x14\n\x05non\
+ ce\x18\x01\x20\x02(\x0cR\x05nonce\";\n\nUnlockPath\x12\x1b\n\taddress_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\x02(\
+ \x0cR\x03mac\"\x14\n\x12ShowDeviceTutorial\"\x12\n\x10UnlockBootloader\"\
+ %\n\rSetBrightness\x12\x14\n\x05value\x18\x01\x20\x01(\rR\x05value\"\x11\
+ \n\x0fGetSerialNumber\"3\n\x0cSerialNumber\x12#\n\rserial_number\x18\x01\
+ \x20\x02(\tR\x0cserialNumber*\x99\x01\n\nBackupType\x12\t\n\x05Bip39\x10\
+ \0\x12\x10\n\x0cSlip39_Basic\x10\x01\x12\x13\n\x0fSlip39_Advanced\x10\
+ \x02\x12\x1c\n\x18Slip39_Single_Extendable\x10\x03\x12\x1b\n\x17Slip39_B\
+ asic_Extendable\x10\x04\x12\x1e\n\x1aSlip39_Advanced_Extendable\x10\x05*\
+ %\n\x0cBackupMethod\x12\x0b\n\x07Display\x10\0\x12\x08\n\x04N4W1\x10\x01\
+ *G\n\x10SafetyCheckLevel\x12\n\n\x06Strict\x10\0\x12\x10\n\x0cPromptAlwa\
+ ys\x10\x01\x12\x15\n\x11PromptTemporarily\x10\x02*=\n\x0fDisplayRotation\
+ \x12\t\n\x05North\x10\0\x12\x08\n\x04East\x10Z\x12\n\n\x05South\x10\xb4\
+ \x01\x12\t\n\x04West\x10\x8e\x02*0\n\x10HomescreenFormat\x12\x08\n\x04To\
+ if\x10\x01\x12\x08\n\x04Jpeg\x10\x02\x12\x08\n\x04ToiG\x10\x03*H\n\x0cRe\
+ coveryType\x12\x12\n\x0eNormalRecovery\x10\0\x12\n\n\x06DryRun\x10\x01\
+ \x12\x18\n\x14UnlockRepeatedBackup\x10\x02BB\n#com.satoshilabs.trezor.li\
+ b.protobufB\x17TrezorMessageManagement\x80\xa6\x1d\x01\
";
/// `FileDescriptorProto` object which was a source for this generated file
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.