SemiDrive SSDK Appication Program Interface PTG3.0
Data Structures | Enumerations | Functions
sdrv_crypto_mailbox_sm9.h File Reference
#include "sdrv_crypto_mailbox_common.h"
#include "sdrv_crypto_mailbox_trng.h"

Go to the source code of this file.

Data Structures

struct  cmd_sm9_sign_generate_master_key_t
 
struct  cmd_sm9_sign_generate_user_prikey_t
 
struct  cmd_sm9_generatesignature_t
 
struct  cmd_sm9_verifysignature_t
 
struct  cmd_sm9_enc_generate_master_key_t
 
struct  cmd_sm9_enc_generate_user_prikey_t
 
struct  cmd_sm9_wrapkey_t
 
struct  cmd_sm9_unwrapkey_t
 
struct  cmd_sm9_encrypt_t
 
struct  cmd_sm9_decrypt_t
 
struct  cmd_sm9_exckey_generate_user_tmpkey_t
 
struct  cmd_sm9_exc_key_input_ptr_t
 
struct  cmd_sm9_exchangekey_t
 

Enumerations

enum  cmd_sm9_enc_padding_e
 

Functions

sdrv_crypto_error_status_e cmd_sm9_sign_gen_master_key (uint8_t *ks, uint8_t *pub_s)
 
sdrv_crypto_error_status_e cmd_sm9_sign_gen_user_prikey (uint8_t *ida, uint32_t ida_len, uint8_t *ks, uint8_t *dsa)
 
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)
 
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)
 
sdrv_crypto_error_status_e cmd_sm9_enc_gen_master_key (uint8_t *ke, uint8_t *pub_e)
 
sdrv_crypto_error_status_e cmd_sm9_enc_gen_user_prikey (uint8_t *idb, uint32_t idb_len, uint8_t *ke, uint8_t *deb)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
sdrv_crypto_error_status_e cmd_sm9_exckey_gen_master_key (uint8_t *ke, uint8_t *pub_e)
 
sdrv_crypto_error_status_e cmd_sm9_exckey_gen_user_prikey (uint8_t *id, uint32_t id_len, uint8_t *ke, uint8_t *de)
 
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)
 
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)
 
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)
 

Detailed Description

Typedef Documentation

◆ cmd_sm9_exckey_generate_master_key_t

◆ cmd_sm9_exckey_generate_user_prikey_t

Enumeration Type Documentation

◆ cmd_sm9_enc_padding_e

padding of sm9 encrypt.

available when choose SM9_ENC_KDF_BLOCK_CIPHER

Enumerator
CMD_SM9_ENC_NO_PADDING 
CMD_SM9_ENC_PKCS7_PADDING 
CMD_SM9_ENC_MAX_PADDING 

◆ cmd_sm9_enc_type_e

type of sm9 encrypt.

Enumerator
CMD_SM9_ENC_KDF_STREAM_CIPHER 
CMD_SM9_ENC_KDF_BLOCK_CIPHER 
CMD_SM9_ENC_KDF_MAX 

◆ cmd_sm9_exchangekey_role_e

SM9 key exchange role.

Enumerator
CMD_SM9_ROLE_SPONSOR 
CMD_SM9_ROLE_RESPONSOR 
CMD_SM9_ROLE_MAX 

Function Documentation

◆ cmd_sm9_dec_kdf_block_cipher()

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

This function dec kdf block

Parameters
[in]idbidb buff
[in]idb_lenidb len
[in]key2_lenkey2 len
[in]debprikey buff
[out]msgmsg buff
[out]msg_lenmsg len
[in]cipherout buff
[in]cipher_lenout len
[in]padding_typepadding type
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_dec_kdf_stream_cipher()

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

This function dec kdf stream

Parameters
[in]idbidb buff
[in]idb_lenidb len
[in]key2_lenkey2 len
[in]debprikey buff
[out]msgmsg buff
[out]msg_lenmsg len
[in]cipherout buff
[in]cipher_lenout len
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_enc_gen_master_key()

