update protobuf

This commit is contained in:
Pavol Rusnak 2015-02-20 19:01:45 +01:00
parent 2f5e520345
commit ad6fc7b5a7
7 changed files with 121 additions and 8 deletions

View File

@ -86,6 +86,13 @@ EstimateTxSize.coin_name max_size:17
SignTx.coin_name max_size:17
SignIdentity.challenge_hidden max_size:64
SignIdentity.challenge_visual max_size:64
SignedIdentity.address max_size:36
SignedIdentity.public_key max_size:33
SignedIdentity.signature max_size:65
# not used in firmware
SimpleSignTx.inputs max_count:0
SimpleSignTx.outputs max_count:0

View File

@ -298,6 +298,20 @@ const pb_field_t TxAck_fields[2] = {
PB_LAST_FIELD
};
const pb_field_t SignIdentity_fields[4] = {
PB_FIELD2( 1, MESSAGE , OPTIONAL, STATIC , FIRST, SignIdentity, identity, identity, &IdentityType_fields),
PB_FIELD2( 2, BYTES , OPTIONAL, STATIC , OTHER, SignIdentity, challenge_hidden, identity, 0),
PB_FIELD2( 3, STRING , OPTIONAL, STATIC , OTHER, SignIdentity, challenge_visual, challenge_hidden, 0),
PB_LAST_FIELD
};
const pb_field_t SignedIdentity_fields[4] = {
PB_FIELD2( 1, STRING , OPTIONAL, STATIC , FIRST, SignedIdentity, address, address, 0),
PB_FIELD2( 2, BYTES , OPTIONAL, STATIC , OTHER, SignedIdentity, public_key, address, 0),
PB_FIELD2( 3, BYTES , OPTIONAL, STATIC , OTHER, SignedIdentity, signature, public_key, 0),
PB_LAST_FIELD
};
const pb_field_t FirmwareErase_fields[1] = {
PB_LAST_FIELD
};
@ -351,7 +365,7 @@ const pb_field_t DebugLinkLog_fields[4] = {
* numbers or field sizes that are larger than what can fit in 8 or 16 bit
* field descriptors.
*/
STATIC_ASSERT((pb_membersize(Features, coins[0]) < 65536 && pb_membersize(PublicKey, node) < 65536 && pb_membersize(GetAddress, multisig) < 65536 && pb_membersize(LoadDevice, node) < 65536 && pb_membersize(SimpleSignTx, inputs[0]) < 65536 && pb_membersize(SimpleSignTx, outputs[0]) < 65536 && pb_membersize(SimpleSignTx, transactions[0]) < 65536 && pb_membersize(TxRequest, details) < 65536 && pb_membersize(TxRequest, serialized) < 65536 && pb_membersize(TxAck, tx) < 65536 && pb_membersize(DebugLinkState, node) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_Initialize_Features_ClearSession_ApplySettings_ChangePin_Ping_Success_Failure_ButtonRequest_ButtonAck_PinMatrixRequest_PinMatrixAck_Cancel_PassphraseRequest_PassphraseAck_GetEntropy_Entropy_GetPublicKey_PublicKey_GetAddress_Address_WipeDevice_LoadDevice_ResetDevice_EntropyRequest_EntropyAck_RecoveryDevice_WordRequest_WordAck_SignMessage_VerifyMessage_MessageSignature_EncryptMessage_EncryptedMessage_DecryptMessage_DecryptedMessage_CipherKeyValue_CipheredKeyValue_EstimateTxSize_TxSize_SignTx_SimpleSignTx_TxRequest_TxAck_FirmwareErase_FirmwareUpload_DebugLinkDecision_DebugLinkGetState_DebugLinkState_DebugLinkStop_DebugLinkLog)
STATIC_ASSERT((pb_membersize(Features, coins[0]) < 65536 && pb_membersize(PublicKey, node) < 65536 && pb_membersize(GetAddress, multisig) < 65536 && pb_membersize(LoadDevice, node) < 65536 && pb_membersize(SimpleSignTx, inputs[0]) < 65536 && pb_membersize(SimpleSignTx, outputs[0]) < 65536 && pb_membersize(SimpleSignTx, transactions[0]) < 65536 && pb_membersize(TxRequest, details) < 65536 && pb_membersize(TxRequest, serialized) < 65536 && pb_membersize(TxAck, tx) < 65536 && pb_membersize(SignIdentity, identity) < 65536 && pb_membersize(DebugLinkState, node) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_Initialize_Features_ClearSession_ApplySettings_ChangePin_Ping_Success_Failure_ButtonRequest_ButtonAck_PinMatrixRequest_PinMatrixAck_Cancel_PassphraseRequest_PassphraseAck_GetEntropy_Entropy_GetPublicKey_PublicKey_GetAddress_Address_WipeDevice_LoadDevice_ResetDevice_EntropyRequest_EntropyAck_RecoveryDevice_WordRequest_WordAck_SignMessage_VerifyMessage_MessageSignature_EncryptMessage_EncryptedMessage_DecryptMessage_DecryptedMessage_CipherKeyValue_CipheredKeyValue_EstimateTxSize_TxSize_SignTx_SimpleSignTx_TxRequest_TxAck_SignIdentity_SignedIdentity_FirmwareErase_FirmwareUpload_DebugLinkDecision_DebugLinkGetState_DebugLinkState_DebugLinkStop_DebugLinkLog)
#endif
#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)

View File

@ -35,7 +35,6 @@ typedef enum _MessageType {
MessageType_MessageType_TxRequest = 21,
MessageType_MessageType_TxAck = 22,
MessageType_MessageType_CipherKeyValue = 23,
MessageType_MessageType_CipheredKeyValue = 48,
MessageType_MessageType_ClearSession = 24,
MessageType_MessageType_ApplySettings = 25,
MessageType_MessageType_ButtonRequest = 26,
@ -47,10 +46,6 @@ typedef enum _MessageType {
MessageType_MessageType_SignMessage = 38,
MessageType_MessageType_VerifyMessage = 39,
MessageType_MessageType_MessageSignature = 40,
MessageType_MessageType_EncryptMessage = 49,
MessageType_MessageType_EncryptedMessage = 50,
MessageType_MessageType_DecryptMessage = 51,
MessageType_MessageType_DecryptedMessage = 52,
MessageType_MessageType_PassphraseRequest = 41,
MessageType_MessageType_PassphraseAck = 42,
MessageType_MessageType_EstimateTxSize = 43,
@ -58,6 +53,13 @@ typedef enum _MessageType {
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_DebugLinkDecision = 100,
MessageType_MessageType_DebugLinkGetState = 101,
MessageType_MessageType_DebugLinkState = 102,
@ -497,6 +499,20 @@ typedef struct _ResetDevice {
char label[33];
} ResetDevice;
typedef struct {
size_t size;
uint8_t bytes[64];
} 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[64];
} SignIdentity;
typedef struct {
size_t size;
uint8_t bytes[1024];
@ -517,6 +533,25 @@ typedef struct _SignTx {
char coin_name[17];
} 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[36];
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];
@ -632,6 +667,8 @@ extern const char SimpleSignTx_coin_name_default[17];
#define SimpleSignTx_init_default {0, {}, 0, {}, 0, {}, false, "Bitcoin"}
#define TxRequest_init_default {false, (RequestType)0, false, TxRequestDetailsType_init_default, false, TxRequestSerializedType_init_default}
#define TxAck_init_default {false, TransactionType_init_default}
#define SignIdentity_init_default {false, IdentityType_init_default, false, {0, {0}}, false, ""}
#define SignedIdentity_init_default {false, "", false, {0, {0}}, false, {0, {0}}}
#define FirmwareErase_init_default {0}
#define FirmwareUpload_init_default {{0, {0}}}
#define DebugLinkDecision_init_default {0}
@ -683,6 +720,8 @@ extern const char SimpleSignTx_coin_name_default[17];
#define SimpleSignTx_init_zero {0, {}, 0, {}, 0, {}, false, ""}
#define TxRequest_init_zero {false, (RequestType)0, false, TxRequestDetailsType_init_zero, false, TxRequestSerializedType_init_zero}
#define TxAck_init_zero {false, TransactionType_init_zero}
#define SignIdentity_init_zero {false, IdentityType_init_zero, false, {0, {0}}, false, ""}
#define SignedIdentity_init_zero {false, "", false, {0, {0}}, false, {0, {0}}}
#define FirmwareErase_init_zero {0}
#define FirmwareUpload_init_zero {{0, {0}}}
#define DebugLinkDecision_init_zero {0}
@ -794,12 +833,18 @@ extern const char SimpleSignTx_coin_name_default[17];
#define ResetDevice_pin_protection_tag 4
#define ResetDevice_language_tag 5
#define ResetDevice_label_tag 6
#define SignIdentity_identity_tag 1
#define SignIdentity_challenge_hidden_tag 2
#define SignIdentity_challenge_visual_tag 3
#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 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
@ -860,6 +905,8 @@ 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 SignIdentity_fields[4];
extern const pb_field_t SignedIdentity_fields[4];
extern const pb_field_t FirmwareErase_fields[1];
extern const pb_field_t FirmwareUpload_fields[2];
extern const pb_field_t DebugLinkDecision_fields[2];
@ -913,6 +960,8 @@ extern const pb_field_t DebugLinkLog_fields[4];
#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 SignIdentity_size (138 + IdentityType_size)
#define SignedIdentity_size 140
#define FirmwareErase_size 0
#define FirmwareUpload_size 2
#define DebugLinkDecision_size 2

View File

@ -28,3 +28,9 @@ TxRequestSerializedType.serialized_tx max_size:2048
MultisigRedeemScriptType.pubkeys max_count:15
MultisigRedeemScriptType.signatures max_count:15 max_size:73
IdentityType.proto max_size:9
IdentityType.user max_size:64
IdentityType.host max_size:64
IdentityType.port max_size:6
IdentityType.path max_size:256

View File

@ -7,6 +7,7 @@ const uint32_t CoinType_address_type_default = 0u;
const uint32_t CoinType_address_type_p2sh_default = 5u;
const uint32_t TxInputType_sequence_default = 4294967295u;
const InputScriptType TxInputType_script_type_default = InputScriptType_SPENDADDRESS;
const uint32_t IdentityType_index_default = 0u;
const pb_field_t HDNodeType_fields[7] = {
@ -92,6 +93,16 @@ const pb_field_t TxRequestSerializedType_fields[4] = {
PB_LAST_FIELD
};
const pb_field_t IdentityType_fields[7] = {
PB_FIELD2( 1, STRING , OPTIONAL, STATIC , FIRST, IdentityType, proto, proto, 0),
PB_FIELD2( 2, STRING , OPTIONAL, STATIC , OTHER, IdentityType, user, proto, 0),
PB_FIELD2( 3, STRING , OPTIONAL, STATIC , OTHER, IdentityType, host, user, 0),
PB_FIELD2( 4, STRING , OPTIONAL, STATIC , OTHER, IdentityType, port, host, 0),
PB_FIELD2( 5, STRING , OPTIONAL, STATIC , OTHER, IdentityType, path, port, 0),
PB_FIELD2( 6, UINT32 , OPTIONAL, STATIC , OTHER, IdentityType, index, path, &IdentityType_index_default),
PB_LAST_FIELD
};
typedef struct {
bool wire_in;
} wire_in_struct;
@ -154,7 +165,7 @@ const pb_extension_type_t wire_debug_out = {
* numbers or field sizes that are larger than what can fit in 8 or 16 bit
* field descriptors.
*/
STATIC_ASSERT((pb_membersize(HDNodePathType, node) < 65536 && pb_membersize(MultisigRedeemScriptType, pubkeys[0]) < 65536 && pb_membersize(TxInputType, multisig) < 65536 && pb_membersize(TxOutputType, multisig) < 65536 && pb_membersize(TransactionType, inputs[0]) < 65536 && pb_membersize(TransactionType, bin_outputs[0]) < 65536 && pb_membersize(TransactionType, outputs[0]) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_HDNodeType_HDNodePathType_CoinType_MultisigRedeemScriptType_TxInputType_TxOutputType_TxOutputBinType_TransactionType_TxRequestDetailsType_TxRequestSerializedType)
STATIC_ASSERT((pb_membersize(HDNodePathType, node) < 65536 && pb_membersize(MultisigRedeemScriptType, pubkeys[0]) < 65536 && pb_membersize(TxInputType, multisig) < 65536 && pb_membersize(TxOutputType, multisig) < 65536 && pb_membersize(TransactionType, inputs[0]) < 65536 && pb_membersize(TransactionType, bin_outputs[0]) < 65536 && pb_membersize(TransactionType, outputs[0]) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_HDNodeType_HDNodePathType_CoinType_MultisigRedeemScriptType_TxInputType_TxOutputType_TxOutputBinType_TransactionType_TxRequestDetailsType_TxRequestSerializedType_IdentityType)
#endif
#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)

View File

@ -102,6 +102,21 @@ typedef struct _HDNodeType {
HDNodeType_public_key_t public_key;
} HDNodeType;
typedef struct _IdentityType {
bool has_proto;
char proto[9];
bool has_user;
char user[64];
bool has_host;
char host[64];
bool has_port;
char port[6];
bool has_path;
char path[256];
bool has_index;
uint32_t index;
} IdentityType;
typedef struct {
size_t size;
uint8_t bytes[520];
@ -234,6 +249,7 @@ extern const uint32_t CoinType_address_type_default;
extern const uint32_t CoinType_address_type_p2sh_default;
extern const uint32_t TxInputType_sequence_default;
extern const InputScriptType TxInputType_script_type_default;
extern const uint32_t IdentityType_index_default;
/* Initializer values for message structs */
#define HDNodeType_init_default {0, 0, 0, {0, {0}}, false, {0, {0}}, false, {0, {0}}}
@ -246,6 +262,7 @@ extern const InputScriptType TxInputType_script_type_default;
#define TransactionType_init_default {false, 0, 0, {TxInputType_init_default}, 0, {TxOutputBinType_init_default}, false, 0, 0, {TxOutputType_init_default}, false, 0, false, 0}
#define TxRequestDetailsType_init_default {false, 0, false, {0, {0}}}
#define TxRequestSerializedType_init_default {false, 0, false, {0, {0}}, false, {0, {0}}}
#define IdentityType_init_default {false, "", false, "", false, "", false, "", false, "", false, 0u}
#define HDNodeType_init_zero {0, 0, 0, {0, {0}}, false, {0, {0}}, false, {0, {0}}}
#define HDNodePathType_init_zero {HDNodeType_init_zero, 0, {0, 0, 0, 0, 0, 0, 0, 0}}
#define CoinType_init_zero {false, "", false, "", false, 0, false, 0, false, 0}
@ -256,6 +273,7 @@ extern const InputScriptType TxInputType_script_type_default;
#define TransactionType_init_zero {false, 0, 0, {TxInputType_init_zero}, 0, {TxOutputBinType_init_zero}, false, 0, 0, {TxOutputType_init_zero}, false, 0, false, 0}
#define TxRequestDetailsType_init_zero {false, 0, false, {0, {0}}}
#define TxRequestSerializedType_init_zero {false, 0, false, {0, {0}}, false, {0, {0}}}
#define IdentityType_init_zero {false, "", false, "", false, "", false, "", false, "", false, 0}
/* Field tags (for use in manual encoding/decoding) */
#define CoinType_coin_name_tag 1
@ -269,6 +287,12 @@ extern const InputScriptType TxInputType_script_type_default;
#define HDNodeType_chain_code_tag 4
#define HDNodeType_private_key_tag 5
#define HDNodeType_public_key_tag 6
#define IdentityType_proto_tag 1
#define IdentityType_user_tag 2
#define IdentityType_host_tag 3
#define IdentityType_port_tag 4
#define IdentityType_path_tag 5
#define IdentityType_index_tag 6
#define TxOutputBinType_amount_tag 1
#define TxOutputBinType_script_pubkey_tag 2
#define TxRequestDetailsType_request_index_tag 1
@ -317,6 +341,7 @@ extern const pb_field_t TxOutputBinType_fields[3];
extern const pb_field_t TransactionType_fields[8];
extern const pb_field_t TxRequestDetailsType_fields[3];
extern const pb_field_t TxRequestSerializedType_fields[4];
extern const pb_field_t IdentityType_fields[7];
/* Maximum encoded size of messages (where known) */
#define HDNodeType_size 121
@ -329,6 +354,7 @@ extern const pb_field_t TxRequestSerializedType_fields[4];
#define TransactionType_size 9993
#define TxRequestDetailsType_size 40
#define TxRequestSerializedType_size 2132
#define IdentityType_size 416
#ifdef __cplusplus
} /* extern "C" */

@ -1 +1 @@
Subproject commit 201b66a559567031f74621615884946c8bf1e837
Subproject commit 69d476a3ba10c40209dd26789876b265cf03f384