SemiDrive SSDK Appication Program Interface PTG3.0
sdrv_crypto_mailbox_eccp.h
Go to the documentation of this file.
1
9#ifndef SDRV_CRYPTO_MAILBOX_ECCP_H
10#define SDRV_CRYPTO_MAILBOX_ECCP_H
11
14
15#define ECDSA_RAND_TEST
16#define ECDSA_RAND_TEST_COUNT (2)
17
21typedef struct {
22 uint8_t *G_x_y;
23 uint8_t *k;
24 uint8_t *kG_x_y;
25 uint8_t *dblG_x_y;
28
32typedef enum {
39
43typedef struct {
44 uint8_t cmd_id;
45 uint8_t rev1[2];
46 uint8_t curve_id;
47 uint8_t inputPoint_ptr[4];
48 uint8_t outputPoint_ptr[4];
50
54typedef struct {
55 uint8_t cmd_id;
56 uint8_t rev1[2];
57 uint8_t curve_id;
58 uint8_t inputPoint1_ptr[4];
59 uint8_t inputPoint2_ptr[4];
60 uint8_t outputPoint_ptr[4];
62
66typedef struct {
67 uint8_t cmd_id;
68 uint8_t rev1[2];
69 uint8_t curve_id;
70 uint8_t inputScalar_ptr[4];
71 uint8_t inputPoint_ptr[4];
72 uint8_t outputPoint_ptr[4];
74
78typedef struct {
79 uint8_t cmd_id;
80 uint8_t rev1[2];
81 uint8_t curve_id;
82 uint8_t inputPoint_ptr[4];
84
88typedef struct {
89 uint8_t cmd_id;
90 uint8_t curve_id;
91 uint8_t key_id[2];
92 uint8_t pubKey_ptr[4];
93 uint8_t priKey_ptr[4];
94 uint8_t aut_info_ptr[4];
96
100typedef struct {
101 uint8_t cmd_id;
102 uint8_t rev1[1];
103 uint8_t curve_id;
104 uint8_t key_len;
105 uint8_t key_id0[2];
106 uint8_t key_id1[2];
107 uint8_t selfPrikey_ptr[4];
108 uint8_t PeerPubKey_ptr[4];
109 uint8_t rev2[2];
110 uint8_t key_id2[2];
111 uint8_t key_ptr[4];
112 uint8_t aut_info_ptr[4];
114
118typedef struct {
119 uint8_t cmd_id;
120 uint8_t rev1[1];
121 uint8_t curve_id;
122 uint8_t e_len;
123 uint8_t e_ptr[4];
124 uint8_t key_id0[2];
125 uint8_t key_id1[2];
126 uint8_t priKey_ptr[4];
127 uint8_t signature_ptr[4];
128 uint8_t aut_info_ptr[4];
130
134typedef struct {
135 uint8_t cmd_id;
136 uint8_t rev1[1];
137 uint8_t curve_id;
138 uint8_t e_len;
139 uint8_t e_ptr[4];
140 uint8_t pubKey_ptr[4];
141 uint8_t signature_ptr[4];
143
155 uint8_t *G_x_y,
156 uint8_t *output_x_y);
157
170 uint8_t *kG_x_y,
171 uint8_t *dblG_x_y,
172 uint8_t *output_x_y);
173
186 uint8_t *G_x_y,
187 uint8_t *k,
188 uint8_t *output_x_y);
189
200 uint8_t *G_x_y);
201
216 uint8_t curve_id, uint8_t *prikey, uint8_t *pubkey,
217 cmd_key_type_e generate_key_type, uint16_t generate_key_id,
218 uint8_t *mac_buf);
219
237/*mac_buf len is CMD_BASIC_TWO_KEY_MAC_BUFF_LEN 64*/
239 uint8_t curve_id, uint8_t key_len, uint8_t *KA, uint8_t *pubkey_B,
240 uint8_t *prikey_A, cmd_key_type_e ecdh_key_type, uint16_t ecdh_key_id,
241 cmd_key_type_e output_key_type, uint16_t output_key_id, uint8_t *mac_buf);
242
259 uint8_t curve_id, uint8_t *e, uint32_t e_len,
260 cmd_key_type_e sign_key_type, uint16_t sign_key_id,
261 uint8_t *prikey, uint8_t *signature, uint8_t *mac_buf);
262
276 uint8_t *e,
277 uint32_t e_len,
278 uint8_t *pubkey,
279 uint8_t *signature);
280
281#endif
SemiDrive CRYPTO mailbox common api header file.
cmd_key_type_e
CRYPTO key type.
Definition: sdrv_crypto_mailbox_common.h:133
sdrv_crypto_error_status_e cmd_eccp_ecdh_generate_keypair(uint8_t curve_id, uint8_t *prikey, uint8_t *pubkey, cmd_key_type_e generate_key_type, uint16_t generate_key_id, uint8_t *mac_buf)
eccp generate ecdh keypair
sdrv_crypto_error_status_e cmd_eccp_ecdsa_gen_signature(uint8_t curve_id, uint8_t *e, uint32_t e_len, cmd_key_type_e sign_key_type, uint16_t sign_key_id, uint8_t *prikey, uint8_t *signature, uint8_t *mac_buf)
eccp ecdsa gen signature
sdrv_crypto_error_status_e cmd_eccp_point_verify(uint8_t curve_id, uint8_t *G_x_y)
eccp point verify
sdrv_crypto_error_status_e cmd_eccp_point_multiplication(uint8_t curve_id, uint8_t *G_x_y, uint8_t *k, uint8_t *output_x_y)
eccp point multplication
crypto_ECCcurvetype
ECC curve type.
Definition: sdrv_crypto_mailbox_eccp.h:32
@ SECP224R1
Definition: sdrv_crypto_mailbox_eccp.h:34
@ SECP192R1
Definition: sdrv_crypto_mailbox_eccp.h:33
@ SECP256R1
Definition: sdrv_crypto_mailbox_eccp.h:35
@ SECP521R1
Definition: sdrv_crypto_mailbox_eccp.h:37
@ SECP384R1
Definition: sdrv_crypto_mailbox_eccp.h:36
sdrv_crypto_error_status_e cmd_eccp_point_addition(uint8_t curve_id, uint8_t *kG_x_y, uint8_t *dblG_x_y, uint8_t *output_x_y)
eccp point addition
sdrv_crypto_error_status_e cmd_eccp_ecdh_exchange_key(uint8_t curve_id, uint8_t key_len, uint8_t *KA, uint8_t *pubkey_B, uint8_t *prikey_A, cmd_key_type_e ecdh_key_type, uint16_t ecdh_key_id, cmd_key_type_e output_key_type, uint16_t output_key_id, uint8_t *mac_buf)
ecdh exchange key
sdrv_crypto_error_status_e cmd_eccp_point_doubling(uint8_t curve_id, uint8_t *G_x_y, uint8_t *output_x_y)
eccp point doubling
sdrv_crypto_error_status_e cmd_eccp_ecdsa_verify_signature(uint8_t curve_id, uint8_t *e, uint32_t e_len, uint8_t *pubkey, uint8_t *signature)
eccp point verify
crypto mailbox trng cmd interface
enum sdrv_crypto_error_status sdrv_crypto_error_status_e
CRYPTO error status return codes.
CRYPTO cmd of eccp basic vectors.
Definition: sdrv_crypto_mailbox_eccp.h:21
uint8_t * kG_x_y
Definition: sdrv_crypto_mailbox_eccp.h:24
uint8_t * G_x_y
Definition: sdrv_crypto_mailbox_eccp.h:22
uint8_t * dblG_x_y
Definition: sdrv_crypto_mailbox_eccp.h:25
uint8_t * k
Definition: sdrv_crypto_mailbox_eccp.h:23
uint8_t * kG_plus_dblG_x_y
Definition: sdrv_crypto_mailbox_eccp.h:26
CRYPTO cmd of eccp generate key.
Definition: sdrv_crypto_mailbox_eccp.h:88
uint8_t curve_id
Definition: sdrv_crypto_mailbox_eccp.h:90
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_eccp.h:89
CRYPTO cmd of eccp point addition.
Definition: sdrv_crypto_mailbox_eccp.h:54
uint8_t curve_id
Definition: sdrv_crypto_mailbox_eccp.h:57
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_eccp.h:55
CRYPTO cmd of eccp point doubling.
Definition: sdrv_crypto_mailbox_eccp.h:43
uint8_t curve_id
Definition: sdrv_crypto_mailbox_eccp.h:46
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_eccp.h:44
CRYPTO cmd of eccp point multiplication.
Definition: sdrv_crypto_mailbox_eccp.h:66
uint8_t curve_id
Definition: sdrv_crypto_mailbox_eccp.h:69
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_eccp.h:67
CRYPTO cmd of eccp point verifying.
Definition: sdrv_crypto_mailbox_eccp.h:78
uint8_t curve_id
Definition: sdrv_crypto_mailbox_eccp.h:81
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_eccp.h:79
CRYPTO cmd of ecdh exchange key.
Definition: sdrv_crypto_mailbox_eccp.h:100
uint8_t curve_id
Definition: sdrv_crypto_mailbox_eccp.h:103
uint8_t key_len
Definition: sdrv_crypto_mailbox_eccp.h:104
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_eccp.h:101
CRYPTO cmd of ecdsa generate signature.
Definition: sdrv_crypto_mailbox_eccp.h:118
uint8_t e_len
Definition: sdrv_crypto_mailbox_eccp.h:122
uint8_t curve_id
Definition: sdrv_crypto_mailbox_eccp.h:121
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_eccp.h:119
CRYPTO cmd of ecdsa verify signature.
Definition: sdrv_crypto_mailbox_eccp.h:134
uint8_t e_len
Definition: sdrv_crypto_mailbox_eccp.h:138
uint8_t curve_id
Definition: sdrv_crypto_mailbox_eccp.h:137
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_eccp.h:135