From de6402e95ef5803b0b9d7eee49baffdb9afa6eae Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Mon, 17 Jul 2017 18:36:53 +0200 Subject: [PATCH] implement set_flags (aka ApplyFlags) --- trezorctl | 14 ++ trezorlib/client.py | 7 + trezorlib/messages_pb2.py | 427 +++++++++++++++++++++----------------- trezorlib/types_pb2.py | 2 +- 4 files changed, 262 insertions(+), 188 deletions(-) diff --git a/trezorctl b/trezorctl index 6e3019a89c..e3e4849a8b 100755 --- a/trezorctl +++ b/trezorctl @@ -183,6 +183,20 @@ def set_label(client, label): return client.apply_settings(label=label) +@cli.command(help='Set device flags.') +@click.argument('flags') +@click.pass_obj +def set_flags(client, flags): + flags = flags.lower() + if flags.startswith('0b'): + flags = int(flags, 2) + elif flags.startswith('0x'): + flags = int(flags, 16) + else: + flags = int(flags) + return client.apply_flags(flags=flags) + + @cli.command(help='Set new homescreen.') @click.option('-f', '--filename', default=None) @click.pass_obj diff --git a/trezorlib/client.py b/trezorlib/client.py index 1adae5786d..b56fa9f214 100644 --- a/trezorlib/client.py +++ b/trezorlib/client.py @@ -624,6 +624,13 @@ class ProtocolMixin(object): self.init_device() # Reload Features return out + @field('message') + @expect(proto.Success) + def apply_flags(self, flags): + out = self.call(proto.ApplyFlags(flags=flags)) + self.init_device() # Reload Features + return out + @field('message') @expect(proto.Success) def clear_session(self): diff --git a/trezorlib/messages_pb2.py b/trezorlib/messages_pb2.py index 04db2a94a9..84d0ece9bc 100644 --- a/trezorlib/messages_pb2.py +++ b/trezorlib/messages_pb2.py @@ -1,7 +1,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: messages.proto # libprotoc 3.3.0 -# trezor-common b29b98d69ba43571dcbe54dc927aa3ecd2b95113 +# trezor-common 2eb9c7e352f708506d910f2d5b9aac1e85cafa10 import sys _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) @@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( name='messages.proto', package='', syntax='proto2', - serialized_pb=_b('\n\x0emessages.proto\x1a\x0btypes.proto\"\x0c\n\nInitialize\"\r\n\x0bGetFeatures\"\xae\x03\n\x08\x46\x65\x61tures\x12\x0e\n\x06vendor\x18\x01 \x01(\t\x12\x15\n\rmajor_version\x18\x02 \x01(\r\x12\x15\n\rminor_version\x18\x03 \x01(\r\x12\x15\n\rpatch_version\x18\x04 \x01(\r\x12\x17\n\x0f\x62ootloader_mode\x18\x05 \x01(\x08\x12\x11\n\tdevice_id\x18\x06 \x01(\t\x12\x16\n\x0epin_protection\x18\x07 \x01(\x08\x12\x1d\n\x15passphrase_protection\x18\x08 \x01(\x08\x12\x10\n\x08language\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\x12\x18\n\x05\x63oins\x18\x0b \x03(\x0b\x32\t.CoinType\x12\x13\n\x0binitialized\x18\x0c \x01(\x08\x12\x10\n\x08revision\x18\r \x01(\x0c\x12\x17\n\x0f\x62ootloader_hash\x18\x0e \x01(\x0c\x12\x10\n\x08imported\x18\x0f \x01(\x08\x12\x12\n\npin_cached\x18\x10 \x01(\x08\x12\x19\n\x11passphrase_cached\x18\x11 \x01(\x08\x12\x18\n\x10\x66irmware_present\x18\x12 \x01(\x08\x12\x14\n\x0cneeds_backup\x18\x13 \x01(\x08\"\x0e\n\x0c\x43learSession\"\\\n\rApplySettings\x12\x10\n\x08language\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x16\n\x0euse_passphrase\x18\x03 \x01(\x08\x12\x12\n\nhomescreen\x18\x04 \x01(\x0c\"\x1b\n\tChangePin\x12\x0e\n\x06remove\x18\x01 \x01(\x08\"i\n\x04Ping\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x19\n\x11\x62utton_protection\x18\x02 \x01(\x08\x12\x16\n\x0epin_protection\x18\x03 \x01(\x08\x12\x1d\n\x15passphrase_protection\x18\x04 \x01(\x08\"\x1a\n\x07Success\x12\x0f\n\x07message\x18\x01 \x01(\t\"6\n\x07\x46\x61ilure\x12\x1a\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x0c.FailureType\x12\x0f\n\x07message\x18\x02 \x01(\t\"?\n\rButtonRequest\x12 \n\x04\x63ode\x18\x01 \x01(\x0e\x32\x12.ButtonRequestType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"\x0b\n\tButtonAck\"7\n\x10PinMatrixRequest\x12#\n\x04type\x18\x01 \x01(\x0e\x32\x15.PinMatrixRequestType\"\x1b\n\x0cPinMatrixAck\x12\x0b\n\x03pin\x18\x01 \x02(\t\"\x08\n\x06\x43\x61ncel\"\x13\n\x11PassphraseRequest\"#\n\rPassphraseAck\x12\x12\n\npassphrase\x18\x01 \x02(\t\"\x1a\n\nGetEntropy\x12\x0c\n\x04size\x18\x01 \x02(\r\"\x1a\n\x07\x45ntropy\x12\x0f\n\x07\x65ntropy\x18\x01 \x02(\x0c\"m\n\x0cGetPublicKey\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x02 \x01(\t\x12\x14\n\x0cshow_display\x18\x03 \x01(\x08\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\"4\n\tPublicKey\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x0c\n\x04xpub\x18\x02 \x01(\t\"\xb3\x01\n\nGetAddress\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x1a\n\tcoin_name\x18\x02 \x01(\t:\x07\x42itcoin\x12\x14\n\x0cshow_display\x18\x03 \x01(\x08\x12+\n\x08multisig\x18\x04 \x01(\x0b\x32\x19.MultisigRedeemScriptType\x12\x33\n\x0bscript_type\x18\x05 \x01(\x0e\x32\x10.InputScriptType:\x0cSPENDADDRESS\"=\n\x12\x45thereumGetAddress\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x14\n\x0cshow_display\x18\x02 \x01(\x08\"\x1a\n\x07\x41\x64\x64ress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\t\"\"\n\x0f\x45thereumAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\x0c\"\x0c\n\nWipeDevice\"\xbb\x01\n\nLoadDevice\x12\x10\n\x08mnemonic\x18\x01 \x01(\t\x12\x19\n\x04node\x18\x02 \x01(\x0b\x32\x0b.HDNodeType\x12\x0b\n\x03pin\x18\x03 \x01(\t\x12\x1d\n\x15passphrase_protection\x18\x04 \x01(\x08\x12\x19\n\x08language\x18\x05 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x06 \x01(\t\x12\x15\n\rskip_checksum\x18\x07 \x01(\x08\x12\x13\n\x0bu2f_counter\x18\x08 \x01(\r\"\xc7\x01\n\x0bResetDevice\x12\x16\n\x0e\x64isplay_random\x18\x01 \x01(\x08\x12\x15\n\x08strength\x18\x02 \x01(\r:\x03\x32\x35\x36\x12\x1d\n\x15passphrase_protection\x18\x03 \x01(\x08\x12\x16\n\x0epin_protection\x18\x04 \x01(\x08\x12\x19\n\x08language\x18\x05 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x06 \x01(\t\x12\x13\n\x0bu2f_counter\x18\x07 \x01(\r\x12\x13\n\x0bskip_backup\x18\x08 \x01(\x08\"\x0e\n\x0c\x42\x61\x63kupDevice\"\x10\n\x0e\x45ntropyRequest\"\x1d\n\nEntropyAck\x12\x0f\n\x07\x65ntropy\x18\x01 \x01(\x0c\"\xd3\x01\n\x0eRecoveryDevice\x12\x12\n\nword_count\x18\x01 \x01(\r\x12\x1d\n\x15passphrase_protection\x18\x02 \x01(\x08\x12\x16\n\x0epin_protection\x18\x03 \x01(\x08\x12\x19\n\x08language\x18\x04 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x05 \x01(\t\x12\x18\n\x10\x65nforce_wordlist\x18\x06 \x01(\x08\x12\x0c\n\x04type\x18\x08 \x01(\r\x12\x13\n\x0bu2f_counter\x18\t \x01(\r\x12\x0f\n\x07\x64ry_run\x18\n \x01(\x08\"-\n\x0bWordRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.WordRequestType\"\x17\n\x07WordAck\x12\x0c\n\x04word\x18\x01 \x02(\t\"M\n\x0bSignMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0f\n\x07message\x18\x02 \x02(\x0c\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\"`\n\rVerifyMessage\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\"6\n\x10MessageSignature\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"v\n\x0e\x45ncryptMessage\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x14\n\x0c\x64isplay_only\x18\x03 \x01(\x08\x12\x11\n\taddress_n\x18\x04 \x03(\r\x12\x1a\n\tcoin_name\x18\x05 \x01(\t:\x07\x42itcoin\"@\n\x10\x45ncryptedMessage\x12\r\n\x05nonce\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x0c\n\x04hmac\x18\x03 \x01(\x0c\"Q\n\x0e\x44\x65\x63ryptMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\r\n\x05nonce\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\x12\x0c\n\x04hmac\x18\x04 \x01(\x0c\"4\n\x10\x44\x65\x63ryptedMessage\x12\x0f\n\x07message\x18\x01 \x01(\x0c\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\"\x8c\x01\n\x0e\x43ipherKeyValue\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\x0c\x12\x0f\n\x07\x65ncrypt\x18\x04 \x01(\x08\x12\x16\n\x0e\x61sk_on_encrypt\x18\x05 \x01(\x08\x12\x16\n\x0e\x61sk_on_decrypt\x18\x06 \x01(\x08\x12\n\n\x02iv\x18\x07 \x01(\x0c\"!\n\x10\x43ipheredKeyValue\x12\r\n\x05value\x18\x01 \x01(\x0c\"Y\n\x0e\x45stimateTxSize\x12\x15\n\routputs_count\x18\x01 \x02(\r\x12\x14\n\x0cinputs_count\x18\x02 \x02(\r\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\"\x19\n\x06TxSize\x12\x0f\n\x07tx_size\x18\x01 \x01(\r\"{\n\x06SignTx\x12\x15\n\routputs_count\x18\x01 \x02(\r\x12\x14\n\x0cinputs_count\x18\x02 \x02(\r\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\x12\x12\n\x07version\x18\x04 \x01(\r:\x01\x31\x12\x14\n\tlock_time\x18\x05 \x01(\r:\x01\x30\"\xba\x01\n\x0cSimpleSignTx\x12\x1c\n\x06inputs\x18\x01 \x03(\x0b\x32\x0c.TxInputType\x12\x1e\n\x07outputs\x18\x02 \x03(\x0b\x32\r.TxOutputType\x12&\n\x0ctransactions\x18\x03 \x03(\x0b\x32\x10.TransactionType\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\x12\x12\n\x07version\x18\x05 \x01(\r:\x01\x31\x12\x14\n\tlock_time\x18\x06 \x01(\r:\x01\x30\"\x85\x01\n\tTxRequest\x12\"\n\x0crequest_type\x18\x01 \x01(\x0e\x32\x0c.RequestType\x12&\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x15.TxRequestDetailsType\x12,\n\nserialized\x18\x03 \x01(\x0b\x32\x18.TxRequestSerializedType\"%\n\x05TxAck\x12\x1c\n\x02tx\x18\x01 \x01(\x0b\x32\x10.TransactionType\"\xb6\x01\n\x0e\x45thereumSignTx\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\r\n\x05nonce\x18\x02 \x01(\x0c\x12\x11\n\tgas_price\x18\x03 \x01(\x0c\x12\x11\n\tgas_limit\x18\x04 \x01(\x0c\x12\n\n\x02to\x18\x05 \x01(\x0c\x12\r\n\x05value\x18\x06 \x01(\x0c\x12\x1a\n\x12\x64\x61ta_initial_chunk\x18\x07 \x01(\x0c\x12\x13\n\x0b\x64\x61ta_length\x18\x08 \x01(\r\x12\x10\n\x08\x63hain_id\x18\t \x01(\r\"g\n\x11\x45thereumTxRequest\x12\x13\n\x0b\x64\x61ta_length\x18\x01 \x01(\r\x12\x13\n\x0bsignature_v\x18\x02 \x01(\r\x12\x13\n\x0bsignature_r\x18\x03 \x01(\x0c\x12\x13\n\x0bsignature_s\x18\x04 \x01(\x0c\"#\n\rEthereumTxAck\x12\x12\n\ndata_chunk\x18\x01 \x01(\x0c\"9\n\x13\x45thereumSignMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0f\n\x07message\x18\x02 \x02(\x0c\"L\n\x15\x45thereumVerifyMessage\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\">\n\x18\x45thereumMessageSignature\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"}\n\x0cSignIdentity\x12\x1f\n\x08identity\x18\x01 \x01(\x0b\x32\r.IdentityType\x12\x18\n\x10\x63hallenge_hidden\x18\x02 \x01(\x0c\x12\x18\n\x10\x63hallenge_visual\x18\x03 \x01(\t\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x04 \x01(\t\"H\n\x0eSignedIdentity\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x12\n\npublic_key\x18\x02 \x01(\x0c\x12\x11\n\tsignature\x18\x03 \x01(\x0c\"g\n\x11GetECDHSessionKey\x12\x1f\n\x08identity\x18\x01 \x01(\x0b\x32\r.IdentityType\x12\x17\n\x0fpeer_public_key\x18\x02 \x01(\x0c\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x03 \x01(\t\"%\n\x0e\x45\x43\x44HSessionKey\x12\x13\n\x0bsession_key\x18\x01 \x01(\x0c\"$\n\rSetU2FCounter\x12\x13\n\x0bu2f_counter\x18\x01 \x01(\r\"\x1f\n\rFirmwareErase\x12\x0e\n\x06length\x18\x01 \x01(\r\"1\n\x0f\x46irmwareRequest\x12\x0e\n\x06offset\x18\x01 \x01(\r\x12\x0e\n\x06length\x18\x02 \x01(\r\"/\n\x0e\x46irmwareUpload\x12\x0f\n\x07payload\x18\x01 \x02(\x0c\x12\x0c\n\x04hash\x18\x02 \x01(\x0c\"\x1b\n\x08SelfTest\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\"#\n\x11\x44\x65\x62ugLinkDecision\x12\x0e\n\x06yes_no\x18\x01 \x02(\x08\"\x13\n\x11\x44\x65\x62ugLinkGetState\"\xeb\x01\n\x0e\x44\x65\x62ugLinkState\x12\x0e\n\x06layout\x18\x01 \x01(\x0c\x12\x0b\n\x03pin\x18\x02 \x01(\t\x12\x0e\n\x06matrix\x18\x03 \x01(\t\x12\x10\n\x08mnemonic\x18\x04 \x01(\t\x12\x19\n\x04node\x18\x05 \x01(\x0b\x32\x0b.HDNodeType\x12\x1d\n\x15passphrase_protection\x18\x06 \x01(\x08\x12\x12\n\nreset_word\x18\x07 \x01(\t\x12\x15\n\rreset_entropy\x18\x08 \x01(\x0c\x12\x1a\n\x12recovery_fake_word\x18\t \x01(\t\x12\x19\n\x11recovery_word_pos\x18\n \x01(\r\"\x0f\n\rDebugLinkStop\";\n\x0c\x44\x65\x62ugLinkLog\x12\r\n\x05level\x18\x01 \x01(\r\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12\x0c\n\x04text\x18\x03 \x01(\t\"6\n\x13\x44\x65\x62ugLinkMemoryRead\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\r\x12\x0e\n\x06length\x18\x02 \x01(\r\"!\n\x0f\x44\x65\x62ugLinkMemory\x12\x0e\n\x06memory\x18\x01 \x01(\x0c\"F\n\x14\x44\x65\x62ugLinkMemoryWrite\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\r\x12\x0e\n\x06memory\x18\x02 \x01(\x0c\x12\r\n\x05\x66lash\x18\x03 \x01(\x08\"%\n\x13\x44\x65\x62ugLinkFlashErase\x12\x0e\n\x06sector\x18\x01 \x01(\r*\x89\x15\n\x0bMessageType\x12 \n\x16MessageType_Initialize\x10\x00\x1a\x04\x90\xb5\x18\x01\x12\x1a\n\x10MessageType_Ping\x10\x01\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Success\x10\x02\x1a\x04\x98\xb5\x18\x01\x12\x1d\n\x13MessageType_Failure\x10\x03\x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_ChangePin\x10\x04\x1a\x04\x90\xb5\x18\x01\x12 \n\x16MessageType_WipeDevice\x10\x05\x1a\x04\x90\xb5\x18\x01\x12\'\n\x19MessageType_FirmwareErase\x10\x06\x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12(\n\x1aMessageType_FirmwareUpload\x10\x07\x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12)\n\x1bMessageType_FirmwareRequest\x10\x08\x1a\x08\x98\xb5\x18\x01\xb8\xb5\x18\x01\x12 \n\x16MessageType_GetEntropy\x10\t\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Entropy\x10\n\x1a\x04\x98\xb5\x18\x01\x12\"\n\x18MessageType_GetPublicKey\x10\x0b\x1a\x04\x90\xb5\x18\x01\x12\x1f\n\x15MessageType_PublicKey\x10\x0c\x1a\x04\x98\xb5\x18\x01\x12 \n\x16MessageType_LoadDevice\x10\r\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_ResetDevice\x10\x0e\x1a\x04\x90\xb5\x18\x01\x12\x1c\n\x12MessageType_SignTx\x10\x0f\x1a\x04\x90\xb5\x18\x01\x12$\n\x18MessageType_SimpleSignTx\x10\x10\x1a\x06\x08\x01\x90\xb5\x18\x01\x12\x1e\n\x14MessageType_Features\x10\x11\x1a\x04\x98\xb5\x18\x01\x12&\n\x1cMessageType_PinMatrixRequest\x10\x12\x1a\x04\x98\xb5\x18\x01\x12&\n\x18MessageType_PinMatrixAck\x10\x13\x1a\x08\x90\xb5\x18\x01\xb0\xb5\x18\x01\x12\x1c\n\x12MessageType_Cancel\x10\x14\x1a\x04\x90\xb5\x18\x01\x12\x1f\n\x15MessageType_TxRequest\x10\x15\x1a\x04\x98\xb5\x18\x01\x12\x1b\n\x11MessageType_TxAck\x10\x16\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_CipherKeyValue\x10\x17\x1a\x04\x90\xb5\x18\x01\x12\"\n\x18MessageType_ClearSession\x10\x18\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_ApplySettings\x10\x19\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_ButtonRequest\x10\x1a\x1a\x04\x98\xb5\x18\x01\x12#\n\x15MessageType_ButtonAck\x10\x1b\x1a\x08\x90\xb5\x18\x01\xb0\xb5\x18\x01\x12 \n\x16MessageType_GetAddress\x10\x1d\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Address\x10\x1e\x1a\x04\x98\xb5\x18\x01\x12\"\n\x14MessageType_SelfTest\x10 \x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12\"\n\x18MessageType_BackupDevice\x10\"\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_EntropyRequest\x10#\x1a\x04\x98\xb5\x18\x01\x12 \n\x16MessageType_EntropyAck\x10$\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_SignMessage\x10&\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_VerifyMessage\x10\'\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_MessageSignature\x10(\x1a\x04\x98\xb5\x18\x01\x12\'\n\x1dMessageType_PassphraseRequest\x10)\x1a\x04\x98\xb5\x18\x01\x12\'\n\x19MessageType_PassphraseAck\x10*\x1a\x08\x90\xb5\x18\x01\xb0\xb5\x18\x01\x12&\n\x1aMessageType_EstimateTxSize\x10+\x1a\x06\x08\x01\x90\xb5\x18\x01\x12\x1e\n\x12MessageType_TxSize\x10,\x1a\x06\x08\x01\x98\xb5\x18\x01\x12$\n\x1aMessageType_RecoveryDevice\x10-\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_WordRequest\x10.\x1a\x04\x98\xb5\x18\x01\x12\x1d\n\x13MessageType_WordAck\x10/\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_CipheredKeyValue\x10\x30\x1a\x04\x98\xb5\x18\x01\x12&\n\x1aMessageType_EncryptMessage\x10\x31\x1a\x06\x08\x01\x90\xb5\x18\x01\x12(\n\x1cMessageType_EncryptedMessage\x10\x32\x1a\x06\x08\x01\x98\xb5\x18\x01\x12&\n\x1aMessageType_DecryptMessage\x10\x33\x1a\x06\x08\x01\x90\xb5\x18\x01\x12(\n\x1cMessageType_DecryptedMessage\x10\x34\x1a\x06\x08\x01\x98\xb5\x18\x01\x12\"\n\x18MessageType_SignIdentity\x10\x35\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_SignedIdentity\x10\x36\x1a\x04\x98\xb5\x18\x01\x12!\n\x17MessageType_GetFeatures\x10\x37\x1a\x04\x90\xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAddress\x10\x38\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x10\x39\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_EthereumTxRequest\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_GetECDHSessionKey\x10=\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_ECDHSessionKey\x10>\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_SetU2FCounter\x10?\x1a\x04\x90\xb5\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\x10@\x1a\x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10\x41\x1a\x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10\x42\x1a\x04\x98\xb5\x18\x01\x12+\n\x1dMessageType_DebugLinkDecision\x10\x64\x1a\x08\xa0\xb5\x18\x01\xb0\xb5\x18\x01\x12\'\n\x1dMessageType_DebugLinkGetState\x10\x65\x1a\x04\xa0\xb5\x18\x01\x12$\n\x1aMessageType_DebugLinkState\x10\x66\x1a\x04\xa8\xb5\x18\x01\x12#\n\x19MessageType_DebugLinkStop\x10g\x1a\x04\xa0\xb5\x18\x01\x12\"\n\x18MessageType_DebugLinkLog\x10h\x1a\x04\xa8\xb5\x18\x01\x12)\n\x1fMessageType_DebugLinkMemoryRead\x10n\x1a\x04\xa0\xb5\x18\x01\x12%\n\x1bMessageType_DebugLinkMemory\x10o\x1a\x04\xa8\xb5\x18\x01\x12*\n MessageType_DebugLinkMemoryWrite\x10p\x1a\x04\xa0\xb5\x18\x01\x12)\n\x1fMessageType_DebugLinkFlashErase\x10q\x1a\x04\xa0\xb5\x18\x01\x42\x34\n#com.satoshilabs.trezor.lib.protobufB\rTrezorMessage') + serialized_pb=_b('\n\x0emessages.proto\x1a\x0btypes.proto\"\x0c\n\nInitialize\"\r\n\x0bGetFeatures\"\xbd\x03\n\x08\x46\x65\x61tures\x12\x0e\n\x06vendor\x18\x01 \x01(\t\x12\x15\n\rmajor_version\x18\x02 \x01(\r\x12\x15\n\rminor_version\x18\x03 \x01(\r\x12\x15\n\rpatch_version\x18\x04 \x01(\r\x12\x17\n\x0f\x62ootloader_mode\x18\x05 \x01(\x08\x12\x11\n\tdevice_id\x18\x06 \x01(\t\x12\x16\n\x0epin_protection\x18\x07 \x01(\x08\x12\x1d\n\x15passphrase_protection\x18\x08 \x01(\x08\x12\x10\n\x08language\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\x12\x18\n\x05\x63oins\x18\x0b \x03(\x0b\x32\t.CoinType\x12\x13\n\x0binitialized\x18\x0c \x01(\x08\x12\x10\n\x08revision\x18\r \x01(\x0c\x12\x17\n\x0f\x62ootloader_hash\x18\x0e \x01(\x0c\x12\x10\n\x08imported\x18\x0f \x01(\x08\x12\x12\n\npin_cached\x18\x10 \x01(\x08\x12\x19\n\x11passphrase_cached\x18\x11 \x01(\x08\x12\x18\n\x10\x66irmware_present\x18\x12 \x01(\x08\x12\x14\n\x0cneeds_backup\x18\x13 \x01(\x08\x12\r\n\x05\x66lags\x18\x14 \x01(\r\"\x0e\n\x0c\x43learSession\"\\\n\rApplySettings\x12\x10\n\x08language\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x16\n\x0euse_passphrase\x18\x03 \x01(\x08\x12\x12\n\nhomescreen\x18\x04 \x01(\x0c\"\x1b\n\nApplyFlags\x12\r\n\x05\x66lags\x18\x01 \x01(\r\"\x1b\n\tChangePin\x12\x0e\n\x06remove\x18\x01 \x01(\x08\"i\n\x04Ping\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x19\n\x11\x62utton_protection\x18\x02 \x01(\x08\x12\x16\n\x0epin_protection\x18\x03 \x01(\x08\x12\x1d\n\x15passphrase_protection\x18\x04 \x01(\x08\"\x1a\n\x07Success\x12\x0f\n\x07message\x18\x01 \x01(\t\"6\n\x07\x46\x61ilure\x12\x1a\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x0c.FailureType\x12\x0f\n\x07message\x18\x02 \x01(\t\"?\n\rButtonRequest\x12 \n\x04\x63ode\x18\x01 \x01(\x0e\x32\x12.ButtonRequestType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"\x0b\n\tButtonAck\"7\n\x10PinMatrixRequest\x12#\n\x04type\x18\x01 \x01(\x0e\x32\x15.PinMatrixRequestType\"\x1b\n\x0cPinMatrixAck\x12\x0b\n\x03pin\x18\x01 \x02(\t\"\x08\n\x06\x43\x61ncel\"\x13\n\x11PassphraseRequest\"#\n\rPassphraseAck\x12\x12\n\npassphrase\x18\x01 \x02(\t\"\x1a\n\nGetEntropy\x12\x0c\n\x04size\x18\x01 \x02(\r\"\x1a\n\x07\x45ntropy\x12\x0f\n\x07\x65ntropy\x18\x01 \x02(\x0c\"m\n\x0cGetPublicKey\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x02 \x01(\t\x12\x14\n\x0cshow_display\x18\x03 \x01(\x08\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\"4\n\tPublicKey\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x0c\n\x04xpub\x18\x02 \x01(\t\"\xb3\x01\n\nGetAddress\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x1a\n\tcoin_name\x18\x02 \x01(\t:\x07\x42itcoin\x12\x14\n\x0cshow_display\x18\x03 \x01(\x08\x12+\n\x08multisig\x18\x04 \x01(\x0b\x32\x19.MultisigRedeemScriptType\x12\x33\n\x0bscript_type\x18\x05 \x01(\x0e\x32\x10.InputScriptType:\x0cSPENDADDRESS\"=\n\x12\x45thereumGetAddress\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x14\n\x0cshow_display\x18\x02 \x01(\x08\"\x1a\n\x07\x41\x64\x64ress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\t\"\"\n\x0f\x45thereumAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\x0c\"\x0c\n\nWipeDevice\"\xbb\x01\n\nLoadDevice\x12\x10\n\x08mnemonic\x18\x01 \x01(\t\x12\x19\n\x04node\x18\x02 \x01(\x0b\x32\x0b.HDNodeType\x12\x0b\n\x03pin\x18\x03 \x01(\t\x12\x1d\n\x15passphrase_protection\x18\x04 \x01(\x08\x12\x19\n\x08language\x18\x05 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x06 \x01(\t\x12\x15\n\rskip_checksum\x18\x07 \x01(\x08\x12\x13\n\x0bu2f_counter\x18\x08 \x01(\r\"\xc7\x01\n\x0bResetDevice\x12\x16\n\x0e\x64isplay_random\x18\x01 \x01(\x08\x12\x15\n\x08strength\x18\x02 \x01(\r:\x03\x32\x35\x36\x12\x1d\n\x15passphrase_protection\x18\x03 \x01(\x08\x12\x16\n\x0epin_protection\x18\x04 \x01(\x08\x12\x19\n\x08language\x18\x05 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x06 \x01(\t\x12\x13\n\x0bu2f_counter\x18\x07 \x01(\r\x12\x13\n\x0bskip_backup\x18\x08 \x01(\x08\"\x0e\n\x0c\x42\x61\x63kupDevice\"\x10\n\x0e\x45ntropyRequest\"\x1d\n\nEntropyAck\x12\x0f\n\x07\x65ntropy\x18\x01 \x01(\x0c\"\xd3\x01\n\x0eRecoveryDevice\x12\x12\n\nword_count\x18\x01 \x01(\r\x12\x1d\n\x15passphrase_protection\x18\x02 \x01(\x08\x12\x16\n\x0epin_protection\x18\x03 \x01(\x08\x12\x19\n\x08language\x18\x04 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x05 \x01(\t\x12\x18\n\x10\x65nforce_wordlist\x18\x06 \x01(\x08\x12\x0c\n\x04type\x18\x08 \x01(\r\x12\x13\n\x0bu2f_counter\x18\t \x01(\r\x12\x0f\n\x07\x64ry_run\x18\n \x01(\x08\"-\n\x0bWordRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.WordRequestType\"\x17\n\x07WordAck\x12\x0c\n\x04word\x18\x01 \x02(\t\"M\n\x0bSignMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0f\n\x07message\x18\x02 \x02(\x0c\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\"`\n\rVerifyMessage\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\"6\n\x10MessageSignature\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"v\n\x0e\x45ncryptMessage\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x14\n\x0c\x64isplay_only\x18\x03 \x01(\x08\x12\x11\n\taddress_n\x18\x04 \x03(\r\x12\x1a\n\tcoin_name\x18\x05 \x01(\t:\x07\x42itcoin\"@\n\x10\x45ncryptedMessage\x12\r\n\x05nonce\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x0c\n\x04hmac\x18\x03 \x01(\x0c\"Q\n\x0e\x44\x65\x63ryptMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\r\n\x05nonce\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\x12\x0c\n\x04hmac\x18\x04 \x01(\x0c\"4\n\x10\x44\x65\x63ryptedMessage\x12\x0f\n\x07message\x18\x01 \x01(\x0c\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\"\x8c\x01\n\x0e\x43ipherKeyValue\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\x0c\x12\x0f\n\x07\x65ncrypt\x18\x04 \x01(\x08\x12\x16\n\x0e\x61sk_on_encrypt\x18\x05 \x01(\x08\x12\x16\n\x0e\x61sk_on_decrypt\x18\x06 \x01(\x08\x12\n\n\x02iv\x18\x07 \x01(\x0c\"!\n\x10\x43ipheredKeyValue\x12\r\n\x05value\x18\x01 \x01(\x0c\"Y\n\x0e\x45stimateTxSize\x12\x15\n\routputs_count\x18\x01 \x02(\r\x12\x14\n\x0cinputs_count\x18\x02 \x02(\r\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\"\x19\n\x06TxSize\x12\x0f\n\x07tx_size\x18\x01 \x01(\r\"{\n\x06SignTx\x12\x15\n\routputs_count\x18\x01 \x02(\r\x12\x14\n\x0cinputs_count\x18\x02 \x02(\r\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\x12\x12\n\x07version\x18\x04 \x01(\r:\x01\x31\x12\x14\n\tlock_time\x18\x05 \x01(\r:\x01\x30\"\xba\x01\n\x0cSimpleSignTx\x12\x1c\n\x06inputs\x18\x01 \x03(\x0b\x32\x0c.TxInputType\x12\x1e\n\x07outputs\x18\x02 \x03(\x0b\x32\r.TxOutputType\x12&\n\x0ctransactions\x18\x03 \x03(\x0b\x32\x10.TransactionType\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\x12\x12\n\x07version\x18\x05 \x01(\r:\x01\x31\x12\x14\n\tlock_time\x18\x06 \x01(\r:\x01\x30\"\x85\x01\n\tTxRequest\x12\"\n\x0crequest_type\x18\x01 \x01(\x0e\x32\x0c.RequestType\x12&\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x15.TxRequestDetailsType\x12,\n\nserialized\x18\x03 \x01(\x0b\x32\x18.TxRequestSerializedType\"%\n\x05TxAck\x12\x1c\n\x02tx\x18\x01 \x01(\x0b\x32\x10.TransactionType\"\xb6\x01\n\x0e\x45thereumSignTx\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\r\n\x05nonce\x18\x02 \x01(\x0c\x12\x11\n\tgas_price\x18\x03 \x01(\x0c\x12\x11\n\tgas_limit\x18\x04 \x01(\x0c\x12\n\n\x02to\x18\x05 \x01(\x0c\x12\r\n\x05value\x18\x06 \x01(\x0c\x12\x1a\n\x12\x64\x61ta_initial_chunk\x18\x07 \x01(\x0c\x12\x13\n\x0b\x64\x61ta_length\x18\x08 \x01(\r\x12\x10\n\x08\x63hain_id\x18\t \x01(\r\"g\n\x11\x45thereumTxRequest\x12\x13\n\x0b\x64\x61ta_length\x18\x01 \x01(\r\x12\x13\n\x0bsignature_v\x18\x02 \x01(\r\x12\x13\n\x0bsignature_r\x18\x03 \x01(\x0c\x12\x13\n\x0bsignature_s\x18\x04 \x01(\x0c\"#\n\rEthereumTxAck\x12\x12\n\ndata_chunk\x18\x01 \x01(\x0c\"9\n\x13\x45thereumSignMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0f\n\x07message\x18\x02 \x02(\x0c\"L\n\x15\x45thereumVerifyMessage\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\">\n\x18\x45thereumMessageSignature\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"}\n\x0cSignIdentity\x12\x1f\n\x08identity\x18\x01 \x01(\x0b\x32\r.IdentityType\x12\x18\n\x10\x63hallenge_hidden\x18\x02 \x01(\x0c\x12\x18\n\x10\x63hallenge_visual\x18\x03 \x01(\t\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x04 \x01(\t\"H\n\x0eSignedIdentity\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x12\n\npublic_key\x18\x02 \x01(\x0c\x12\x11\n\tsignature\x18\x03 \x01(\x0c\"g\n\x11GetECDHSessionKey\x12\x1f\n\x08identity\x18\x01 \x01(\x0b\x32\r.IdentityType\x12\x17\n\x0fpeer_public_key\x18\x02 \x01(\x0c\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x03 \x01(\t\"%\n\x0e\x45\x43\x44HSessionKey\x12\x13\n\x0bsession_key\x18\x01 \x01(\x0c\"$\n\rSetU2FCounter\x12\x13\n\x0bu2f_counter\x18\x01 \x01(\r\"\x1f\n\rFirmwareErase\x12\x0e\n\x06length\x18\x01 \x01(\r\"1\n\x0f\x46irmwareRequest\x12\x0e\n\x06offset\x18\x01 \x01(\r\x12\x0e\n\x06length\x18\x02 \x01(\r\"/\n\x0e\x46irmwareUpload\x12\x0f\n\x07payload\x18\x01 \x02(\x0c\x12\x0c\n\x04hash\x18\x02 \x01(\x0c\"\x1b\n\x08SelfTest\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\"#\n\x11\x44\x65\x62ugLinkDecision\x12\x0e\n\x06yes_no\x18\x01 \x02(\x08\"\x13\n\x11\x44\x65\x62ugLinkGetState\"\xeb\x01\n\x0e\x44\x65\x62ugLinkState\x12\x0e\n\x06layout\x18\x01 \x01(\x0c\x12\x0b\n\x03pin\x18\x02 \x01(\t\x12\x0e\n\x06matrix\x18\x03 \x01(\t\x12\x10\n\x08mnemonic\x18\x04 \x01(\t\x12\x19\n\x04node\x18\x05 \x01(\x0b\x32\x0b.HDNodeType\x12\x1d\n\x15passphrase_protection\x18\x06 \x01(\x08\x12\x12\n\nreset_word\x18\x07 \x01(\t\x12\x15\n\rreset_entropy\x18\x08 \x01(\x0c\x12\x1a\n\x12recovery_fake_word\x18\t \x01(\t\x12\x19\n\x11recovery_word_pos\x18\n \x01(\r\"\x0f\n\rDebugLinkStop\";\n\x0c\x44\x65\x62ugLinkLog\x12\r\n\x05level\x18\x01 \x01(\r\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12\x0c\n\x04text\x18\x03 \x01(\t\"6\n\x13\x44\x65\x62ugLinkMemoryRead\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\r\x12\x0e\n\x06length\x18\x02 \x01(\r\"!\n\x0f\x44\x65\x62ugLinkMemory\x12\x0e\n\x06memory\x18\x01 \x01(\x0c\"F\n\x14\x44\x65\x62ugLinkMemoryWrite\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\r\x12\x0e\n\x06memory\x18\x02 \x01(\x0c\x12\r\n\x05\x66lash\x18\x03 \x01(\x08\"%\n\x13\x44\x65\x62ugLinkFlashErase\x12\x0e\n\x06sector\x18\x01 \x01(\r*\xab\x15\n\x0bMessageType\x12 \n\x16MessageType_Initialize\x10\x00\x1a\x04\x90\xb5\x18\x01\x12\x1a\n\x10MessageType_Ping\x10\x01\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Success\x10\x02\x1a\x04\x98\xb5\x18\x01\x12\x1d\n\x13MessageType_Failure\x10\x03\x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_ChangePin\x10\x04\x1a\x04\x90\xb5\x18\x01\x12 \n\x16MessageType_WipeDevice\x10\x05\x1a\x04\x90\xb5\x18\x01\x12\'\n\x19MessageType_FirmwareErase\x10\x06\x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12(\n\x1aMessageType_FirmwareUpload\x10\x07\x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12)\n\x1bMessageType_FirmwareRequest\x10\x08\x1a\x08\x98\xb5\x18\x01\xb8\xb5\x18\x01\x12 \n\x16MessageType_GetEntropy\x10\t\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Entropy\x10\n\x1a\x04\x98\xb5\x18\x01\x12\"\n\x18MessageType_GetPublicKey\x10\x0b\x1a\x04\x90\xb5\x18\x01\x12\x1f\n\x15MessageType_PublicKey\x10\x0c\x1a\x04\x98\xb5\x18\x01\x12 \n\x16MessageType_LoadDevice\x10\r\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_ResetDevice\x10\x0e\x1a\x04\x90\xb5\x18\x01\x12\x1c\n\x12MessageType_SignTx\x10\x0f\x1a\x04\x90\xb5\x18\x01\x12$\n\x18MessageType_SimpleSignTx\x10\x10\x1a\x06\x08\x01\x90\xb5\x18\x01\x12\x1e\n\x14MessageType_Features\x10\x11\x1a\x04\x98\xb5\x18\x01\x12&\n\x1cMessageType_PinMatrixRequest\x10\x12\x1a\x04\x98\xb5\x18\x01\x12&\n\x18MessageType_PinMatrixAck\x10\x13\x1a\x08\x90\xb5\x18\x01\xb0\xb5\x18\x01\x12\x1c\n\x12MessageType_Cancel\x10\x14\x1a\x04\x90\xb5\x18\x01\x12\x1f\n\x15MessageType_TxRequest\x10\x15\x1a\x04\x98\xb5\x18\x01\x12\x1b\n\x11MessageType_TxAck\x10\x16\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_CipherKeyValue\x10\x17\x1a\x04\x90\xb5\x18\x01\x12\"\n\x18MessageType_ClearSession\x10\x18\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_ApplySettings\x10\x19\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_ButtonRequest\x10\x1a\x1a\x04\x98\xb5\x18\x01\x12#\n\x15MessageType_ButtonAck\x10\x1b\x1a\x08\x90\xb5\x18\x01\xb0\xb5\x18\x01\x12 \n\x16MessageType_ApplyFlags\x10\x1c\x1a\x04\x90\xb5\x18\x01\x12 \n\x16MessageType_GetAddress\x10\x1d\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Address\x10\x1e\x1a\x04\x98\xb5\x18\x01\x12\"\n\x14MessageType_SelfTest\x10 \x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12\"\n\x18MessageType_BackupDevice\x10\"\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_EntropyRequest\x10#\x1a\x04\x98\xb5\x18\x01\x12 \n\x16MessageType_EntropyAck\x10$\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_SignMessage\x10&\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_VerifyMessage\x10\'\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_MessageSignature\x10(\x1a\x04\x98\xb5\x18\x01\x12\'\n\x1dMessageType_PassphraseRequest\x10)\x1a\x04\x98\xb5\x18\x01\x12\'\n\x19MessageType_PassphraseAck\x10*\x1a\x08\x90\xb5\x18\x01\xb0\xb5\x18\x01\x12&\n\x1aMessageType_EstimateTxSize\x10+\x1a\x06\x08\x01\x90\xb5\x18\x01\x12\x1e\n\x12MessageType_TxSize\x10,\x1a\x06\x08\x01\x98\xb5\x18\x01\x12$\n\x1aMessageType_RecoveryDevice\x10-\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_WordRequest\x10.\x1a\x04\x98\xb5\x18\x01\x12\x1d\n\x13MessageType_WordAck\x10/\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_CipheredKeyValue\x10\x30\x1a\x04\x98\xb5\x18\x01\x12&\n\x1aMessageType_EncryptMessage\x10\x31\x1a\x06\x08\x01\x90\xb5\x18\x01\x12(\n\x1cMessageType_EncryptedMessage\x10\x32\x1a\x06\x08\x01\x98\xb5\x18\x01\x12&\n\x1aMessageType_DecryptMessage\x10\x33\x1a\x06\x08\x01\x90\xb5\x18\x01\x12(\n\x1cMessageType_DecryptedMessage\x10\x34\x1a\x06\x08\x01\x98\xb5\x18\x01\x12\"\n\x18MessageType_SignIdentity\x10\x35\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_SignedIdentity\x10\x36\x1a\x04\x98\xb5\x18\x01\x12!\n\x17MessageType_GetFeatures\x10\x37\x1a\x04\x90\xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAddress\x10\x38\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x10\x39\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_EthereumTxRequest\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_GetECDHSessionKey\x10=\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_ECDHSessionKey\x10>\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_SetU2FCounter\x10?\x1a\x04\x90\xb5\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\x10@\x1a\x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10\x41\x1a\x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10\x42\x1a\x04\x98\xb5\x18\x01\x12+\n\x1dMessageType_DebugLinkDecision\x10\x64\x1a\x08\xa0\xb5\x18\x01\xb0\xb5\x18\x01\x12\'\n\x1dMessageType_DebugLinkGetState\x10\x65\x1a\x04\xa0\xb5\x18\x01\x12$\n\x1aMessageType_DebugLinkState\x10\x66\x1a\x04\xa8\xb5\x18\x01\x12#\n\x19MessageType_DebugLinkStop\x10g\x1a\x04\xa0\xb5\x18\x01\x12\"\n\x18MessageType_DebugLinkLog\x10h\x1a\x04\xa8\xb5\x18\x01\x12)\n\x1fMessageType_DebugLinkMemoryRead\x10n\x1a\x04\xa0\xb5\x18\x01\x12%\n\x1bMessageType_DebugLinkMemory\x10o\x1a\x04\xa8\xb5\x18\x01\x12*\n MessageType_DebugLinkMemoryWrite\x10p\x1a\x04\xa0\xb5\x18\x01\x12)\n\x1fMessageType_DebugLinkFlashErase\x10q\x1a\x04\xa0\xb5\x18\x01\x42\x34\n#com.satoshilabs.trezor.lib.protobufB\rTrezorMessage') , dependencies=[types__pb2.DESCRIPTOR,]) @@ -146,186 +146,190 @@ _MESSAGETYPE = _descriptor.EnumDescriptor( options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001\260\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_GetAddress', index=28, number=29, + name='MessageType_ApplyFlags', index=28, number=28, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_Address', index=29, number=30, + name='MessageType_GetAddress', index=29, number=29, + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), + type=None), + _descriptor.EnumValueDescriptor( + name='MessageType_Address', index=30, number=30, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_SelfTest', index=30, number=32, + name='MessageType_SelfTest', index=31, number=32, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001\270\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_BackupDevice', index=31, number=34, + name='MessageType_BackupDevice', index=32, number=34, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EntropyRequest', index=32, number=35, + name='MessageType_EntropyRequest', index=33, number=35, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EntropyAck', index=33, number=36, + name='MessageType_EntropyAck', index=34, number=36, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_SignMessage', index=34, number=38, + name='MessageType_SignMessage', index=35, number=38, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_VerifyMessage', index=35, number=39, + name='MessageType_VerifyMessage', index=36, number=39, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_MessageSignature', index=36, number=40, + name='MessageType_MessageSignature', index=37, number=40, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_PassphraseRequest', index=37, number=41, + name='MessageType_PassphraseRequest', index=38, number=41, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_PassphraseAck', index=38, number=42, + name='MessageType_PassphraseAck', index=39, number=42, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001\260\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EstimateTxSize', index=39, number=43, + name='MessageType_EstimateTxSize', index=40, number=43, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_TxSize', index=40, number=44, + name='MessageType_TxSize', index=41, number=44, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_RecoveryDevice', index=41, number=45, + name='MessageType_RecoveryDevice', index=42, number=45, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_WordRequest', index=42, number=46, + name='MessageType_WordRequest', index=43, number=46, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_WordAck', index=43, number=47, + name='MessageType_WordAck', index=44, number=47, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_CipheredKeyValue', index=44, number=48, + name='MessageType_CipheredKeyValue', index=45, number=48, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EncryptMessage', index=45, number=49, + name='MessageType_EncryptMessage', index=46, number=49, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EncryptedMessage', index=46, number=50, + name='MessageType_EncryptedMessage', index=47, number=50, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DecryptMessage', index=47, number=51, + name='MessageType_DecryptMessage', index=48, number=51, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DecryptedMessage', index=48, number=52, + name='MessageType_DecryptedMessage', index=49, number=52, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_SignIdentity', index=49, number=53, + name='MessageType_SignIdentity', index=50, number=53, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_SignedIdentity', index=50, number=54, + name='MessageType_SignedIdentity', index=51, number=54, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_GetFeatures', index=51, number=55, + name='MessageType_GetFeatures', index=52, number=55, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EthereumGetAddress', index=52, number=56, + name='MessageType_EthereumGetAddress', index=53, number=56, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EthereumAddress', index=53, number=57, + name='MessageType_EthereumAddress', index=54, number=57, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EthereumSignTx', index=54, number=58, + name='MessageType_EthereumSignTx', index=55, number=58, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EthereumTxRequest', index=55, number=59, + name='MessageType_EthereumTxRequest', index=56, number=59, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EthereumTxAck', index=56, number=60, + name='MessageType_EthereumTxAck', index=57, number=60, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_GetECDHSessionKey', index=57, number=61, + name='MessageType_GetECDHSessionKey', index=58, number=61, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_ECDHSessionKey', index=58, number=62, + name='MessageType_ECDHSessionKey', index=59, number=62, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_SetU2FCounter', index=59, number=63, + name='MessageType_SetU2FCounter', index=60, number=63, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EthereumSignMessage', index=60, number=64, + name='MessageType_EthereumSignMessage', index=61, number=64, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EthereumVerifyMessage', index=61, number=65, + name='MessageType_EthereumVerifyMessage', index=62, number=65, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_EthereumMessageSignature', index=62, number=66, + name='MessageType_EthereumMessageSignature', index=63, number=66, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DebugLinkDecision', index=63, number=100, + name='MessageType_DebugLinkDecision', index=64, number=100, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001\260\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DebugLinkGetState', index=64, number=101, + name='MessageType_DebugLinkGetState', index=65, number=101, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DebugLinkState', index=65, number=102, + name='MessageType_DebugLinkState', index=66, number=102, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\250\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DebugLinkStop', index=66, number=103, + name='MessageType_DebugLinkStop', index=67, number=103, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DebugLinkLog', index=67, number=104, + name='MessageType_DebugLinkLog', index=68, number=104, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\250\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DebugLinkMemoryRead', index=68, number=110, + name='MessageType_DebugLinkMemoryRead', index=69, number=110, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DebugLinkMemory', index=69, number=111, + name='MessageType_DebugLinkMemory', index=70, number=111, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\250\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DebugLinkMemoryWrite', index=70, number=112, + name='MessageType_DebugLinkMemoryWrite', index=71, number=112, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')), type=None), _descriptor.EnumValueDescriptor( - name='MessageType_DebugLinkFlashErase', index=71, number=113, + name='MessageType_DebugLinkFlashErase', index=72, number=113, options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')), type=None), ], containing_type=None, options=None, - serialized_start=5333, - serialized_end=8030, + serialized_start=5377, + serialized_end=8108, ) _sym_db.RegisterEnumDescriptor(_MESSAGETYPE) @@ -358,6 +362,7 @@ MessageType_ClearSession = 24 MessageType_ApplySettings = 25 MessageType_ButtonRequest = 26 MessageType_ButtonAck = 27 +MessageType_ApplyFlags = 28 MessageType_GetAddress = 29 MessageType_Address = 30 MessageType_SelfTest = 32 @@ -593,6 +598,13 @@ _FEATURES = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), + _descriptor.FieldDescriptor( + name='flags', full_name='Features.flags', index=19, + number=20, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), ], extensions=[ ], @@ -606,7 +618,7 @@ _FEATURES = _descriptor.Descriptor( oneofs=[ ], serialized_start=61, - serialized_end=491, + serialized_end=506, ) @@ -629,8 +641,8 @@ _CLEARSESSION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=493, - serialized_end=507, + serialized_start=508, + serialized_end=522, ) @@ -681,8 +693,39 @@ _APPLYSETTINGS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=509, - serialized_end=601, + serialized_start=524, + serialized_end=616, +) + + +_APPLYFLAGS = _descriptor.Descriptor( + name='ApplyFlags', + full_name='ApplyFlags', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='flags', full_name='ApplyFlags.flags', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=618, + serialized_end=645, ) @@ -712,8 +755,8 @@ _CHANGEPIN = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=603, - serialized_end=630, + serialized_start=647, + serialized_end=674, ) @@ -764,8 +807,8 @@ _PING = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=632, - serialized_end=737, + serialized_start=676, + serialized_end=781, ) @@ -795,8 +838,8 @@ _SUCCESS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=739, - serialized_end=765, + serialized_start=783, + serialized_end=809, ) @@ -833,8 +876,8 @@ _FAILURE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=767, - serialized_end=821, + serialized_start=811, + serialized_end=865, ) @@ -871,8 +914,8 @@ _BUTTONREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=823, - serialized_end=886, + serialized_start=867, + serialized_end=930, ) @@ -895,8 +938,8 @@ _BUTTONACK = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=888, - serialized_end=899, + serialized_start=932, + serialized_end=943, ) @@ -926,8 +969,8 @@ _PINMATRIXREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=901, - serialized_end=956, + serialized_start=945, + serialized_end=1000, ) @@ -957,8 +1000,8 @@ _PINMATRIXACK = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=958, - serialized_end=985, + serialized_start=1002, + serialized_end=1029, ) @@ -981,8 +1024,8 @@ _CANCEL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=987, - serialized_end=995, + serialized_start=1031, + serialized_end=1039, ) @@ -1005,8 +1048,8 @@ _PASSPHRASEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=997, - serialized_end=1016, + serialized_start=1041, + serialized_end=1060, ) @@ -1036,8 +1079,8 @@ _PASSPHRASEACK = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1018, - serialized_end=1053, + serialized_start=1062, + serialized_end=1097, ) @@ -1067,8 +1110,8 @@ _GETENTROPY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1055, - serialized_end=1081, + serialized_start=1099, + serialized_end=1125, ) @@ -1098,8 +1141,8 @@ _ENTROPY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1083, - serialized_end=1109, + serialized_start=1127, + serialized_end=1153, ) @@ -1150,8 +1193,8 @@ _GETPUBLICKEY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1111, - serialized_end=1220, + serialized_start=1155, + serialized_end=1264, ) @@ -1188,8 +1231,8 @@ _PUBLICKEY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1222, - serialized_end=1274, + serialized_start=1266, + serialized_end=1318, ) @@ -1247,8 +1290,8 @@ _GETADDRESS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1277, - serialized_end=1456, + serialized_start=1321, + serialized_end=1500, ) @@ -1285,8 +1328,8 @@ _ETHEREUMGETADDRESS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1458, - serialized_end=1519, + serialized_start=1502, + serialized_end=1563, ) @@ -1316,8 +1359,8 @@ _ADDRESS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1521, - serialized_end=1547, + serialized_start=1565, + serialized_end=1591, ) @@ -1347,8 +1390,8 @@ _ETHEREUMADDRESS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1549, - serialized_end=1583, + serialized_start=1593, + serialized_end=1627, ) @@ -1371,8 +1414,8 @@ _WIPEDEVICE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1585, - serialized_end=1597, + serialized_start=1629, + serialized_end=1641, ) @@ -1451,8 +1494,8 @@ _LOADDEVICE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1600, - serialized_end=1787, + serialized_start=1644, + serialized_end=1831, ) @@ -1531,8 +1574,8 @@ _RESETDEVICE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1790, - serialized_end=1989, + serialized_start=1834, + serialized_end=2033, ) @@ -1555,8 +1598,8 @@ _BACKUPDEVICE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1991, - serialized_end=2005, + serialized_start=2035, + serialized_end=2049, ) @@ -1579,8 +1622,8 @@ _ENTROPYREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2007, - serialized_end=2023, + serialized_start=2051, + serialized_end=2067, ) @@ -1610,8 +1653,8 @@ _ENTROPYACK = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2025, - serialized_end=2054, + serialized_start=2069, + serialized_end=2098, ) @@ -1697,8 +1740,8 @@ _RECOVERYDEVICE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2057, - serialized_end=2268, + serialized_start=2101, + serialized_end=2312, ) @@ -1728,8 +1771,8 @@ _WORDREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2270, - serialized_end=2315, + serialized_start=2314, + serialized_end=2359, ) @@ -1759,8 +1802,8 @@ _WORDACK = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2317, - serialized_end=2340, + serialized_start=2361, + serialized_end=2384, ) @@ -1804,8 +1847,8 @@ _SIGNMESSAGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2342, - serialized_end=2419, + serialized_start=2386, + serialized_end=2463, ) @@ -1856,8 +1899,8 @@ _VERIFYMESSAGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2421, - serialized_end=2517, + serialized_start=2465, + serialized_end=2561, ) @@ -1894,8 +1937,8 @@ _MESSAGESIGNATURE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2519, - serialized_end=2573, + serialized_start=2563, + serialized_end=2617, ) @@ -1953,8 +1996,8 @@ _ENCRYPTMESSAGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2575, - serialized_end=2693, + serialized_start=2619, + serialized_end=2737, ) @@ -1998,8 +2041,8 @@ _ENCRYPTEDMESSAGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2695, - serialized_end=2759, + serialized_start=2739, + serialized_end=2803, ) @@ -2050,8 +2093,8 @@ _DECRYPTMESSAGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2761, - serialized_end=2842, + serialized_start=2805, + serialized_end=2886, ) @@ -2088,8 +2131,8 @@ _DECRYPTEDMESSAGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2844, - serialized_end=2896, + serialized_start=2888, + serialized_end=2940, ) @@ -2161,8 +2204,8 @@ _CIPHERKEYVALUE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2899, - serialized_end=3039, + serialized_start=2943, + serialized_end=3083, ) @@ -2192,8 +2235,8 @@ _CIPHEREDKEYVALUE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3041, - serialized_end=3074, + serialized_start=3085, + serialized_end=3118, ) @@ -2237,8 +2280,8 @@ _ESTIMATETXSIZE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3076, - serialized_end=3165, + serialized_start=3120, + serialized_end=3209, ) @@ -2268,8 +2311,8 @@ _TXSIZE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3167, - serialized_end=3192, + serialized_start=3211, + serialized_end=3236, ) @@ -2327,8 +2370,8 @@ _SIGNTX = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3194, - serialized_end=3317, + serialized_start=3238, + serialized_end=3361, ) @@ -2393,8 +2436,8 @@ _SIMPLESIGNTX = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3320, - serialized_end=3506, + serialized_start=3364, + serialized_end=3550, ) @@ -2438,8 +2481,8 @@ _TXREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3509, - serialized_end=3642, + serialized_start=3553, + serialized_end=3686, ) @@ -2469,8 +2512,8 @@ _TXACK = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3644, - serialized_end=3681, + serialized_start=3688, + serialized_end=3725, ) @@ -2556,8 +2599,8 @@ _ETHEREUMSIGNTX = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3684, - serialized_end=3866, + serialized_start=3728, + serialized_end=3910, ) @@ -2608,8 +2651,8 @@ _ETHEREUMTXREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3868, - serialized_end=3971, + serialized_start=3912, + serialized_end=4015, ) @@ -2639,8 +2682,8 @@ _ETHEREUMTXACK = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3973, - serialized_end=4008, + serialized_start=4017, + serialized_end=4052, ) @@ -2677,8 +2720,8 @@ _ETHEREUMSIGNMESSAGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4010, - serialized_end=4067, + serialized_start=4054, + serialized_end=4111, ) @@ -2722,8 +2765,8 @@ _ETHEREUMVERIFYMESSAGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4069, - serialized_end=4145, + serialized_start=4113, + serialized_end=4189, ) @@ -2760,8 +2803,8 @@ _ETHEREUMMESSAGESIGNATURE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4147, - serialized_end=4209, + serialized_start=4191, + serialized_end=4253, ) @@ -2812,8 +2855,8 @@ _SIGNIDENTITY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4211, - serialized_end=4336, + serialized_start=4255, + serialized_end=4380, ) @@ -2857,8 +2900,8 @@ _SIGNEDIDENTITY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4338, - serialized_end=4410, + serialized_start=4382, + serialized_end=4454, ) @@ -2902,8 +2945,8 @@ _GETECDHSESSIONKEY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4412, - serialized_end=4515, + serialized_start=4456, + serialized_end=4559, ) @@ -2933,8 +2976,8 @@ _ECDHSESSIONKEY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4517, - serialized_end=4554, + serialized_start=4561, + serialized_end=4598, ) @@ -2964,8 +3007,8 @@ _SETU2FCOUNTER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4556, - serialized_end=4592, + serialized_start=4600, + serialized_end=4636, ) @@ -2995,8 +3038,8 @@ _FIRMWAREERASE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4594, - serialized_end=4625, + serialized_start=4638, + serialized_end=4669, ) @@ -3033,8 +3076,8 @@ _FIRMWAREREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4627, - serialized_end=4676, + serialized_start=4671, + serialized_end=4720, ) @@ -3071,8 +3114,8 @@ _FIRMWAREUPLOAD = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4678, - serialized_end=4725, + serialized_start=4722, + serialized_end=4769, ) @@ -3102,8 +3145,8 @@ _SELFTEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4727, - serialized_end=4754, + serialized_start=4771, + serialized_end=4798, ) @@ -3133,8 +3176,8 @@ _DEBUGLINKDECISION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4756, - serialized_end=4791, + serialized_start=4800, + serialized_end=4835, ) @@ -3157,8 +3200,8 @@ _DEBUGLINKGETSTATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4793, - serialized_end=4812, + serialized_start=4837, + serialized_end=4856, ) @@ -3251,8 +3294,8 @@ _DEBUGLINKSTATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4815, - serialized_end=5050, + serialized_start=4859, + serialized_end=5094, ) @@ -3275,8 +3318,8 @@ _DEBUGLINKSTOP = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5052, - serialized_end=5067, + serialized_start=5096, + serialized_end=5111, ) @@ -3320,8 +3363,8 @@ _DEBUGLINKLOG = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5069, - serialized_end=5128, + serialized_start=5113, + serialized_end=5172, ) @@ -3358,8 +3401,8 @@ _DEBUGLINKMEMORYREAD = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5130, - serialized_end=5184, + serialized_start=5174, + serialized_end=5228, ) @@ -3389,8 +3432,8 @@ _DEBUGLINKMEMORY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5186, - serialized_end=5219, + serialized_start=5230, + serialized_end=5263, ) @@ -3434,8 +3477,8 @@ _DEBUGLINKMEMORYWRITE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5221, - serialized_end=5291, + serialized_start=5265, + serialized_end=5335, ) @@ -3465,8 +3508,8 @@ _DEBUGLINKFLASHERASE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5293, - serialized_end=5330, + serialized_start=5337, + serialized_end=5374, ) _FEATURES.fields_by_name['coins'].message_type = types__pb2._COINTYPE @@ -3493,6 +3536,7 @@ DESCRIPTOR.message_types_by_name['GetFeatures'] = _GETFEATURES DESCRIPTOR.message_types_by_name['Features'] = _FEATURES DESCRIPTOR.message_types_by_name['ClearSession'] = _CLEARSESSION DESCRIPTOR.message_types_by_name['ApplySettings'] = _APPLYSETTINGS +DESCRIPTOR.message_types_by_name['ApplyFlags'] = _APPLYFLAGS DESCRIPTOR.message_types_by_name['ChangePin'] = _CHANGEPIN DESCRIPTOR.message_types_by_name['Ping'] = _PING DESCRIPTOR.message_types_by_name['Success'] = _SUCCESS @@ -3598,6 +3642,13 @@ ApplySettings = _reflection.GeneratedProtocolMessageType('ApplySettings', (_mess )) _sym_db.RegisterMessage(ApplySettings) +ApplyFlags = _reflection.GeneratedProtocolMessageType('ApplyFlags', (_message.Message,), dict( + DESCRIPTOR = _APPLYFLAGS, + __module__ = 'messages_pb2' + # @@protoc_insertion_point(class_scope:ApplyFlags) + )) +_sym_db.RegisterMessage(ApplyFlags) + ChangePin = _reflection.GeneratedProtocolMessageType('ChangePin', (_message.Message,), dict( DESCRIPTOR = _CHANGEPIN, __module__ = 'messages_pb2' @@ -4126,6 +4177,8 @@ _MESSAGETYPE.values_by_name["MessageType_ButtonRequest"].has_options = True _MESSAGETYPE.values_by_name["MessageType_ButtonRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_ButtonAck"].has_options = True _MESSAGETYPE.values_by_name["MessageType_ButtonAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001\260\265\030\001')) +_MESSAGETYPE.values_by_name["MessageType_ApplyFlags"].has_options = True +_MESSAGETYPE.values_by_name["MessageType_ApplyFlags"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_GetAddress"].has_options = True _MESSAGETYPE.values_by_name["MessageType_GetAddress"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_Address"].has_options = True diff --git a/trezorlib/types_pb2.py b/trezorlib/types_pb2.py index 1d6966d2d5..f49578feeb 100644 --- a/trezorlib/types_pb2.py +++ b/trezorlib/types_pb2.py @@ -1,7 +1,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: types.proto # libprotoc 3.3.0 -# trezor-common b29b98d69ba43571dcbe54dc927aa3ecd2b95113 +# trezor-common 2eb9c7e352f708506d910f2d5b9aac1e85cafa10 import sys _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))