You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/firmware/protob/messages.pb.h

1303 lines
47 KiB

/* 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[41];
} 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 43
#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