/* Automatically generated nanopb header */ /* Generated by nanopb-0.2.8 */ #ifndef _PB_MESSAGES_PB_H_ #define _PB_MESSAGES_PB_H_ #include "pb.h" #include "types.pb.h" #ifdef __cplusplus extern "C" { #endif /* Enum definitions */ typedef enum _MessageType { MessageType_MessageType_Initialize = 0, MessageType_MessageType_Ping = 1, MessageType_MessageType_Success = 2, MessageType_MessageType_Failure = 3, MessageType_MessageType_ChangePin = 4, MessageType_MessageType_WipeDevice = 5, MessageType_MessageType_FirmwareErase = 6, MessageType_MessageType_FirmwareUpload = 7, MessageType_MessageType_GetEntropy = 9, MessageType_MessageType_Entropy = 10, MessageType_MessageType_GetPublicKey = 11, MessageType_MessageType_PublicKey = 12, MessageType_MessageType_LoadDevice = 13, MessageType_MessageType_ResetDevice = 14, MessageType_MessageType_SignTx = 15, MessageType_MessageType_SimpleSignTx = 16, MessageType_MessageType_Features = 17, MessageType_MessageType_PinMatrixRequest = 18, MessageType_MessageType_PinMatrixAck = 19, MessageType_MessageType_Cancel = 20, MessageType_MessageType_TxRequest = 21, MessageType_MessageType_TxAck = 22, MessageType_MessageType_CipherKeyValue = 23, MessageType_MessageType_ClearSession = 24, MessageType_MessageType_ApplySettings = 25, MessageType_MessageType_ButtonRequest = 26, MessageType_MessageType_ButtonAck = 27, MessageType_MessageType_GetAddress = 29, MessageType_MessageType_Address = 30, MessageType_MessageType_EntropyRequest = 35, MessageType_MessageType_EntropyAck = 36, MessageType_MessageType_SignMessage = 38, MessageType_MessageType_VerifyMessage = 39, MessageType_MessageType_MessageSignature = 40, MessageType_MessageType_EncryptMessage = 48, MessageType_MessageType_DecryptMessage = 49, MessageType_MessageType_PassphraseRequest = 41, MessageType_MessageType_PassphraseAck = 42, MessageType_MessageType_EstimateTxSize = 43, MessageType_MessageType_TxSize = 44, MessageType_MessageType_RecoveryDevice = 45, MessageType_MessageType_WordRequest = 46, MessageType_MessageType_WordAck = 47, MessageType_MessageType_DebugLinkDecision = 100, MessageType_MessageType_DebugLinkGetState = 101, MessageType_MessageType_DebugLinkState = 102, MessageType_MessageType_DebugLinkStop = 103, MessageType_MessageType_DebugLinkLog = 104 } MessageType; /* Struct definitions */ typedef struct _ButtonAck { uint8_t dummy_field; } ButtonAck; typedef struct _Cancel { uint8_t dummy_field; } Cancel; typedef struct _ClearSession { uint8_t dummy_field; } ClearSession; typedef struct _DebugLinkGetState { uint8_t dummy_field; } DebugLinkGetState; typedef struct _DebugLinkStop { uint8_t dummy_field; } DebugLinkStop; typedef struct _EntropyRequest { uint8_t dummy_field; } EntropyRequest; typedef struct _FirmwareErase { uint8_t dummy_field; } FirmwareErase; typedef struct _Initialize { uint8_t dummy_field; } Initialize; typedef struct _PassphraseRequest { uint8_t dummy_field; } PassphraseRequest; typedef struct _WipeDevice { uint8_t dummy_field; } WipeDevice; typedef struct _WordRequest { uint8_t dummy_field; } WordRequest; typedef struct _Address { char address[35]; } Address; typedef struct _ApplySettings { bool has_language; char language[17]; bool has_label; char label[33]; } ApplySettings; typedef struct _ButtonRequest { bool has_code; ButtonRequestType code; bool has_data; char data[256]; } ButtonRequest; typedef struct _ChangePin { bool has_remove; bool remove; } ChangePin; typedef struct { size_t size; uint8_t bytes[1024]; } CipherKeyValue_value_t; typedef struct _CipherKeyValue { size_t address_n_count; uint32_t address_n[8]; bool has_key; char key[256]; bool has_value; CipherKeyValue_value_t value; bool has_encrypt; bool encrypt; bool has_ask_on_encrypt; bool ask_on_encrypt; bool has_ask_on_decrypt; bool ask_on_decrypt; } CipherKeyValue; typedef struct _DebugLinkDecision { bool yes_no; } DebugLinkDecision; typedef struct _DebugLinkLog { bool has_level; uint32_t level; bool has_bucket; char bucket[33]; bool has_text; char text[256]; } DebugLinkLog; typedef struct { size_t size; uint8_t bytes[1024]; } DebugLinkState_layout_t; typedef struct { size_t size; uint8_t bytes[128]; } DebugLinkState_reset_entropy_t; typedef struct _DebugLinkState { bool has_layout; DebugLinkState_layout_t layout; bool has_pin; char pin[10]; bool has_matrix; char matrix[10]; bool has_mnemonic; char mnemonic[241]; bool has_node; HDNodeType node; bool has_passphrase_protection; bool passphrase_protection; bool has_reset_word; char reset_word[12]; bool has_reset_entropy; DebugLinkState_reset_entropy_t reset_entropy; bool has_recovery_fake_word; char recovery_fake_word[12]; bool has_recovery_word_pos; uint32_t recovery_word_pos; } DebugLinkState; typedef struct _DecryptMessage { pb_callback_t address_n; pb_callback_t message; } DecryptMessage; typedef struct _EncryptMessage { pb_callback_t pubkey; pb_callback_t message; bool has_display_only; bool display_only; } EncryptMessage; typedef struct { size_t size; uint8_t bytes[1024]; } Entropy_entropy_t; typedef struct _Entropy { Entropy_entropy_t entropy; } Entropy; typedef struct { size_t size; uint8_t bytes[128]; } EntropyAck_entropy_t; typedef struct _EntropyAck { bool has_entropy; EntropyAck_entropy_t entropy; } EntropyAck; typedef struct _EstimateTxSize { uint32_t outputs_count; uint32_t inputs_count; bool has_coin_name; char coin_name[17]; } EstimateTxSize; typedef struct _Failure { bool has_code; FailureType code; bool has_message; char message[256]; } Failure; typedef struct { size_t size; uint8_t bytes[20]; } Features_revision_t; typedef struct { size_t size; uint8_t bytes[32]; } Features_bootloader_hash_t; typedef struct _Features { bool has_vendor; char vendor[33]; bool has_major_version; uint32_t major_version; bool has_minor_version; uint32_t minor_version; bool has_patch_version; uint32_t patch_version; bool has_bootloader_mode; bool bootloader_mode; bool has_device_id; char device_id[25]; bool has_pin_protection; bool pin_protection; bool has_passphrase_protection; bool passphrase_protection; bool has_language; char language[17]; bool has_label; char label[33]; size_t coins_count; CoinType coins[4]; bool has_initialized; bool initialized; bool has_revision; Features_revision_t revision; bool has_bootloader_hash; Features_bootloader_hash_t bootloader_hash; bool has_imported; bool imported; } Features; typedef struct { size_t size; uint8_t bytes[0]; } FirmwareUpload_payload_t; typedef struct _FirmwareUpload { FirmwareUpload_payload_t payload; } FirmwareUpload; typedef struct _GetAddress { size_t address_n_count; uint32_t address_n[8]; bool has_coin_name; char coin_name[17]; } GetAddress; typedef struct _GetEntropy { uint32_t size; } GetEntropy; typedef struct _GetPublicKey { size_t address_n_count; uint32_t address_n[8]; } GetPublicKey; typedef struct _LoadDevice { bool has_mnemonic; char mnemonic[241]; bool has_node; HDNodeType node; bool has_pin; char pin[10]; bool has_passphrase_protection; bool passphrase_protection; bool has_language; char language[17]; bool has_label; char label[33]; bool has_skip_checksum; bool skip_checksum; } LoadDevice; typedef struct { size_t size; uint8_t bytes[65]; } MessageSignature_signature_t; typedef struct _MessageSignature { bool has_address; char address[35]; bool has_signature; MessageSignature_signature_t signature; } MessageSignature; typedef struct _PassphraseAck { char passphrase[51]; } PassphraseAck; typedef struct _PinMatrixAck { char pin[10]; } PinMatrixAck; typedef struct _PinMatrixRequest { bool has_type; PinMatrixRequestType type; } PinMatrixRequest; typedef struct _Ping { bool has_message; char message[256]; bool has_button_protection; bool button_protection; bool has_pin_protection; bool pin_protection; bool has_passphrase_protection; bool passphrase_protection; } Ping; typedef struct _PublicKey { HDNodeType node; } PublicKey; typedef struct _RecoveryDevice { bool has_word_count; uint32_t word_count; bool has_passphrase_protection; bool passphrase_protection; bool has_pin_protection; bool pin_protection; bool has_language; char language[17]; bool has_label; char label[33]; bool has_enforce_wordlist; bool enforce_wordlist; } RecoveryDevice; typedef struct _ResetDevice { bool has_display_random; bool display_random; bool has_strength; uint32_t strength; bool has_passphrase_protection; bool passphrase_protection; bool has_pin_protection; bool pin_protection; bool has_language; char language[17]; bool has_label; char label[33]; } ResetDevice; typedef struct { size_t size; uint8_t bytes[256]; } SignMessage_message_t; typedef struct _SignMessage { size_t address_n_count; uint32_t address_n[8]; SignMessage_message_t message; bool has_coin_name; char coin_name[17]; } SignMessage; typedef struct _SignTx { uint32_t outputs_count; uint32_t inputs_count; bool has_coin_name; char coin_name[17]; } SignTx; typedef struct _SimpleSignTx { size_t inputs_count; TxInputType inputs[0]; size_t outputs_count; TxOutputType outputs[0]; size_t transactions_count; TransactionType transactions[0]; bool has_coin_name; char coin_name[17]; } SimpleSignTx; typedef struct { size_t size; uint8_t bytes[1024]; } Success_payload_t; typedef struct _Success { bool has_message; char message[256]; bool has_payload; Success_payload_t payload; } Success; typedef struct _TxAck { bool has_tx; TransactionType tx; } TxAck; typedef struct _TxRequest { bool has_request_type; RequestType request_type; bool has_details; TxRequestDetailsType details; bool has_serialized; TxRequestSerializedType serialized; } TxRequest; typedef struct _TxSize { bool has_tx_size; uint32_t tx_size; } TxSize; typedef struct { size_t size; uint8_t bytes[65]; } VerifyMessage_signature_t; typedef struct { size_t size; uint8_t bytes[256]; } VerifyMessage_message_t; typedef struct _VerifyMessage { bool has_address; char address[35]; bool has_signature; VerifyMessage_signature_t signature; bool has_message; VerifyMessage_message_t message; } VerifyMessage; typedef struct _WordAck { char word[12]; } WordAck; /* Default values for struct fields */ extern const char GetAddress_coin_name_default[17]; extern const char LoadDevice_language_default[17]; extern const uint32_t ResetDevice_strength_default; extern const char ResetDevice_language_default[17]; extern const char RecoveryDevice_language_default[17]; extern const char SignMessage_coin_name_default[17]; extern const char EstimateTxSize_coin_name_default[17]; extern const char SignTx_coin_name_default[17]; extern const char SimpleSignTx_coin_name_default[17]; /* Field tags (for use in manual encoding/decoding) */ #define Address_address_tag 1 #define ApplySettings_language_tag 1 #define ApplySettings_label_tag 2 #define ButtonRequest_code_tag 1 #define ButtonRequest_data_tag 2 #define ChangePin_remove_tag 1 #define CipherKeyValue_address_n_tag 1 #define CipherKeyValue_key_tag 2 #define CipherKeyValue_value_tag 3 #define CipherKeyValue_encrypt_tag 4 #define CipherKeyValue_ask_on_encrypt_tag 5 #define CipherKeyValue_ask_on_decrypt_tag 6 #define DebugLinkDecision_yes_no_tag 1 #define DebugLinkLog_level_tag 1 #define DebugLinkLog_bucket_tag 2 #define DebugLinkLog_text_tag 3 #define DebugLinkState_layout_tag 1 #define DebugLinkState_pin_tag 2 #define DebugLinkState_matrix_tag 3 #define DebugLinkState_mnemonic_tag 4 #define DebugLinkState_node_tag 5 #define DebugLinkState_passphrase_protection_tag 6 #define DebugLinkState_reset_word_tag 7 #define DebugLinkState_reset_entropy_tag 8 #define DebugLinkState_recovery_fake_word_tag 9 #define DebugLinkState_recovery_word_pos_tag 10 #define DecryptMessage_address_n_tag 1 #define DecryptMessage_message_tag 2 #define EncryptMessage_pubkey_tag 1 #define EncryptMessage_message_tag 2 #define EncryptMessage_display_only_tag 3 #define Entropy_entropy_tag 1 #define EntropyAck_entropy_tag 1 #define EstimateTxSize_outputs_count_tag 1 #define EstimateTxSize_inputs_count_tag 2 #define EstimateTxSize_coin_name_tag 3 #define Failure_code_tag 1 #define Failure_message_tag 2 #define Features_vendor_tag 1 #define Features_major_version_tag 2 #define Features_minor_version_tag 3 #define Features_patch_version_tag 4 #define Features_bootloader_mode_tag 5 #define Features_device_id_tag 6 #define Features_pin_protection_tag 7 #define Features_passphrase_protection_tag 8 #define Features_language_tag 9 #define Features_label_tag 10 #define Features_coins_tag 11 #define Features_initialized_tag 12 #define Features_revision_tag 13 #define Features_bootloader_hash_tag 14 #define Features_imported_tag 15 #define FirmwareUpload_payload_tag 1 #define GetAddress_address_n_tag 1 #define GetAddress_coin_name_tag 2 #define GetEntropy_size_tag 1 #define GetPublicKey_address_n_tag 1 #define LoadDevice_mnemonic_tag 1 #define LoadDevice_node_tag 2 #define LoadDevice_pin_tag 3 #define LoadDevice_passphrase_protection_tag 4 #define LoadDevice_language_tag 5 #define LoadDevice_label_tag 6 #define LoadDevice_skip_checksum_tag 7 #define MessageSignature_address_tag 1 #define MessageSignature_signature_tag 2 #define PassphraseAck_passphrase_tag 1 #define PinMatrixAck_pin_tag 1 #define PinMatrixRequest_type_tag 1 #define Ping_message_tag 1 #define Ping_button_protection_tag 2 #define Ping_pin_protection_tag 3 #define Ping_passphrase_protection_tag 4 #define PublicKey_node_tag 1 #define RecoveryDevice_word_count_tag 1 #define RecoveryDevice_passphrase_protection_tag 2 #define RecoveryDevice_pin_protection_tag 3 #define RecoveryDevice_language_tag 4 #define RecoveryDevice_label_tag 5 #define RecoveryDevice_enforce_wordlist_tag 6 #define ResetDevice_display_random_tag 1 #define ResetDevice_strength_tag 2 #define ResetDevice_passphrase_protection_tag 3 #define ResetDevice_pin_protection_tag 4 #define ResetDevice_language_tag 5 #define ResetDevice_label_tag 6 #define SignMessage_address_n_tag 1 #define SignMessage_message_tag 2 #define SignMessage_coin_name_tag 3 #define SignTx_outputs_count_tag 1 #define SignTx_inputs_count_tag 2 #define SignTx_coin_name_tag 3 #define SimpleSignTx_inputs_tag 1 #define SimpleSignTx_outputs_tag 2 #define SimpleSignTx_transactions_tag 3 #define SimpleSignTx_coin_name_tag 4 #define Success_message_tag 1 #define Success_payload_tag 2 #define TxAck_tx_tag 1 #define TxRequest_request_type_tag 1 #define TxRequest_details_tag 2 #define TxRequest_serialized_tag 3 #define TxSize_tx_size_tag 1 #define VerifyMessage_address_tag 1 #define VerifyMessage_signature_tag 2 #define VerifyMessage_message_tag 3 #define WordAck_word_tag 1 /* Struct field encoding specification for nanopb */ extern const pb_field_t Initialize_fields[1]; extern const pb_field_t Features_fields[16]; extern const pb_field_t ClearSession_fields[1]; extern const pb_field_t ApplySettings_fields[3]; extern const pb_field_t ChangePin_fields[2]; extern const pb_field_t Ping_fields[5]; extern const pb_field_t Success_fields[3]; extern const pb_field_t Failure_fields[3]; extern const pb_field_t ButtonRequest_fields[3]; extern const pb_field_t ButtonAck_fields[1]; extern const pb_field_t PinMatrixRequest_fields[2]; extern const pb_field_t PinMatrixAck_fields[2]; extern const pb_field_t Cancel_fields[1]; extern const pb_field_t PassphraseRequest_fields[1]; extern const pb_field_t PassphraseAck_fields[2]; extern const pb_field_t GetEntropy_fields[2]; extern const pb_field_t Entropy_fields[2]; extern const pb_field_t GetPublicKey_fields[2]; extern const pb_field_t PublicKey_fields[2]; extern const pb_field_t GetAddress_fields[3]; extern const pb_field_t Address_fields[2]; extern const pb_field_t WipeDevice_fields[1]; extern const pb_field_t LoadDevice_fields[8]; extern const pb_field_t ResetDevice_fields[7]; extern const pb_field_t EntropyRequest_fields[1]; extern const pb_field_t EntropyAck_fields[2]; extern const pb_field_t RecoveryDevice_fields[7]; extern const pb_field_t WordRequest_fields[1]; extern const pb_field_t WordAck_fields[2]; extern const pb_field_t SignMessage_fields[4]; extern const pb_field_t VerifyMessage_fields[4]; extern const pb_field_t MessageSignature_fields[3]; extern const pb_field_t EncryptMessage_fields[4]; extern const pb_field_t DecryptMessage_fields[3]; extern const pb_field_t CipherKeyValue_fields[7]; extern const pb_field_t EstimateTxSize_fields[4]; extern const pb_field_t TxSize_fields[2]; extern const pb_field_t SignTx_fields[4]; extern const pb_field_t SimpleSignTx_fields[5]; extern const pb_field_t TxRequest_fields[4]; extern const pb_field_t TxAck_fields[2]; extern const pb_field_t FirmwareErase_fields[1]; extern const pb_field_t FirmwareUpload_fields[2]; extern const pb_field_t DebugLinkDecision_fields[2]; extern const pb_field_t DebugLinkGetState_fields[1]; extern const pb_field_t DebugLinkState_fields[11]; extern const pb_field_t DebugLinkStop_fields[1]; extern const pb_field_t DebugLinkLog_fields[4]; /* Maximum encoded size of messages (where known) */ #define Initialize_size 0 #define Features_size (224 + 4*CoinType_size) #define ClearSession_size 0 #define ApplySettings_size 54 #define ChangePin_size 2 #define Ping_size 265 #define Success_size 1286 #define Failure_size 265 #define ButtonRequest_size 265 #define ButtonAck_size 0 #define PinMatrixRequest_size 6 #define PinMatrixAck_size 12 #define Cancel_size 0 #define PassphraseRequest_size 0 #define PassphraseAck_size 53 #define GetEntropy_size 6 #define Entropy_size 1027 #define GetPublicKey_size 48 #define PublicKey_size (6 + HDNodeType_size) #define GetAddress_size 67 #define Address_size 37 #define WipeDevice_size 0 #define LoadDevice_size (320 + HDNodeType_size) #define ResetDevice_size 66 #define EntropyRequest_size 0 #define EntropyAck_size 131 #define RecoveryDevice_size 66 #define WordRequest_size 0 #define WordAck_size 14 #define SignMessage_size 326 #define VerifyMessage_size 363 #define MessageSignature_size 104 #define CipherKeyValue_size 1340 #define EstimateTxSize_size 31 #define TxSize_size 6 #define SignTx_size 31 #define SimpleSignTx_size (19 + 0*TxInputType_size + 0*TxOutputType_size + 0*TransactionType_size) #define TxRequest_size (18 + TxRequestDetailsType_size + TxRequestSerializedType_size) #define TxAck_size (6 + TransactionType_size) #define FirmwareErase_size 0 #define FirmwareUpload_size 2 #define DebugLinkDecision_size 2 #define DebugLinkGetState_size 0 #define DebugLinkState_size (1468 + HDNodeType_size) #define DebugLinkStop_size 0 #define DebugLinkLog_size 300 #ifdef __cplusplus } /* extern "C" */ #endif #endif