From 694452c861ee7d7f6dead653d9cf156730d8f445 Mon Sep 17 00:00:00 2001 From: slush Date: Thu, 13 Dec 2012 18:47:37 +0000 Subject: [PATCH] Added ButtonRequest, ButtonAck, ButtonCancel messages --- bitkeylib/bitkey_pb2.py | 1354 +++++++++++++++++++++++++++++++++++++++ bitkeylib/mapping.py | 3 + protobuf/bitkey.proto | 15 + 3 files changed, 1372 insertions(+) create mode 100644 bitkeylib/bitkey_pb2.py diff --git a/bitkeylib/bitkey_pb2.py b/bitkeylib/bitkey_pb2.py new file mode 100644 index 000000000..f634fda53 --- /dev/null +++ b/bitkeylib/bitkey_pb2.py @@ -0,0 +1,1354 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! + +from google.protobuf import descriptor +from google.protobuf import message +from google.protobuf import reflection +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + + + +DESCRIPTOR = descriptor.FileDescriptor( + name='bitkey.proto', + package='', + serialized_pb='\n\x0c\x62itkey.proto\" \n\nInitialize\x12\x12\n\nsession_id\x18\x01 \x02(\x0c\"\xc4\x01\n\x08\x46\x65\x61tures\x12\x12\n\nsession_id\x18\x01 \x02(\x0c\x12\x0e\n\x06vendor\x18\x02 \x01(\t\x12\x15\n\rmajor_version\x18\x03 \x01(\r\x12\x15\n\rminor_version\x18\x04 \x01(\r\x12\x0b\n\x03otp\x18\x05 \x01(\x08\x12\x0b\n\x03pin\x18\x06 \x01(\x08\x12\x0b\n\x03spv\x18\x07 \x01(\x08\x12\x11\n\tmaxfee_kb\x18\x08 \x01(\x04\x12\x18\n\x04\x61lgo\x18\t \x03(\x0e\x32\n.Algorithm\x12\x12\n\ndebug_link\x18\n \x01(\x08\"\x17\n\x04Ping\x12\x0f\n\x07message\x18\x01 \x01(\t\"#\n\x11\x44\x65\x62ugLinkDecision\x12\x0e\n\x06yes_no\x18\x01 \x02(\x08\"K\n\x11\x44\x65\x62ugLinkGetState\x12\x0e\n\x06layout\x18\x01 \x01(\x08\x12\x0b\n\x03otp\x18\x02 \x01(\x08\x12\x0b\n\x03pin\x18\x03 \x01(\x08\x12\x0c\n\x04seed\x18\x04 \x01(\x08\"Z\n\x0e\x44\x65\x62ugLinkState\x12\x0e\n\x06layout\x18\x01 \x01(\x0c\x12\x14\n\x03otp\x18\x02 \x01(\x0b\x32\x07.OtpAck\x12\x14\n\x03pin\x18\x03 \x01(\x0b\x32\x07.PinAck\x12\x0c\n\x04seed\x18\x04 \x01(\t\"\x1a\n\x07Success\x12\x0f\n\x07message\x18\x01 \x01(\t\"(\n\x07\x46\x61ilure\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\"\t\n\x07GetUUID\"\x14\n\x04UUID\x12\x0c\n\x04UUID\x18\x01 \x02(\x0c\"\x0f\n\rButtonRequest\"\x0b\n\tButtonAck\"\x0e\n\x0c\x42uttonCancel\"\x1d\n\nOtpRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x15\n\x06OtpAck\x12\x0b\n\x03otp\x18\x01 \x02(\t\"\x0b\n\tOtpCancel\"\x1d\n\nPinRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x15\n\x06PinAck\x12\x0b\n\x03pin\x18\x01 \x02(\t\"\x0b\n\tPinCancel\"\x1a\n\nGetEntropy\x12\x0c\n\x04size\x18\x01 \x02(\r\"\x1a\n\x07\x45ntropy\x12\x0f\n\x07\x65ntropy\x18\x01 \x02(\x0c\" \n\x0bSetMaxFeeKb\x12\x11\n\tmaxfee_kb\x18\x01 \x02(\x04\"5\n\x12GetMasterPublicKey\x12\x1f\n\x04\x61lgo\x18\x01 \x02(\x0e\x32\n.Algorithm:\x05\x42IP32\"\x1e\n\x0fMasterPublicKey\x12\x0b\n\x03key\x18\x01 \x02(\x0c\"M\n\nLoadDevice\x12\x0c\n\x04seed\x18\x01 \x02(\t\x12\x11\n\x03otp\x18\x02 \x01(\x08:\x04true\x12\x0b\n\x03pin\x18\x03 \x01(\t\x12\x11\n\x03spv\x18\x04 \x01(\x08:\x04true\"\x1d\n\x0bResetDevice\x12\x0e\n\x06random\x18\x07 \x01(\x0c\"f\n\x06SignTx\x12\x1f\n\x04\x61lgo\x18\x01 \x02(\x0e\x32\n.Algorithm:\x05\x42IP32\x12\x15\n\routputs_count\x18\x03 \x03(\r\x12\x14\n\x0cinputs_count\x18\x05 \x03(\r\x12\x0e\n\x06random\x18\x06 \x01(\x0c\"N\n\x0cInputRequest\x12\x15\n\rrequest_index\x18\x01 \x01(\r\x12\x14\n\x0csigned_index\x18\x02 \x01(\r\x12\x11\n\tsignature\x18\x03 \x01(\x0c\"&\n\rOutputRequest\x12\x15\n\rrequest_index\x18\x01 \x02(\r\"v\n\x07TxInput\x12\r\n\x05index\x18\x01 \x02(\r\x12\x11\n\taddress_n\x18\x02 \x03(\r\x12\x0e\n\x06\x61mount\x18\x03 \x02(\x04\x12\x11\n\tprev_hash\x18\x04 \x02(\x0c\x12\x12\n\nprev_index\x18\x05 \x02(\r\x12\x12\n\nscript_sig\x18\x06 \x01(\x0c\"\x84\x01\n\x08TxOutput\x12\r\n\x05index\x18\x01 \x02(\r\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x02(\t\x12\x11\n\taddress_n\x18\x03 \x03(\r\x12\x0e\n\x06\x61mount\x18\x04 \x02(\x04\x12 \n\x0bscript_type\x18\x05 \x02(\x0e\x32\x0b.ScriptType\x12\x13\n\x0bscript_args\x18\x06 \x03(\x0c*$\n\tAlgorithm\x12\t\n\x05\x42IP32\x10\x00\x12\x0c\n\x08\x45LECTRUM\x10\x01*3\n\nScriptType\x12\x10\n\x0cPAYTOADDRESS\x10\x00\x12\x13\n\x0fPAYTOSCRIPTHASH\x10\x01') + +_ALGORITHM = descriptor.EnumDescriptor( + name='Algorithm', + full_name='Algorithm', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='BIP32', index=0, number=0, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='ELECTRUM', index=1, number=1, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=1529, + serialized_end=1565, +) + + +_SCRIPTTYPE = descriptor.EnumDescriptor( + name='ScriptType', + full_name='ScriptType', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='PAYTOADDRESS', index=0, number=0, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='PAYTOSCRIPTHASH', index=1, number=1, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=1567, + serialized_end=1618, +) + + +BIP32 = 0 +ELECTRUM = 1 +PAYTOADDRESS = 0 +PAYTOSCRIPTHASH = 1 + + + +_INITIALIZE = descriptor.Descriptor( + name='Initialize', + full_name='Initialize', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='session_id', full_name='Initialize.session_id', index=0, + number=1, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + 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, + extension_ranges=[], + serialized_start=16, + serialized_end=48, +) + + +_FEATURES = descriptor.Descriptor( + name='Features', + full_name='Features', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='session_id', full_name='Features.session_id', index=0, + number=1, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='vendor', full_name='Features.vendor', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='major_version', full_name='Features.major_version', index=2, + number=3, 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), + descriptor.FieldDescriptor( + name='minor_version', full_name='Features.minor_version', index=3, + number=4, 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), + descriptor.FieldDescriptor( + name='otp', full_name='Features.otp', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='pin', full_name='Features.pin', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='spv', full_name='Features.spv', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='maxfee_kb', full_name='Features.maxfee_kb', index=7, + number=8, type=4, cpp_type=4, 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), + descriptor.FieldDescriptor( + name='algo', full_name='Features.algo', index=8, + number=9, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='debug_link', full_name='Features.debug_link', index=9, + number=10, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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, + extension_ranges=[], + serialized_start=51, + serialized_end=247, +) + + +_PING = descriptor.Descriptor( + name='Ping', + full_name='Ping', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='message', full_name='Ping.message', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + 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, + extension_ranges=[], + serialized_start=249, + serialized_end=272, +) + + +_DEBUGLINKDECISION = descriptor.Descriptor( + name='DebugLinkDecision', + full_name='DebugLinkDecision', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='yes_no', full_name='DebugLinkDecision.yes_no', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + 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, + extension_ranges=[], + serialized_start=274, + serialized_end=309, +) + + +_DEBUGLINKGETSTATE = descriptor.Descriptor( + name='DebugLinkGetState', + full_name='DebugLinkGetState', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='layout', full_name='DebugLinkGetState.layout', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='otp', full_name='DebugLinkGetState.otp', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='pin', full_name='DebugLinkGetState.pin', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='seed', full_name='DebugLinkGetState.seed', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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, + extension_ranges=[], + serialized_start=311, + serialized_end=386, +) + + +_DEBUGLINKSTATE = descriptor.Descriptor( + name='DebugLinkState', + full_name='DebugLinkState', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='layout', full_name='DebugLinkState.layout', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='otp', full_name='DebugLinkState.otp', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='pin', full_name='DebugLinkState.pin', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='seed', full_name='DebugLinkState.seed', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + 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, + extension_ranges=[], + serialized_start=388, + serialized_end=478, +) + + +_SUCCESS = descriptor.Descriptor( + name='Success', + full_name='Success', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='message', full_name='Success.message', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + 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, + extension_ranges=[], + serialized_start=480, + serialized_end=506, +) + + +_FAILURE = descriptor.Descriptor( + name='Failure', + full_name='Failure', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='code', full_name='Failure.code', index=0, + number=1, type=5, cpp_type=1, 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), + descriptor.FieldDescriptor( + name='message', full_name='Failure.message', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + 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, + extension_ranges=[], + serialized_start=508, + serialized_end=548, +) + + +_GETUUID = descriptor.Descriptor( + name='GetUUID', + full_name='GetUUID', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=550, + serialized_end=559, +) + + +_UUID = descriptor.Descriptor( + name='UUID', + full_name='UUID', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='UUID', full_name='UUID.UUID', index=0, + number=1, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + 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, + extension_ranges=[], + serialized_start=561, + serialized_end=581, +) + + +_BUTTONREQUEST = descriptor.Descriptor( + name='ButtonRequest', + full_name='ButtonRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=583, + serialized_end=598, +) + + +_BUTTONACK = descriptor.Descriptor( + name='ButtonAck', + full_name='ButtonAck', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=600, + serialized_end=611, +) + + +_BUTTONCANCEL = descriptor.Descriptor( + name='ButtonCancel', + full_name='ButtonCancel', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=613, + serialized_end=627, +) + + +_OTPREQUEST = descriptor.Descriptor( + name='OtpRequest', + full_name='OtpRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='message', full_name='OtpRequest.message', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + 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, + extension_ranges=[], + serialized_start=629, + serialized_end=658, +) + + +_OTPACK = descriptor.Descriptor( + name='OtpAck', + full_name='OtpAck', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='otp', full_name='OtpAck.otp', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + 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, + extension_ranges=[], + serialized_start=660, + serialized_end=681, +) + + +_OTPCANCEL = descriptor.Descriptor( + name='OtpCancel', + full_name='OtpCancel', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=683, + serialized_end=694, +) + + +_PINREQUEST = descriptor.Descriptor( + name='PinRequest', + full_name='PinRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='message', full_name='PinRequest.message', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + 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, + extension_ranges=[], + serialized_start=696, + serialized_end=725, +) + + +_PINACK = descriptor.Descriptor( + name='PinAck', + full_name='PinAck', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='pin', full_name='PinAck.pin', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + 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, + extension_ranges=[], + serialized_start=727, + serialized_end=748, +) + + +_PINCANCEL = descriptor.Descriptor( + name='PinCancel', + full_name='PinCancel', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=750, + serialized_end=761, +) + + +_GETENTROPY = descriptor.Descriptor( + name='GetEntropy', + full_name='GetEntropy', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='size', full_name='GetEntropy.size', index=0, + number=1, type=13, cpp_type=3, label=2, + 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, + extension_ranges=[], + serialized_start=763, + serialized_end=789, +) + + +_ENTROPY = descriptor.Descriptor( + name='Entropy', + full_name='Entropy', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='entropy', full_name='Entropy.entropy', index=0, + number=1, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + 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, + extension_ranges=[], + serialized_start=791, + serialized_end=817, +) + + +_SETMAXFEEKB = descriptor.Descriptor( + name='SetMaxFeeKb', + full_name='SetMaxFeeKb', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='maxfee_kb', full_name='SetMaxFeeKb.maxfee_kb', index=0, + number=1, type=4, cpp_type=4, label=2, + 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, + extension_ranges=[], + serialized_start=819, + serialized_end=851, +) + + +_GETMASTERPUBLICKEY = descriptor.Descriptor( + name='GetMasterPublicKey', + full_name='GetMasterPublicKey', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='algo', full_name='GetMasterPublicKey.algo', index=0, + number=1, type=14, cpp_type=8, label=2, + has_default_value=True, 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, + extension_ranges=[], + serialized_start=853, + serialized_end=906, +) + + +_MASTERPUBLICKEY = descriptor.Descriptor( + name='MasterPublicKey', + full_name='MasterPublicKey', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='key', full_name='MasterPublicKey.key', index=0, + number=1, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + 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, + extension_ranges=[], + serialized_start=908, + serialized_end=938, +) + + +_LOADDEVICE = descriptor.Descriptor( + name='LoadDevice', + full_name='LoadDevice', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='seed', full_name='LoadDevice.seed', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='otp', full_name='LoadDevice.otp', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='pin', full_name='LoadDevice.pin', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='spv', full_name='LoadDevice.spv', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + 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, + extension_ranges=[], + serialized_start=940, + serialized_end=1017, +) + + +_RESETDEVICE = descriptor.Descriptor( + name='ResetDevice', + full_name='ResetDevice', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='random', full_name='ResetDevice.random', index=0, + number=7, type=12, cpp_type=9, label=1, + has_default_value=False, default_value="", + 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, + extension_ranges=[], + serialized_start=1019, + serialized_end=1048, +) + + +_SIGNTX = descriptor.Descriptor( + name='SignTx', + full_name='SignTx', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='algo', full_name='SignTx.algo', index=0, + number=1, type=14, cpp_type=8, label=2, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='outputs_count', full_name='SignTx.outputs_count', index=1, + number=3, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='inputs_count', full_name='SignTx.inputs_count', index=2, + number=5, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='random', full_name='SignTx.random', index=3, + number=6, type=12, cpp_type=9, label=1, + has_default_value=False, default_value="", + 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, + extension_ranges=[], + serialized_start=1050, + serialized_end=1152, +) + + +_INPUTREQUEST = descriptor.Descriptor( + name='InputRequest', + full_name='InputRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='request_index', full_name='InputRequest.request_index', 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), + descriptor.FieldDescriptor( + name='signed_index', full_name='InputRequest.signed_index', index=1, + number=2, 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), + descriptor.FieldDescriptor( + name='signature', full_name='InputRequest.signature', index=2, + number=3, type=12, cpp_type=9, label=1, + has_default_value=False, default_value="", + 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, + extension_ranges=[], + serialized_start=1154, + serialized_end=1232, +) + + +_OUTPUTREQUEST = descriptor.Descriptor( + name='OutputRequest', + full_name='OutputRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='request_index', full_name='OutputRequest.request_index', index=0, + number=1, type=13, cpp_type=3, label=2, + 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, + extension_ranges=[], + serialized_start=1234, + serialized_end=1272, +) + + +_TXINPUT = descriptor.Descriptor( + name='TxInput', + full_name='TxInput', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='index', full_name='TxInput.index', index=0, + number=1, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='address_n', full_name='TxInput.address_n', index=1, + number=2, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='amount', full_name='TxInput.amount', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='prev_hash', full_name='TxInput.prev_hash', index=3, + number=4, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='prev_index', full_name='TxInput.prev_index', index=4, + number=5, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='script_sig', full_name='TxInput.script_sig', index=5, + number=6, type=12, cpp_type=9, label=1, + has_default_value=False, default_value="", + 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, + extension_ranges=[], + serialized_start=1274, + serialized_end=1392, +) + + +_TXOUTPUT = descriptor.Descriptor( + name='TxOutput', + full_name='TxOutput', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='index', full_name='TxOutput.index', index=0, + number=1, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='address', full_name='TxOutput.address', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='address_n', full_name='TxOutput.address_n', index=2, + number=3, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='amount', full_name='TxOutput.amount', index=3, + number=4, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='script_type', full_name='TxOutput.script_type', index=4, + number=5, type=14, cpp_type=8, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='script_args', full_name='TxOutput.script_args', index=5, + number=6, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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, + extension_ranges=[], + serialized_start=1395, + serialized_end=1527, +) + +_FEATURES.fields_by_name['algo'].enum_type = _ALGORITHM +_DEBUGLINKSTATE.fields_by_name['otp'].message_type = _OTPACK +_DEBUGLINKSTATE.fields_by_name['pin'].message_type = _PINACK +_GETMASTERPUBLICKEY.fields_by_name['algo'].enum_type = _ALGORITHM +_SIGNTX.fields_by_name['algo'].enum_type = _ALGORITHM +_TXOUTPUT.fields_by_name['script_type'].enum_type = _SCRIPTTYPE +DESCRIPTOR.message_types_by_name['Initialize'] = _INITIALIZE +DESCRIPTOR.message_types_by_name['Features'] = _FEATURES +DESCRIPTOR.message_types_by_name['Ping'] = _PING +DESCRIPTOR.message_types_by_name['DebugLinkDecision'] = _DEBUGLINKDECISION +DESCRIPTOR.message_types_by_name['DebugLinkGetState'] = _DEBUGLINKGETSTATE +DESCRIPTOR.message_types_by_name['DebugLinkState'] = _DEBUGLINKSTATE +DESCRIPTOR.message_types_by_name['Success'] = _SUCCESS +DESCRIPTOR.message_types_by_name['Failure'] = _FAILURE +DESCRIPTOR.message_types_by_name['GetUUID'] = _GETUUID +DESCRIPTOR.message_types_by_name['UUID'] = _UUID +DESCRIPTOR.message_types_by_name['ButtonRequest'] = _BUTTONREQUEST +DESCRIPTOR.message_types_by_name['ButtonAck'] = _BUTTONACK +DESCRIPTOR.message_types_by_name['ButtonCancel'] = _BUTTONCANCEL +DESCRIPTOR.message_types_by_name['OtpRequest'] = _OTPREQUEST +DESCRIPTOR.message_types_by_name['OtpAck'] = _OTPACK +DESCRIPTOR.message_types_by_name['OtpCancel'] = _OTPCANCEL +DESCRIPTOR.message_types_by_name['PinRequest'] = _PINREQUEST +DESCRIPTOR.message_types_by_name['PinAck'] = _PINACK +DESCRIPTOR.message_types_by_name['PinCancel'] = _PINCANCEL +DESCRIPTOR.message_types_by_name['GetEntropy'] = _GETENTROPY +DESCRIPTOR.message_types_by_name['Entropy'] = _ENTROPY +DESCRIPTOR.message_types_by_name['SetMaxFeeKb'] = _SETMAXFEEKB +DESCRIPTOR.message_types_by_name['GetMasterPublicKey'] = _GETMASTERPUBLICKEY +DESCRIPTOR.message_types_by_name['MasterPublicKey'] = _MASTERPUBLICKEY +DESCRIPTOR.message_types_by_name['LoadDevice'] = _LOADDEVICE +DESCRIPTOR.message_types_by_name['ResetDevice'] = _RESETDEVICE +DESCRIPTOR.message_types_by_name['SignTx'] = _SIGNTX +DESCRIPTOR.message_types_by_name['InputRequest'] = _INPUTREQUEST +DESCRIPTOR.message_types_by_name['OutputRequest'] = _OUTPUTREQUEST +DESCRIPTOR.message_types_by_name['TxInput'] = _TXINPUT +DESCRIPTOR.message_types_by_name['TxOutput'] = _TXOUTPUT + +class Initialize(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _INITIALIZE + + # @@protoc_insertion_point(class_scope:Initialize) + +class Features(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _FEATURES + + # @@protoc_insertion_point(class_scope:Features) + +class Ping(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _PING + + # @@protoc_insertion_point(class_scope:Ping) + +class DebugLinkDecision(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DEBUGLINKDECISION + + # @@protoc_insertion_point(class_scope:DebugLinkDecision) + +class DebugLinkGetState(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DEBUGLINKGETSTATE + + # @@protoc_insertion_point(class_scope:DebugLinkGetState) + +class DebugLinkState(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DEBUGLINKSTATE + + # @@protoc_insertion_point(class_scope:DebugLinkState) + +class Success(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SUCCESS + + # @@protoc_insertion_point(class_scope:Success) + +class Failure(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _FAILURE + + # @@protoc_insertion_point(class_scope:Failure) + +class GetUUID(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETUUID + + # @@protoc_insertion_point(class_scope:GetUUID) + +class UUID(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _UUID + + # @@protoc_insertion_point(class_scope:UUID) + +class ButtonRequest(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _BUTTONREQUEST + + # @@protoc_insertion_point(class_scope:ButtonRequest) + +class ButtonAck(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _BUTTONACK + + # @@protoc_insertion_point(class_scope:ButtonAck) + +class ButtonCancel(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _BUTTONCANCEL + + # @@protoc_insertion_point(class_scope:ButtonCancel) + +class OtpRequest(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _OTPREQUEST + + # @@protoc_insertion_point(class_scope:OtpRequest) + +class OtpAck(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _OTPACK + + # @@protoc_insertion_point(class_scope:OtpAck) + +class OtpCancel(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _OTPCANCEL + + # @@protoc_insertion_point(class_scope:OtpCancel) + +class PinRequest(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _PINREQUEST + + # @@protoc_insertion_point(class_scope:PinRequest) + +class PinAck(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _PINACK + + # @@protoc_insertion_point(class_scope:PinAck) + +class PinCancel(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _PINCANCEL + + # @@protoc_insertion_point(class_scope:PinCancel) + +class GetEntropy(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETENTROPY + + # @@protoc_insertion_point(class_scope:GetEntropy) + +class Entropy(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _ENTROPY + + # @@protoc_insertion_point(class_scope:Entropy) + +class SetMaxFeeKb(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETMAXFEEKB + + # @@protoc_insertion_point(class_scope:SetMaxFeeKb) + +class GetMasterPublicKey(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETMASTERPUBLICKEY + + # @@protoc_insertion_point(class_scope:GetMasterPublicKey) + +class MasterPublicKey(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _MASTERPUBLICKEY + + # @@protoc_insertion_point(class_scope:MasterPublicKey) + +class LoadDevice(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _LOADDEVICE + + # @@protoc_insertion_point(class_scope:LoadDevice) + +class ResetDevice(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RESETDEVICE + + # @@protoc_insertion_point(class_scope:ResetDevice) + +class SignTx(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SIGNTX + + # @@protoc_insertion_point(class_scope:SignTx) + +class InputRequest(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _INPUTREQUEST + + # @@protoc_insertion_point(class_scope:InputRequest) + +class OutputRequest(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _OUTPUTREQUEST + + # @@protoc_insertion_point(class_scope:OutputRequest) + +class TxInput(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _TXINPUT + + # @@protoc_insertion_point(class_scope:TxInput) + +class TxOutput(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _TXOUTPUT + + # @@protoc_insertion_point(class_scope:TxOutput) + +# @@protoc_insertion_point(module_scope) diff --git a/bitkeylib/mapping.py b/bitkeylib/mapping.py index 87f0cae1f..a671689c0 100644 --- a/bitkeylib/mapping.py +++ b/bitkeylib/mapping.py @@ -27,6 +27,9 @@ map_type_to_class = { 23: proto.TxInput, 24: proto.TxOutput, 25: proto.SetMaxFeeKb, + 26: proto.ButtonRequest, + 27: proto.ButtonAck, + 28: proto.ButtonCancel, 100: proto.DebugLinkDecision, 101: proto.DebugLinkGetState, 102: proto.DebugLinkState, diff --git a/protobuf/bitkey.proto b/protobuf/bitkey.proto index 9935a9150..302b0256f 100644 --- a/protobuf/bitkey.proto +++ b/protobuf/bitkey.proto @@ -95,6 +95,21 @@ message UUID { required bytes UUID = 1; } +// Message can be sent by the *device* as a resopnse to any request. +// Device is waiting for HW button press. No action is required from computer +// Computer should respond with ButtonAck message or ButtonCancel to cancel +// the original request. +message ButtonRequest { +} + +// Computer agrees to wait for HW button press. +message ButtonAck { +} + +// Computer want to cancel current action (don't wait to HW button press) +message ButtonCancel { +} + // Message can be sent by the *device* as a response to any request. // Message asks computer to send back OtpAck with the password printed on the device's display. //