/* Automatically generated nanopb header */ /* Generated by nanopb-0.2.9.3 */ #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_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_CipheredKeyValue = 48, MessageType_MessageType_EncryptMessage = 49, MessageType_MessageType_EncryptedMessage = 50, MessageType_MessageType_DecryptMessage = 51, MessageType_MessageType_DecryptedMessage = 52, MessageType_MessageType_SignIdentity = 53, MessageType_MessageType_SignedIdentity = 54, MessageType_MessageType_GetFeatures = 55, MessageType_MessageType_EthereumGetAddress = 56, MessageType_MessageType_EthereumAddress = 57, MessageType_MessageType_EthereumSignTx = 58, MessageType_MessageType_EthereumTxRequest = 59, MessageType_MessageType_EthereumTxAck = 60, MessageType_MessageType_GetECDHSessionKey = 61, MessageType_MessageType_ECDHSessionKey = 62, MessageType_MessageType_SetU2FCounter = 63, MessageType_MessageType_DebugLinkDecision = 100, MessageType_MessageType_DebugLinkGetState = 101, MessageType_MessageType_DebugLinkState = 102, MessageType_MessageType_DebugLinkStop = 103, MessageType_MessageType_DebugLinkLog = 104, MessageType_MessageType_DebugLinkMemoryRead = 110, MessageType_MessageType_DebugLinkMemory = 111, MessageType_MessageType_DebugLinkMemoryWrite = 112, MessageType_MessageType_DebugLinkFlashErase = 113 } 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 _GetFeatures { uint8_t dummy_field; } GetFeatures; 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 _Address { char address[60]; } Address; typedef struct { size_t size; uint8_t bytes[1024]; } ApplySettings_homescreen_t; typedef struct _ApplySettings { bool has_language; char language[17]; bool has_label; char label[33]; bool has_use_passphrase; bool use_passphrase; bool has_homescreen; ApplySettings_homescreen_t homescreen; } 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 { size_t size; uint8_t bytes[16]; } CipherKeyValue_iv_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; bool has_iv; CipherKeyValue_iv_t iv; } CipherKeyValue; typedef struct { size_t size; uint8_t bytes[1024]; } CipheredKeyValue_value_t; typedef struct _CipheredKeyValue { bool has_value; CipheredKeyValue_value_t value; } CipheredKeyValue; typedef struct _DebugLinkDecision { bool yes_no; } DebugLinkDecision; typedef struct _DebugLinkFlashErase { bool has_sector; uint32_t sector; } DebugLinkFlashErase; 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]; } DebugLinkMemory_memory_t; typedef struct _DebugLinkMemory { bool has_memory; DebugLinkMemory_memory_t memory; } DebugLinkMemory; typedef struct _DebugLinkMemoryRead { bool has_address; uint32_t address; bool has_length; uint32_t length; } DebugLinkMemoryRead; typedef struct { size_t size; uint8_t bytes[1024]; } DebugLinkMemoryWrite_memory_t; typedef struct _DebugLinkMemoryWrite { bool has_address; uint32_t address; bool has_memory; DebugLinkMemoryWrite_memory_t memory; bool has_flash; bool flash; } DebugLinkMemoryWrite; 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 { size_t size; uint8_t bytes[33]; } DecryptMessage_nonce_t; typedef struct { size_t size; uint8_t bytes[1120]; } DecryptMessage_message_t; typedef struct { size_t size; uint8_t bytes[8]; } DecryptMessage_hmac_t; typedef struct _DecryptMessage { size_t address_n_count; uint32_t address_n[8]; bool has_nonce; DecryptMessage_nonce_t nonce; bool has_message; DecryptMessage_message_t message; bool has_hmac; DecryptMessage_hmac_t hmac; } DecryptMessage; typedef struct { size_t size; uint8_t bytes[1024]; } DecryptedMessage_message_t; typedef struct _DecryptedMessage { bool has_message; DecryptedMessage_message_t message; bool has_address; char address[41]; } DecryptedMessage; typedef struct { size_t size; uint8_t bytes[65]; } ECDHSessionKey_session_key_t; typedef struct _ECDHSessionKey { bool has_session_key; ECDHSessionKey_session_key_t session_key; } ECDHSessionKey; typedef struct { size_t size; uint8_t bytes[33]; } EncryptMessage_pubkey_t; typedef struct { size_t size; uint8_t bytes[1024]; } EncryptMessage_message_t; typedef struct _EncryptMessage { bool has_pubkey; EncryptMessage_pubkey_t pubkey; bool has_message; EncryptMessage_message_t message; bool has_display_only; bool display_only; size_t address_n_count; uint32_t address_n[8]; bool has_coin_name; char coin_name[17]; } EncryptMessage; typedef struct { size_t size; uint8_t bytes[33]; } EncryptedMessage_nonce_t; typedef struct { size_t size; uint8_t bytes[1120]; } EncryptedMessage_message_t; typedef struct { size_t size; uint8_t bytes[8]; } EncryptedMessage_hmac_t; typedef struct _EncryptedMessage { bool has_nonce; EncryptedMessage_nonce_t nonce; bool has_message; EncryptedMessage_message_t message; bool has_hmac; EncryptedMessage_hmac_t hmac; } EncryptedMessage; 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 { size_t size; uint8_t bytes[20]; } EthereumAddress_address_t; typedef struct _EthereumAddress { EthereumAddress_address_t address; } EthereumAddress; typedef struct _EthereumGetAddress { size_t address_n_count; uint32_t address_n[8]; bool has_show_display; bool show_display; } EthereumGetAddress; typedef struct { size_t size; uint8_t bytes[32]; } EthereumSignTx_nonce_t; typedef struct { size_t size; uint8_t bytes[32]; } EthereumSignTx_gas_price_t; typedef struct { size_t size; uint8_t bytes[32]; } EthereumSignTx_gas_limit_t; typedef struct { size_t size; uint8_t bytes[20]; } EthereumSignTx_to_t; typedef struct { size_t size; uint8_t bytes[32]; } EthereumSignTx_value_t; typedef struct { size_t size; uint8_t bytes[1024]; } EthereumSignTx_data_initial_chunk_t; typedef struct _EthereumSignTx { size_t address_n_count; uint32_t address_n[8]; bool has_nonce; EthereumSignTx_nonce_t nonce; bool has_gas_price; EthereumSignTx_gas_price_t gas_price; bool has_gas_limit; EthereumSignTx_gas_limit_t gas_limit; bool has_to; EthereumSignTx_to_t to; bool has_value; EthereumSignTx_value_t value; bool has_data_initial_chunk; EthereumSignTx_data_initial_chunk_t data_initial_chunk; bool has_data_length; uint32_t data_length; bool has_chain_id; uint32_t chain_id; } EthereumSignTx; typedef struct { size_t size; uint8_t bytes[1024]; } EthereumTxAck_data_chunk_t; typedef struct _EthereumTxAck { bool has_data_chunk; EthereumTxAck_data_chunk_t data_chunk; } EthereumTxAck; typedef struct { size_t size; uint8_t bytes[32]; } EthereumTxRequest_signature_r_t; typedef struct { size_t size; uint8_t bytes[32]; } EthereumTxRequest_signature_s_t; typedef struct _EthereumTxRequest { bool has_data_length; uint32_t data_length; bool has_signature_v; uint32_t signature_v; bool has_signature_r; EthereumTxRequest_signature_r_t signature_r; bool has_signature_s; EthereumTxRequest_signature_s_t signature_s; } EthereumTxRequest; 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[8]; 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; bool has_pin_cached; bool pin_cached; bool has_passphrase_cached; bool passphrase_cached; bool has_firmware_present; bool firmware_present; } 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]; bool has_show_display; bool show_display; bool has_multisig; MultisigRedeemScriptType multisig; bool has_script_type; InputScriptType script_type; } GetAddress; typedef struct { size_t size; uint8_t bytes[65]; } GetECDHSessionKey_peer_public_key_t; typedef struct _GetECDHSessionKey { bool has_identity; IdentityType identity; bool has_peer_public_key; GetECDHSessionKey_peer_public_key_t peer_public_key; bool has_ecdsa_curve_name; char ecdsa_curve_name[32]; } GetECDHSessionKey; typedef struct _GetEntropy { uint32_t size; } GetEntropy; typedef struct _GetPublicKey { size_t address_n_count; uint32_t address_n[8]; bool has_ecdsa_curve_name; char ecdsa_curve_name[32]; bool has_show_display; bool show_display; } 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; bool has_u2f_counter; uint32_t u2f_counter; } LoadDevice; typedef struct { size_t size; uint8_t bytes[65]; } MessageSignature_signature_t; typedef struct _MessageSignature { bool has_address; char address[41]; 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; bool has_xpub; char xpub[113]; } 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; bool has_type; uint32_t type; bool has_u2f_counter; uint32_t u2f_counter; } 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]; bool has_u2f_counter; uint32_t u2f_counter; } ResetDevice; typedef struct _SetU2FCounter { bool has_u2f_counter; uint32_t u2f_counter; } SetU2FCounter; typedef struct { size_t size; uint8_t bytes[256]; } SignIdentity_challenge_hidden_t; typedef struct _SignIdentity { bool has_identity; IdentityType identity; bool has_challenge_hidden; SignIdentity_challenge_hidden_t challenge_hidden; bool has_challenge_visual; char challenge_visual[256]; bool has_ecdsa_curve_name; char ecdsa_curve_name[32]; } SignIdentity; typedef struct { size_t size; uint8_t bytes[1024]; } 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]; bool has_version; uint32_t version; bool has_lock_time; uint32_t lock_time; } SignTx; typedef struct { size_t size; uint8_t bytes[33]; } SignedIdentity_public_key_t; typedef struct { size_t size; uint8_t bytes[65]; } SignedIdentity_signature_t; typedef struct _SignedIdentity { bool has_address; char address[41]; bool has_public_key; SignedIdentity_public_key_t public_key; bool has_signature; SignedIdentity_signature_t signature; } SignedIdentity; 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]; bool has_version; uint32_t version; bool has_lock_time; uint32_t lock_time; } SimpleSignTx; typedef struct _Success { bool has_message; char message[256]; } 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[1024]; } VerifyMessage_message_t; typedef struct _VerifyMessage { bool has_address; char address[41]; bool has_signature; VerifyMessage_signature_t signature; bool has_message; VerifyMessage_message_t message; bool has_coin_name; char coin_name[17]; } VerifyMessage; typedef struct _WordAck { char word[12]; } WordAck; typedef struct _WordRequest { bool has_type; WordRequestType type; } WordRequest; /* Default values for struct fields */ extern const char GetAddress_coin_name_default[17]; extern const InputScriptType GetAddress_script_type_default; 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 VerifyMessage_coin_name_default[17]; extern const char EncryptMessage_coin_name_default[17]; extern const char EstimateTxSize_coin_name_default[17]; extern const char SignTx_coin_name_default[17]; extern const uint32_t SignTx_version_default; extern const uint32_t SignTx_lock_time_default; extern const char SimpleSignTx_coin_name_default[17]; extern const uint32_t SimpleSignTx_version_default; extern const uint32_t SimpleSignTx_lock_time_default; /* Initializer values for message structs */ #define Initialize_init_default {0} #define GetFeatures_init_default {0} #define Features_init_default {false, "", false, 0, false, 0, false, 0, false, 0, false, "", false, 0, false, 0, false, "", false, "", 0, {CoinType_init_default, CoinType_init_default, CoinType_init_default, CoinType_init_default, CoinType_init_default, CoinType_init_default, CoinType_init_default, CoinType_init_default}, false, 0, false, {0, {0}}, false, {0, {0}}, false, 0, false, 0, false, 0, false, 0} #define ClearSession_init_default {0} #define ApplySettings_init_default {false, "", false, "", false, 0, false, {0, {0}}} #define ChangePin_init_default {false, 0} #define Ping_init_default {false, "", false, 0, false, 0, false, 0} #define Success_init_default {false, ""} #define Failure_init_default {false, (FailureType)0, false, ""} #define ButtonRequest_init_default {false, (ButtonRequestType)0, false, ""} #define ButtonAck_init_default {0} #define PinMatrixRequest_init_default {false, (PinMatrixRequestType)0} #define PinMatrixAck_init_default {""} #define Cancel_init_default {0} #define PassphraseRequest_init_default {0} #define PassphraseAck_init_default {""} #define GetEntropy_init_default {0} #define Entropy_init_default {{0, {0}}} #define GetPublicKey_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, "", false, 0} #define PublicKey_init_default {HDNodeType_init_default, false, ""} #define GetAddress_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, "Bitcoin", false, 0, false, MultisigRedeemScriptType_init_default, false, InputScriptType_SPENDADDRESS} #define EthereumGetAddress_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, 0} #define Address_init_default {""} #define EthereumAddress_init_default {{0, {0}}} #define WipeDevice_init_default {0} #define LoadDevice_init_default {false, "", false, HDNodeType_init_default, false, "", false, 0, false, "english", false, "", false, 0, false, 0} #define ResetDevice_init_default {false, 0, false, 256u, false, 0, false, 0, false, "english", false, "", false, 0} #define EntropyRequest_init_default {0} #define EntropyAck_init_default {false, {0, {0}}} #define RecoveryDevice_init_default {false, 0, false, 0, false, 0, false, "english", false, "", false, 0, false, 0, false, 0} #define WordRequest_init_default {false, (WordRequestType)0} #define WordAck_init_default {""} #define SignMessage_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}, {0, {0}}, false, "Bitcoin"} #define VerifyMessage_init_default {false, "", false, {0, {0}}, false, {0, {0}}, false, "Bitcoin"} #define MessageSignature_init_default {false, "", false, {0, {0}}} #define EncryptMessage_init_default {false, {0, {0}}, false, {0, {0}}, false, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}, false, "Bitcoin"} #define EncryptedMessage_init_default {false, {0, {0}}, false, {0, {0}}, false, {0, {0}}} #define DecryptMessage_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}} #define DecryptedMessage_init_default {false, {0, {0}}, false, ""} #define CipherKeyValue_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, "", false, {0, {0}}, false, 0, false, 0, false, 0, false, {0, {0}}} #define CipheredKeyValue_init_default {false, {0, {0}}} #define EstimateTxSize_init_default {0, 0, false, "Bitcoin"} #define TxSize_init_default {false, 0} #define SignTx_init_default {0, 0, false, "Bitcoin", false, 1u, false, 0u} #define SimpleSignTx_init_default {0, {}, 0, {}, 0, {}, false, "Bitcoin", false, 1u, false, 0u} #define TxRequest_init_default {false, (RequestType)0, false, TxRequestDetailsType_init_default, false, TxRequestSerializedType_init_default} #define TxAck_init_default {false, TransactionType_init_default} #define EthereumSignTx_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}, false, 0, false, 0} #define EthereumTxRequest_init_default {false, 0, false, 0, false, {0, {0}}, false, {0, {0}}} #define EthereumTxAck_init_default {false, {0, {0}}} #define SignIdentity_init_default {false, IdentityType_init_default, false, {0, {0}}, false, "", false, ""} #define SignedIdentity_init_default {false, "", false, {0, {0}}, false, {0, {0}}} #define GetECDHSessionKey_init_default {false, IdentityType_init_default, false, {0, {0}}, false, ""} #define ECDHSessionKey_init_default {false, {0, {0}}} #define SetU2FCounter_init_default {false, 0} #define FirmwareErase_init_default {0} #define FirmwareUpload_init_default {{0, {0}}} #define DebugLinkDecision_init_default {0} #define DebugLinkGetState_init_default {0} #define DebugLinkState_init_default {false, {0, {0}}, false, "", false, "", false, "", false, HDNodeType_init_default, false, 0, false, "", false, {0, {0}}, false, "", false, 0} #define DebugLinkStop_init_default {0} #define DebugLinkLog_init_default {false, 0, false, "", false, ""} #define DebugLinkMemoryRead_init_default {false, 0, false, 0} #define DebugLinkMemory_init_default {false, {0, {0}}} #define DebugLinkMemoryWrite_init_default {false, 0, false, {0, {0}}, false, 0} #define DebugLinkFlashErase_init_default {false, 0} #define Initialize_init_zero {0} #define GetFeatures_init_zero {0} #define Features_init_zero {false, "", false, 0, false, 0, false, 0, false, 0, false, "", false, 0, false, 0, false, "", false, "", 0, {CoinType_init_zero, CoinType_init_zero, CoinType_init_zero, CoinType_init_zero, CoinType_init_zero, CoinType_init_zero, CoinType_init_zero, CoinType_init_zero}, false, 0, false, {0, {0}}, false, {0, {0}}, false, 0, false, 0, false, 0, false, 0} #define ClearSession_init_zero {0} #define ApplySettings_init_zero {false, "", false, "", false, 0, false, {0, {0}}} #define ChangePin_init_zero {false, 0} #define Ping_init_zero {false, "", false, 0, false, 0, false, 0} #define Success_init_zero {false, ""} #define Failure_init_zero {false, (FailureType)0, false, ""} #define ButtonRequest_init_zero {false, (ButtonRequestType)0, false, ""} #define ButtonAck_init_zero {0} #define PinMatrixRequest_init_zero {false, (PinMatrixRequestType)0} #define PinMatrixAck_init_zero {""} #define Cancel_init_zero {0} #define PassphraseRequest_init_zero {0} #define PassphraseAck_init_zero {""} #define GetEntropy_init_zero {0} #define Entropy_init_zero {{0, {0}}} #define GetPublicKey_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, "", false, 0} #define PublicKey_init_zero {HDNodeType_init_zero, false, ""} #define GetAddress_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, "", false, 0, false, MultisigRedeemScriptType_init_zero, false, (InputScriptType)0} #define EthereumGetAddress_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, 0} #define Address_init_zero {""} #define EthereumAddress_init_zero {{0, {0}}} #define WipeDevice_init_zero {0} #define LoadDevice_init_zero {false, "", false, HDNodeType_init_zero, false, "", false, 0, false, "", false, "", false, 0, false, 0} #define ResetDevice_init_zero {false, 0, false, 0, false, 0, false, 0, false, "", false, "", false, 0} #define EntropyRequest_init_zero {0} #define EntropyAck_init_zero {false, {0, {0}}} #define RecoveryDevice_init_zero {false, 0, false, 0, false, 0, false, "", false, "", false, 0, false, 0, false, 0} #define WordRequest_init_zero {false, (WordRequestType)0} #define WordAck_init_zero {""} #define SignMessage_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}, {0, {0}}, false, ""} #define VerifyMessage_init_zero {false, "", false, {0, {0}}, false, {0, {0}}, false, ""} #define MessageSignature_init_zero {false, "", false, {0, {0}}} #define EncryptMessage_init_zero {false, {0, {0}}, false, {0, {0}}, false, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}, false, ""} #define EncryptedMessage_init_zero {false, {0, {0}}, false, {0, {0}}, false, {0, {0}}} #define DecryptMessage_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}} #define DecryptedMessage_init_zero {false, {0, {0}}, false, ""} #define CipherKeyValue_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, "", false, {0, {0}}, false, 0, false, 0, false, 0, false, {0, {0}}} #define CipheredKeyValue_init_zero {false, {0, {0}}} #define EstimateTxSize_init_zero {0, 0, false, ""} #define TxSize_init_zero {false, 0} #define SignTx_init_zero {0, 0, false, "", false, 0, false, 0} #define SimpleSignTx_init_zero {0, {}, 0, {}, 0, {}, false, "", false, 0, false, 0} #define TxRequest_init_zero {false, (RequestType)0, false, TxRequestDetailsType_init_zero, false, TxRequestSerializedType_init_zero} #define TxAck_init_zero {false, TransactionType_init_zero} #define EthereumSignTx_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}, false, {0, {0}}, false, 0, false, 0} #define EthereumTxRequest_init_zero {false, 0, false, 0, false, {0, {0}}, false, {0, {0}}} #define EthereumTxAck_init_zero {false, {0, {0}}} #define SignIdentity_init_zero {false, IdentityType_init_zero, false, {0, {0}}, false, "", false, ""} #define SignedIdentity_init_zero {false, "", false, {0, {0}}, false, {0, {0}}} #define GetECDHSessionKey_init_zero {false, IdentityType_init_zero, false, {0, {0}}, false, ""} #define ECDHSessionKey_init_zero {false, {0, {0}}} #define SetU2FCounter_init_zero {false, 0} #define FirmwareErase_init_zero {0} #define FirmwareUpload_init_zero {{0, {0}}} #define DebugLinkDecision_init_zero {0} #define DebugLinkGetState_init_zero {0} #define DebugLinkState_init_zero {false, {0, {0}}, false, "", false, "", false, "", false, HDNodeType_init_zero, false, 0, false, "", false, {0, {0}}, false, "", false, 0} #define DebugLinkStop_init_zero {0} #define DebugLinkLog_init_zero {false, 0, false, "", false, ""} #define DebugLinkMemoryRead_init_zero {false, 0, false, 0} #define DebugLinkMemory_init_zero {false, {0, {0}}} #define DebugLinkMemoryWrite_init_zero {false, 0, false, {0, {0}}, false, 0} #define DebugLinkFlashErase_init_zero {false, 0} /* Field tags (for use in manual encoding/decoding) */ #define Address_address_tag 1 #define ApplySettings_language_tag 1 #define ApplySettings_label_tag 2 #define ApplySettings_use_passphrase_tag 3 #define ApplySettings_homescreen_tag 4 #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 CipherKeyValue_iv_tag 7 #define CipheredKeyValue_value_tag 1 #define DebugLinkDecision_yes_no_tag 1 #define DebugLinkFlashErase_sector_tag 1 #define DebugLinkLog_level_tag 1 #define DebugLinkLog_bucket_tag 2 #define DebugLinkLog_text_tag 3 #define DebugLinkMemory_memory_tag 1 #define DebugLinkMemoryRead_address_tag 1 #define DebugLinkMemoryRead_length_tag 2 #define DebugLinkMemoryWrite_address_tag 1 #define DebugLinkMemoryWrite_memory_tag 2 #define DebugLinkMemoryWrite_flash_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_nonce_tag 2 #define DecryptMessage_message_tag 3 #define DecryptMessage_hmac_tag 4 #define DecryptedMessage_message_tag 1 #define DecryptedMessage_address_tag 2 #define ECDHSessionKey_session_key_tag 1 #define EncryptMessage_pubkey_tag 1 #define EncryptMessage_message_tag 2 #define EncryptMessage_display_only_tag 3 #define EncryptMessage_address_n_tag 4 #define EncryptMessage_coin_name_tag 5 #define EncryptedMessage_nonce_tag 1 #define EncryptedMessage_message_tag 2 #define EncryptedMessage_hmac_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 EthereumAddress_address_tag 1 #define EthereumGetAddress_address_n_tag 1 #define EthereumGetAddress_show_display_tag 2 #define EthereumSignTx_address_n_tag 1 #define EthereumSignTx_nonce_tag 2 #define EthereumSignTx_gas_price_tag 3 #define EthereumSignTx_gas_limit_tag 4 #define EthereumSignTx_to_tag 5 #define EthereumSignTx_value_tag 6 #define EthereumSignTx_data_initial_chunk_tag 7 #define EthereumSignTx_data_length_tag 8 #define EthereumSignTx_chain_id_tag 9 #define EthereumTxAck_data_chunk_tag 1 #define EthereumTxRequest_data_length_tag 1 #define EthereumTxRequest_signature_v_tag 2 #define EthereumTxRequest_signature_r_tag 3 #define EthereumTxRequest_signature_s_tag 4 #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 Features_pin_cached_tag 16 #define Features_passphrase_cached_tag 17 #define Features_firmware_present_tag 18 #define FirmwareUpload_payload_tag 1 #define GetAddress_address_n_tag 1 #define GetAddress_coin_name_tag 2 #define GetAddress_show_display_tag 3 #define GetAddress_multisig_tag 4 #define GetAddress_script_type_tag 5 #define GetECDHSessionKey_identity_tag 1 #define GetECDHSessionKey_peer_public_key_tag 2 #define GetECDHSessionKey_ecdsa_curve_name_tag 3 #define GetEntropy_size_tag 1 #define GetPublicKey_address_n_tag 1 #define GetPublicKey_ecdsa_curve_name_tag 2 #define GetPublicKey_show_display_tag 3 #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 LoadDevice_u2f_counter_tag 8 #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 PublicKey_xpub_tag 2 #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 RecoveryDevice_type_tag 8 #define RecoveryDevice_u2f_counter_tag 9 #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 ResetDevice_u2f_counter_tag 7 #define SetU2FCounter_u2f_counter_tag 1 #define SignIdentity_identity_tag 1 #define SignIdentity_challenge_hidden_tag 2 #define SignIdentity_challenge_visual_tag 3 #define SignIdentity_ecdsa_curve_name_tag 4 #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 SignTx_version_tag 4 #define SignTx_lock_time_tag 5 #define SignedIdentity_address_tag 1 #define SignedIdentity_public_key_tag 2 #define SignedIdentity_signature_tag 3 #define SimpleSignTx_inputs_tag 1 #define SimpleSignTx_outputs_tag 2 #define SimpleSignTx_transactions_tag 3 #define SimpleSignTx_coin_name_tag 4 #define SimpleSignTx_version_tag 5 #define SimpleSignTx_lock_time_tag 6 #define Success_message_tag 1 #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 VerifyMessage_coin_name_tag 4 #define WordAck_word_tag 1 #define WordRequest_type_tag 1 /* Struct field encoding specification for nanopb */ extern const pb_field_t Initialize_fields[1]; extern const pb_field_t GetFeatures_fields[1]; extern const pb_field_t Features_fields[19]; extern const pb_field_t ClearSession_fields[1]; extern const pb_field_t ApplySettings_fields[5]; extern const pb_field_t ChangePin_fields[2]; extern const pb_field_t Ping_fields[5]; extern const pb_field_t Success_fields[2]; 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[4]; extern const pb_field_t PublicKey_fields[3]; extern const pb_field_t GetAddress_fields[6]; extern const pb_field_t EthereumGetAddress_fields[3]; extern const pb_field_t Address_fields[2]; extern const pb_field_t EthereumAddress_fields[2]; extern const pb_field_t WipeDevice_fields[1]; extern const pb_field_t LoadDevice_fields[9]; extern const pb_field_t ResetDevice_fields[8]; extern const pb_field_t EntropyRequest_fields[1]; extern const pb_field_t EntropyAck_fields[2]; extern const pb_field_t RecoveryDevice_fields[9]; extern const pb_field_t WordRequest_fields[2]; extern const pb_field_t WordAck_fields[2]; extern const pb_field_t SignMessage_fields[4]; extern const pb_field_t VerifyMessage_fields[5]; extern const pb_field_t MessageSignature_fields[3]; extern const pb_field_t EncryptMessage_fields[6]; extern const pb_field_t EncryptedMessage_fields[4]; extern const pb_field_t DecryptMessage_fields[5]; extern const pb_field_t DecryptedMessage_fields[3]; extern const pb_field_t CipherKeyValue_fields[8]; extern const pb_field_t CipheredKeyValue_fields[2]; extern const pb_field_t EstimateTxSize_fields[4]; extern const pb_field_t TxSize_fields[2]; extern const pb_field_t SignTx_fields[6]; extern const pb_field_t SimpleSignTx_fields[7]; extern const pb_field_t TxRequest_fields[4]; extern const pb_field_t TxAck_fields[2]; extern const pb_field_t EthereumSignTx_fields[10]; extern const pb_field_t EthereumTxRequest_fields[5]; extern const pb_field_t EthereumTxAck_fields[2]; extern const pb_field_t SignIdentity_fields[5]; extern const pb_field_t SignedIdentity_fields[4]; extern const pb_field_t GetECDHSessionKey_fields[4]; extern const pb_field_t ECDHSessionKey_fields[2]; extern const pb_field_t SetU2FCounter_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]; extern const pb_field_t DebugLinkMemoryRead_fields[3]; extern const pb_field_t DebugLinkMemory_fields[2]; extern const pb_field_t DebugLinkMemoryWrite_fields[4]; extern const pb_field_t DebugLinkFlashErase_fields[2]; /* Maximum encoded size of messages (where known) */ #define Initialize_size 0 #define GetFeatures_size 0 #define Features_size (257 + 8*CoinType_size) #define ClearSession_size 0 #define ApplySettings_size 1083 #define ChangePin_size 2 #define Ping_size 265 #define Success_size 259 #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 84 #define PublicKey_size (121 + HDNodeType_size) #define GetAddress_size (81 + MultisigRedeemScriptType_size) #define EthereumGetAddress_size 50 #define Address_size 62 #define EthereumAddress_size 22 #define WipeDevice_size 0 #define LoadDevice_size (326 + HDNodeType_size) #define ResetDevice_size 72 #define EntropyRequest_size 0 #define EntropyAck_size 131 #define RecoveryDevice_size 78 #define WordRequest_size 6 #define WordAck_size 14 #define SignMessage_size 1094 #define VerifyMessage_size 1156 #define MessageSignature_size 110 #define EncryptMessage_size 1131 #define EncryptedMessage_size 1168 #define DecryptMessage_size 1216 #define DecryptedMessage_size 1070 #define CipherKeyValue_size 1358 #define CipheredKeyValue_size 1027 #define EstimateTxSize_size 31 #define TxSize_size 6 #define SignTx_size 43 #define SimpleSignTx_size (31 + 0*TxInputType_size + 0*TxOutputType_size + 0*TransactionType_size) #define TxRequest_size (18 + TxRequestDetailsType_size + TxRequestSerializedType_size) #define TxAck_size (6 + TransactionType_size) #define EthereumSignTx_size 1245 #define EthereumTxRequest_size 80 #define EthereumTxAck_size 1027 #define SignIdentity_size (558 + IdentityType_size) #define SignedIdentity_size 145 #define GetECDHSessionKey_size (107 + IdentityType_size) #define ECDHSessionKey_size 67 #define SetU2FCounter_size 6 #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 #define DebugLinkMemoryRead_size 12 #define DebugLinkMemory_size 1027 #define DebugLinkMemoryWrite_size 1035 #define DebugLinkFlashErase_size 6 #ifdef __cplusplus } /* extern "C" */ #endif #endif