SemiDrive SSDK Appication Program Interface PTG3.0
sdrv_crypto_mailbox_sm2.h
Go to the documentation of this file.
1
9#ifndef SDRV_CRYPTO_MAILBOX_SM2_H
10#define SDRV_CRYPTO_MAILBOX_SM2_H
11
14
18typedef struct {
19 uint8_t cmd_id;
20 uint8_t rev1[1];
21 uint8_t id_len[2];
22 uint8_t id_ptr[4];
23 uint8_t pubKey_ptr[4];
24 uint8_t z[4];
26
30typedef struct {
31 uint8_t cmd_id;
32 uint8_t rev1[3];
33 uint8_t data_ptr[4];
34 uint8_t data_len[4];
35 uint8_t z[4];
36 uint8_t e[4];
38
42typedef struct {
43 uint8_t cmd_id;
44 uint8_t rev1[1];
45 uint8_t key_id[2];
46 uint8_t pubKey_ptr[4];
47 uint8_t priKey_ptr[4];
48 uint8_t aut_info_ptr[4];
50
54typedef struct {
55 uint8_t cmd_id;
56 uint8_t rev1[3];
57 uint8_t key_id0[2];
58 uint8_t key_id1[2];
59 uint8_t priKey_ptr[4];
60 uint8_t pubKey_ptr[4];
61 uint8_t aut_info_ptr[4];
63
67typedef struct {
68 uint8_t cmd_id;
70 uint8_t rev1[2];
71 uint8_t e_ptr[4];
72 uint8_t key_id0[2];
73 uint8_t key_id1[2];
74 uint8_t priKey_ptr[4];
75 uint8_t signature_ptr[4];
76 uint8_t aut_info_ptr[4];
78
82typedef struct {
83 uint8_t cmd_id;
85 uint8_t rev1[2];
86 uint8_t e_ptr[4];
87 uint8_t pubKey_ptr[4];
88 uint8_t signature_ptr[4];
90
94typedef struct {
95 uint8_t cmd_id;
97 uint8_t rev1[2];
98 uint8_t data_ptr[4];
99 uint8_t data_len[4];
100 uint8_t pubKey_ptr[4];
101 uint8_t cipher_ptr[4];
103
107typedef struct {
108 uint8_t cmd_id;
110 uint8_t rev1[2];
111 uint8_t cipher_ptr[4];
112 uint8_t cipher_len[4];
113 uint8_t key_id0[2];
114 uint8_t key_id1[2];
115 uint8_t priKey_ptr[4];
116 uint8_t data_ptr[4];
117 uint8_t aut_info_ptr[4];
119
123typedef struct {
124 uint8_t dA_ptr[4];
125 uint8_t RA_ptr[4];
126 uint8_t rA_ptr[4];
127 uint8_t PB_ptr[4];
128 uint8_t RB_ptr[4];
129 uint8_t ZA_ptr[4];
130 uint8_t ZB_ptr[4];
132
136typedef struct {
138 uint16_t dA_key_id;
140 uint16_t rA_key_id;
141 uint16_t enc_key_id;
145
149typedef struct {
150 uint8_t cmd_id;
152 uint8_t role;
153 uint8_t key_len;
154 uint8_t key_id0[2];
155 uint8_t key_id1[2];
156 uint8_t key_id2[2];
157 uint8_t key_id3[2];
158 uint8_t input_ptr[4];
159 uint8_t outputKey_ptr[4];
160 uint8_t s1_s2_ptr[4];
161 uint8_t sa_sb_ptr[4];
162 uint8_t aut_info_ptr[4];
164
168typedef enum {
173
185sdrv_crypto_error_status_e cmd_sm2_get_z(uint8_t *id, uint32_t id_len,
186 uint8_t *pubkey, uint8_t *z_buf);
187
199sdrv_crypto_error_status_e cmd_sm2_get_e(uint8_t *msg, uint32_t msg_len,
200 uint8_t *z_buf, uint8_t *e_buf);
201
212 uint8_t *pubkey);
213
227 uint16_t generate_key_id,
228 uint8_t *prikey, uint8_t *pubkey,
229 uint8_t *mac_buf);
230
244sdrv_crypto_error_status_e cmd_sm2_sign(uint8_t *e, uint8_t *prikey,
245 cmd_key_type_e generate_sign_key_type,
246 uint16_t generate_sign_key_id,
247 uint8_t *signature, uint8_t *mac_buf);
248
259sdrv_crypto_error_status_e cmd_sm2_verify(uint8_t *e, uint8_t *pubkey,
260 uint8_t *signature);
261
273sdrv_crypto_error_status_e cmd_sm2_enc(uint8_t *msg, uint32_t msg_len,
274 uint8_t *pubkey, uint8_t *cipher);
275
290sdrv_crypto_error_status_e cmd_sm2_dec(uint8_t *prikey, uint8_t *msg,
291 uint8_t *cipher, uint32_t cipher_len,
292 cmd_key_type_e decrypt_key_type,
293 uint16_t decrypt_key_id,
294 uint8_t *mac_buf);
295
312 uint8_t *dA, uint8_t *RA, uint8_t *rA, uint8_t *RB,
313 uint8_t *PB, uint8_t *ZA, uint8_t *ZB,
314 sm2_exc_key_input_ptr_t *cmd_sm2_exc_key_input);
315
333 cmd_sm2_exchangekey_keyinfo_t *cmd_sm2_exckey_keyinfo,
334 sm2_exc_key_input_ptr_t *cmd_sm2_exc_key_input,
335 uint32_t kbytelen, uint8_t *S1, uint8_t *SA, uint8_t *KA,
336 uint8_t *mac_buf);
337#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_sm2_dec(uint8_t *prikey, uint8_t *msg, uint8_t *cipher, uint32_t cipher_len, cmd_key_type_e decrypt_key_type, uint16_t decrypt_key_id, uint8_t *mac_buf)
sm2 dec
sdrv_crypto_error_status_e cmd_sm2_verify(uint8_t *e, uint8_t *pubkey, uint8_t *signature)
sm2 verify
sdrv_crypto_error_status_e cmd_sm2_get_e(uint8_t *msg, uint32_t msg_len, uint8_t *z_buf, uint8_t *e_buf)
get e value
cmd_sm2_exchange_role_e
CRYPTO role of sm2 exchange.
Definition: sdrv_crypto_mailbox_sm2.h:168
@ CMD_SM2_ROLE_RESPONSOR
Definition: sdrv_crypto_mailbox_sm2.h:170
@ CMD_SM2_ROLE_SPONSOR
Definition: sdrv_crypto_mailbox_sm2.h:169
@ CMD_SM2_ROLE_MAX
Definition: sdrv_crypto_mailbox_sm2.h:171
sdrv_crypto_error_status_e cmd_sm2_exchange_key(cmd_sm2_exchange_role_e role, cmd_sm2_exchangekey_keyinfo_t *cmd_sm2_exckey_keyinfo, sm2_exc_key_input_ptr_t *cmd_sm2_exc_key_input, uint32_t kbytelen, uint8_t *S1, uint8_t *SA, uint8_t *KA, uint8_t *mac_buf)
sm2 exchange key
sdrv_crypto_error_status_e cmd_sm2_sign(uint8_t *e, uint8_t *prikey, cmd_key_type_e generate_sign_key_type, uint16_t generate_sign_key_id, uint8_t *signature, uint8_t *mac_buf)
sm2 sign
sdrv_crypto_error_status_e cmd_sm2_get_z(uint8_t *id, uint32_t id_len, uint8_t *pubkey, uint8_t *z_buf)
sm2 get z value
sdrv_crypto_error_status_e cmd_sm2_enc(uint8_t *msg, uint32_t msg_len, uint8_t *pubkey, uint8_t *cipher)
sm2 enc
sdrv_crypto_error_status_e cmd_sm2_set_exckey_input_ptr(uint8_t *dA, uint8_t *RA, uint8_t *rA, uint8_t *RB, uint8_t *PB, uint8_t *ZA, uint8_t *ZB, sm2_exc_key_input_ptr_t *cmd_sm2_exc_key_input)
sm2 set exckey value
sdrv_crypto_error_status_e cmd_sm2_get_pubkey_from_prikey(uint8_t *prikey, uint8_t *pubkey)
sm2 get pubkey
sdrv_crypto_error_status_e cmd_sm2_generatekey(cmd_key_type_e generate_key_type, uint16_t generate_key_id, uint8_t *prikey, uint8_t *pubkey, uint8_t *mac_buf)
sm2 generatekey
crypto mailbox trng cmd interface
enum sdrv_crypto_error_status sdrv_crypto_error_status_e
CRYPTO error status return codes.
CRYPTO cmd of sm2 decrypt.
Definition: sdrv_crypto_mailbox_sm2.h:107
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm2.h:108
uint8_t need_high_sec_ver
Definition: sdrv_crypto_mailbox_sm2.h:109
CRYPTO cmd of sm2 encrypt.
Definition: sdrv_crypto_mailbox_sm2.h:94
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm2.h:95
uint8_t need_high_sec_ver
Definition: sdrv_crypto_mailbox_sm2.h:96
CRYPTO cmd of sm2 exchange keyinfo.
Definition: sdrv_crypto_mailbox_sm2.h:136
uint16_t output_key_id
Definition: sdrv_crypto_mailbox_sm2.h:143
uint16_t dA_key_id
Definition: sdrv_crypto_mailbox_sm2.h:138
uint16_t rA_key_id
Definition: sdrv_crypto_mailbox_sm2.h:140
cmd_key_type_e rA_key_type
Definition: sdrv_crypto_mailbox_sm2.h:139
cmd_key_type_e output_key_type
Definition: sdrv_crypto_mailbox_sm2.h:142
uint16_t enc_key_id
Definition: sdrv_crypto_mailbox_sm2.h:141
cmd_key_type_e dA_key_type
Definition: sdrv_crypto_mailbox_sm2.h:137
CRYPTO cmd of sm2 exchange key.
Definition: sdrv_crypto_mailbox_sm2.h:149
uint8_t role
Definition: sdrv_crypto_mailbox_sm2.h:152
uint8_t key_len
Definition: sdrv_crypto_mailbox_sm2.h:153
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm2.h:150
uint8_t need_high_sec_ver
Definition: sdrv_crypto_mailbox_sm2.h:151
CRYPTO cmd of sm2 generate key.
Definition: sdrv_crypto_mailbox_sm2.h:42
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm2.h:43
CRYPTO cmd of sm2 genrate signature.
Definition: sdrv_crypto_mailbox_sm2.h:67
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm2.h:68
uint8_t need_high_sec_ver
Definition: sdrv_crypto_mailbox_sm2.h:69
CRYPTO cmd of sm2 get pubkey from prikey.
Definition: sdrv_crypto_mailbox_sm2.h:54
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm2.h:55
CRYPTO cmd of sm2 get E.
Definition: sdrv_crypto_mailbox_sm2.h:30
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm2.h:31
CRYPTO cmd of sm2 get z.
Definition: sdrv_crypto_mailbox_sm2.h:18
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm2.h:19
CRYPTO cmd of sm2 verify signature.
Definition: sdrv_crypto_mailbox_sm2.h:82
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm2.h:83
uint8_t need_high_sec_ver
Definition: sdrv_crypto_mailbox_sm2.h:84
input pointer of sm2 exchange key.
Definition: sdrv_crypto_mailbox_sm2.h:123