9#ifndef SDRV_CRYPTO_MAILBOX_SM9_H
10#define SDRV_CRYPTO_MAILBOX_SM9_H
21 uint8_t mastPubKey_ptr[4];
22 uint8_t mastPriKey_ptr[4];
33 uint8_t mastPriKey_ptr[4];
34 uint8_t userPriKey_ptr[4];
45 uint8_t mastPubKey_ptr[4];
46 uint8_t userPriKey_ptr[4];
47 uint8_t signature_ptr[4];
60 uint8_t mastPubKey_ptr[4];
61 uint8_t signature_ptr[4];
70 uint8_t mastPubKey_ptr[4];
71 uint8_t mastPriKey_ptr[4];
82 uint8_t mastPriKey_ptr[4];
83 uint8_t userPriKey_ptr[4];
97 uint8_t mastPubKey_ptr[4];
99 uint8_t cipher_ptr[4];
110 uint8_t userPriKey_ptr[4];
111 uint8_t cipher_ptr[4];
129 uint8_t mastPubKey_ptr[4];
130 uint8_t cipher_ptr[4];
131 uint8_t cipherLen_ptr[4];
142 uint8_t cipher_ptr[4];
143 uint8_t cipher_len[4];
147 uint8_t userPriKey_ptr[4];
149 uint8_t dataLen_ptr[4];
163 uint8_t peer_id_len[2];
164 uint8_t peer_id_ptr[4];
165 uint8_t mastPubKey_ptr[4];
166 uint8_t userTmpPriKey_ptr[4];
167 uint8_t userTmpPubKey_ptr[4];
174 uint8_t Ppub_e_ptr[4];
191 uint8_t input_ptr[4];
194 uint8_t outputKey_ptr[4];
195 uint8_t s1_s2_ptr[4];
196 uint8_t sa_sb_ptr[4];
269 uint8_t *pub_s, uint8_t *dsa,
334 uint8_t *pub_e, uint8_t *K,
335 uint32_t kbytelen, uint8_t *C);
379 uint32_t *cipher_len);
403 uint32_t cipher_len);
428 uint32_t *cipher_len,
429 uint8_t padding_type);
455 uint8_t padding_type);
519 uint8_t *pub_e, uint8_t *dA, uint8_t *RA, uint8_t *rA,
520 uint8_t *RB, uint8_t *ida, uint8_t *idb,
540 uint32_t idb_len, uint32_t kByteLen,
542 uint8_t *KA, uint8_t *S1, uint8_t *SA);
SemiDrive CRYPTO mailbox common api header file.
sdrv_crypto_error_status_e cmd_sm9_exchange_key(cmd_sm9_exchangekey_role_e role, uint32_t ida_len, uint32_t idb_len, uint32_t kByteLen, cmd_sm9_exc_key_input_ptr_t *exckey_input, uint8_t *KA, uint8_t *S1, uint8_t *SA)
sm9 exhange key
sdrv_crypto_error_status_e cmd_sm9_enc_gen_master_key(uint8_t *ke, uint8_t *pub_e)
sm9 gen enc master key
sdrv_crypto_error_status_e cmd_sm9_dec_kdf_stream_cipher(uint8_t *idb, uint32_t idb_len, uint32_t key2_len, uint8_t *deb, uint8_t *msg, uint32_t *msg_len, uint8_t *cipher, uint32_t cipher_len)
dec kdf stream
sdrv_crypto_error_status_e cmd_sm9_enc_gen_user_prikey(uint8_t *idb, uint32_t idb_len, uint8_t *ke, uint8_t *deb)
sm9 gen user enc key
cmd_sm9_exchangekey_role_e
SM9 key exchange role.
Definition: sdrv_crypto_mailbox_sm9.h:222
@ CMD_SM9_ROLE_SPONSOR
Definition: sdrv_crypto_mailbox_sm9.h:223
@ CMD_SM9_ROLE_MAX
Definition: sdrv_crypto_mailbox_sm9.h:225
@ CMD_SM9_ROLE_RESPONSOR
Definition: sdrv_crypto_mailbox_sm9.h:224
sdrv_crypto_error_status_e cmd_sm9_verify_signature(uint8_t *msg, uint32_t msg_len, uint8_t *ida, uint32_t ida_len, uint8_t *pub_s, uint8_t *signature)
sm9 verify signature
sdrv_crypto_error_status_e cmd_sm9_enc_kdf_block_cipher(uint8_t *idb, uint32_t idb_len, uint32_t key2_len, uint8_t *pub_e, uint8_t *msg, uint32_t msg_len, uint8_t *cipher, uint32_t *cipher_len, uint8_t padding_type)
sm9 enc kdf block
sdrv_crypto_error_status_e cmd_sm9_sign_gen_user_prikey(uint8_t *ida, uint32_t ida_len, uint8_t *ks, uint8_t *dsa)
sm9 get user sign prikey
cmd_sm9_enc_type_e
type of sm9 encrypt.
Definition: sdrv_crypto_mailbox_sm9.h:202
@ CMD_SM9_ENC_KDF_STREAM_CIPHER
Definition: sdrv_crypto_mailbox_sm9.h:203
@ CMD_SM9_ENC_KDF_MAX
Definition: sdrv_crypto_mailbox_sm9.h:205
@ CMD_SM9_ENC_KDF_BLOCK_CIPHER
Definition: sdrv_crypto_mailbox_sm9.h:204
sdrv_crypto_error_status_e cmd_sm9_exckey_gen_user_tmpkey(uint8_t *id, uint32_t id_len, uint8_t *pub_e, uint8_t *r, uint8_t *R)
sm9 gen user exckey tmpkey
sdrv_crypto_error_status_e cmd_sm9_exckey_gen_master_key(uint8_t *ke, uint8_t *pub_e)
sm9 gen master exckey key
sdrv_crypto_error_status_e cmd_sm9_exckey_gen_user_prikey(uint8_t *id, uint32_t id_len, uint8_t *ke, uint8_t *de)
sm9 gen user exckey key
cmd_sm9_enc_generate_user_prikey_t cmd_sm9_exckey_generate_user_prikey_t
Definition: sdrv_crypto_mailbox_sm9.h:155
sdrv_crypto_error_status_e cmd_sm9_enc_unwrap_key(uint8_t *idb, uint32_t idb_len, uint8_t *deb, uint8_t *K_unwrap, uint32_t kbytelen, uint8_t *C)
sm9 enc unwrap key
sdrv_crypto_error_status_e cmd_sm9_sign_gen_master_key(uint8_t *ks, uint8_t *pub_s)
sm9 get master sign key
cmd_sm9_enc_generate_master_key_t cmd_sm9_exckey_generate_master_key_t
Definition: sdrv_crypto_mailbox_sm9.h:152
sdrv_crypto_error_status_e cmd_sm9_dec_kdf_block_cipher(uint8_t *id, uint32_t id_len, uint32_t key2_len, uint8_t *deb, uint8_t *msg, uint32_t *msg_len, uint8_t *cipher, uint32_t cipher_len, uint8_t padding_type)
sm9 dec kdf block
cmd_sm9_enc_padding_e
padding of sm9 encrypt.
Definition: sdrv_crypto_mailbox_sm9.h:213
@ CMD_SM9_ENC_PKCS7_PADDING
Definition: sdrv_crypto_mailbox_sm9.h:215
@ CMD_SM9_ENC_MAX_PADDING
Definition: sdrv_crypto_mailbox_sm9.h:216
@ CMD_SM9_ENC_NO_PADDING
Definition: sdrv_crypto_mailbox_sm9.h:214
sdrv_crypto_error_status_e cmd_sm9_gen_signature(uint8_t *msg, uint32_t msg_len, uint8_t *pub_s, uint8_t *dsa, uint8_t *signature)
sm9 gen signature
sdrv_crypto_error_status_e cmd_sm9_set_exckey_input_ptr(uint8_t *pub_e, uint8_t *dA, uint8_t *RA, uint8_t *rA, uint8_t *RB, uint8_t *ida, uint8_t *idb, cmd_sm9_exc_key_input_ptr_t *exckey_input)
sm9 set exckey input msg
sdrv_crypto_error_status_e cmd_sm9_enc_wrap_key(uint8_t *idb, uint32_t idb_len, uint8_t *pub_e, uint8_t *K, uint32_t kbytelen, uint8_t *C)
sm9 enc wrap key
sdrv_crypto_error_status_e cmd_sm9_enc_kdf_stream_cipher(uint8_t *idb, uint32_t idb_len, uint32_t key2_len, uint8_t *pub_e, uint8_t *msg, uint32_t msg_len, uint8_t *cipher, uint32_t *cipher_len)
enc kdf stream
crypto mailbox trng cmd interface
enum sdrv_crypto_error_status sdrv_crypto_error_status_e
CRYPTO error status return codes.
CRYPTO cmd of sm9 decrypt.
Definition: sdrv_crypto_mailbox_sm9.h:137
uint8_t key2_len
Definition: sdrv_crypto_mailbox_sm9.h:141
uint8_t enc_type
Definition: sdrv_crypto_mailbox_sm9.h:139
uint8_t padding_type
Definition: sdrv_crypto_mailbox_sm9.h:140
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:138
CRYPTO cmd of sm9 enc generate master key.
Definition: sdrv_crypto_mailbox_sm9.h:67
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:68
CRYPTO cmd of sm9 enc generate user prikey.
Definition: sdrv_crypto_mailbox_sm9.h:77
uint8_t hid
Definition: sdrv_crypto_mailbox_sm9.h:79
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:78
CRYPTO cmd of sm9 encrypt.
Definition: sdrv_crypto_mailbox_sm9.h:118
uint8_t key2_len
Definition: sdrv_crypto_mailbox_sm9.h:122
uint8_t hid
Definition: sdrv_crypto_mailbox_sm9.h:128
uint8_t enc_type
Definition: sdrv_crypto_mailbox_sm9.h:120
uint8_t padding_type
Definition: sdrv_crypto_mailbox_sm9.h:121
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:119
CRYPTO cmd of sm9 exchange key.
Definition: sdrv_crypto_mailbox_sm9.h:186
uint8_t role
Definition: sdrv_crypto_mailbox_sm9.h:190
uint8_t key_len
Definition: sdrv_crypto_mailbox_sm9.h:189
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:187
CRYPTO cmd of sm9 exchange key generate user tmpkey.
Definition: sdrv_crypto_mailbox_sm9.h:160
uint8_t hid
Definition: sdrv_crypto_mailbox_sm9.h:162
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:161
CRYPTO cmd of sm9 generate signature.
Definition: sdrv_crypto_mailbox_sm9.h:40
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:41
CRYPTO cmd of sm9 sign generate master key.
Definition: sdrv_crypto_mailbox_sm9.h:18
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:19
CRYPTO cmd of sm9 sign generate user prikey.
Definition: sdrv_crypto_mailbox_sm9.h:28
uint8_t hid
Definition: sdrv_crypto_mailbox_sm9.h:30
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:29
CRYPTO cmd of sm9 unwrapkey.
Definition: sdrv_crypto_mailbox_sm9.h:105
uint8_t key_len
Definition: sdrv_crypto_mailbox_sm9.h:107
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:106
CRYPTO cmd of sm9 verify signature.
Definition: sdrv_crypto_mailbox_sm9.h:53
uint8_t hid
Definition: sdrv_crypto_mailbox_sm9.h:55
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:54
CRYPTO cmd of sm9 wrapkey.
Definition: sdrv_crypto_mailbox_sm9.h:89
uint8_t hid
Definition: sdrv_crypto_mailbox_sm9.h:92
uint8_t key_len
Definition: sdrv_crypto_mailbox_sm9.h:93
uint8_t cmd_id
Definition: sdrv_crypto_mailbox_sm9.h:90