sdrv_crypto_error_status_e cmd_sm9_enc_gen_master_key ( uint8_t *  ke,
uint8_t *  pub_e 
)

sm9 gen enc master key

This function get enc master key

Parameters
[out]keprikey buff
[out]pub_epubkey buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_enc_gen_user_prikey()

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

This function get user enc key

Parameters
[in]idbidb buff
[in]idb_lenidb len
[out]kemaster prikey buff
[out]debuser prikey buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_enc_kdf_block_cipher()

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

This function enc kdf block

Parameters
[in]idbidb buff
[in]idb_lenidb len
[in]key2_lenkey2 len
[in]pub_epubkey buff
[in]msgmsg buff
[in]msg_lenmsg len
[out]cipherout buff
[out]cipher_lenout len
[in]padding_typepadding type
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_enc_kdf_stream_cipher()

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

This function enc kdf stream cipher

Parameters
[in]idbidb buff
[in]idb_lenidb len
[in]key2_lenkey2 len
[in]pub_epubkey buff
[in]msgmsg buff
[in]msg_lenmsg len
[out]cipherout buff
[out]cipher_lenout len
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_enc_unwrap_key()

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

This function enc unwrap key

Parameters
[in]idbidb buff
[in]idb_lenidb len
[in]debuser prikey buff
[out]K_unwrapkey buff
[in]kbytelenkey len
[in]Ccipher key buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_enc_wrap_key()

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

This function enc wrap key

Parameters
[in]idbidb buff
[in]idb_lenidb len
[in]pub_epubkey buff
[in]Kkey buff
[in]kbytelenkey len
[out]Ccipher key buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_exchange_key()

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

This function exchange key

Parameters
[in]roleexchange key role
[in]ida_lenida len
[in]idb_lenidb len
[in]kByteLenkbytelen
[in]exckey_inputexckey_input buff
[out]KAKA buff
[in]S1S1 buff
[in]SASA buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_exckey_gen_master_key()

sdrv_crypto_error_status_e cmd_sm9_exckey_gen_master_key ( uint8_t *  ke,
uint8_t *  pub_e 
)

sm9 gen master exckey key

This function get master exckey key

Parameters
[out]keprikey buff
[out]pub_epubkey buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_exckey_gen_user_prikey()

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

This function get user exckey key

Parameters
[in]idid buff
[in]id_lenid len
[out]kemaster prikey buff
[out]deuser prikey buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_exckey_gen_user_tmpkey()

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

This function get user exckey tmpkey

Parameters
[in]idid buff
[in]id_lenid len
[out]pub_emaster pubkey buff
[out]ruser prikey buff
[out]Ruser Pubkey buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_gen_signature()

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

This function gen signature

Parameters
[in]msgmsg buff
[in]msg_lenmsg len
[in]pub_smaster pubkey buff
[in]dsauser prikey buff
[out]signatureout buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_set_exckey_input_ptr()

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

This function set exckey input msg

Parameters
[in]pub_epub_e buff
[in]dAdA buff
[in]RARA buff
[in]rArA buff
[in]RBRB buff
[in]idaida buff
[in]idbidb buff
[out]exckey_inputout buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_sign_gen_master_key()

sdrv_crypto_error_status_e cmd_sm9_sign_gen_master_key ( uint8_t *  ks,
uint8_t *  pub_s 
)

sm9 get master sign key

This function get master sign key

Parameters
[out]ksprikey buff
[out]pub_spubkey buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_sign_gen_user_prikey()

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

This function get user sign prikey

Parameters
[in]idaida buff
[in]ida_lenida len
[out]ksmaster prikey buff
[out]dsauser prikey buff
Returns
CMD_RETURN_SUCCESS or error code

◆ cmd_sm9_verify_signature()

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

This function verify signature

Parameters
[in]msgmsg buff
[in]msg_lenmsg len
[in]idaida buff
[in]ida_lenida len
[in]pub_smaster pubkey buff
[out]signatureout buff
Returns
CMD_RETURN_SUCCESS or error code