WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hal_rkp.c 文件参考
#include "hal_rkp.h"
#include "hal_rkp_reg.h"
#include "crypto_drv_common.h"
#include "crypto_common_macro.h"
hal_rkp.c 的引用(Include)关系图:

宏定义

#define DEOB_UPDATE_KEY_SEL_MRK1   0
 
#define DEOB_UPDATE_KEY_SEL_USK   1
 
#define DEOB_UPDATE_KEY_SEL_RUSK   2
 
#define DEOB_UPDATE_ALG_SEL_AES   0
 
#define DEOB_UPDATE_ALG_SEL_SM4   1
 
#define RKP_DEOB_UPDATE_TIMEOUT_IN_US   1000000
 
#define KDF_MAX_VAL_LENGTH   64
 
#define KDF_PADDING_VAL_LEN   64
 
#define KDF_PADDING_SALT_LEN   128
 
#define KDF_PADDING_KEY_LEN   128
 
#define KDF_SW_GEN   3
 
#define PBKDF2_ALG_SEL_SHA1   1
 
#define PBKDF2_ALG_SEL_SHA256   0
 
#define PBKDF2_ALG_SEL_SHA384   3
 
#define PBKDF2_ALG_SEL_SHA512   4
 
#define PBKDF2_ALG_SEL_SM3   5
 
#define PBKDF2_KEY_SEL_ODRK1   8
 
#define PBKDF2_KEY_SEL_ABRK_REE   20
 
#define PBKDF2_KEY_SEL_RDRK_REE   22
 
#define PBKDF2_KEY_LEN_128BIT   1
 
#define PBKDF2_KEY_LEN_192BIT   2
 
#define PBKDF2_KEY_LEN_256BIT   3
 
#define KDF_HARD_SALT_LEN   28
 
#define PBKDF2_RDRK_REE_ONEWAY_OFFSET   0
 
#define PBKDF2_ABRK_REE_ONEWAY_OFFSET   1
 
#define PBKDF2_ODRK1_ONEWAY_OFFSET   2
 

函数

td_s32 hal_rkp_lock (td_void)
 
td_s32 hal_rkp_unlock (void)
 
td_s32 hal_rkp_deob_update (crypto_kdf_otp_key otp_key, crypto_kdf_update_alg alg)
 
td_s32 hal_rkp_kdf_set_val (const td_u8 *kdf_val, td_u32 val_length)
 
td_s32 hal_rkp_kdf_get_val (td_u8 *kdf_val, td_u32 val_length)
 
td_s32 hal_rkp_kdf_set_padding_salt (const td_u8 *padding_salt, td_u32 salt_length)
 
td_s32 hal_rkp_kdf_set_padding_key (const td_u8 *padding_key, td_u32 key_length)
 
td_s32 hal_rkp_kdf_sw_start (crypto_kdf_sw_alg sw_alg, td_u32 count, td_bool is_wait)
 
td_s32 hal_rkp_kdf_wait_done (td_void)
 
td_s32 hal_rkp_deob_wait_done (td_void)
 
td_s32 hal_rkp_kdf_hard_calculation (const crypto_kdf_hard_calc_param *param)
 
td_s32 hal_rkp_clear_reg_key (td_void)
 
td_void hal_rkp_debug (td_void)
 

宏定义说明

◆ DEOB_UPDATE_ALG_SEL_AES

#define DEOB_UPDATE_ALG_SEL_AES   0

◆ DEOB_UPDATE_ALG_SEL_SM4

#define DEOB_UPDATE_ALG_SEL_SM4   1

◆ DEOB_UPDATE_KEY_SEL_MRK1

#define DEOB_UPDATE_KEY_SEL_MRK1   0

◆ DEOB_UPDATE_KEY_SEL_RUSK

#define DEOB_UPDATE_KEY_SEL_RUSK   2

◆ DEOB_UPDATE_KEY_SEL_USK

#define DEOB_UPDATE_KEY_SEL_USK   1

◆ KDF_HARD_SALT_LEN

#define KDF_HARD_SALT_LEN   28

◆ KDF_MAX_VAL_LENGTH

#define KDF_MAX_VAL_LENGTH   64

◆ KDF_PADDING_KEY_LEN

#define KDF_PADDING_KEY_LEN   128

◆ KDF_PADDING_SALT_LEN

#define KDF_PADDING_SALT_LEN   128

◆ KDF_PADDING_VAL_LEN

#define KDF_PADDING_VAL_LEN   64

◆ KDF_SW_GEN

#define KDF_SW_GEN   3

◆ PBKDF2_ABRK_REE_ONEWAY_OFFSET

#define PBKDF2_ABRK_REE_ONEWAY_OFFSET   1

◆ PBKDF2_ALG_SEL_SHA1

#define PBKDF2_ALG_SEL_SHA1   1

◆ PBKDF2_ALG_SEL_SHA256

#define PBKDF2_ALG_SEL_SHA256   0

◆ PBKDF2_ALG_SEL_SHA384

#define PBKDF2_ALG_SEL_SHA384   3

◆ PBKDF2_ALG_SEL_SHA512

#define PBKDF2_ALG_SEL_SHA512   4

◆ PBKDF2_ALG_SEL_SM3

#define PBKDF2_ALG_SEL_SM3   5

◆ PBKDF2_KEY_LEN_128BIT

#define PBKDF2_KEY_LEN_128BIT   1

◆ PBKDF2_KEY_LEN_192BIT

#define PBKDF2_KEY_LEN_192BIT   2

◆ PBKDF2_KEY_LEN_256BIT

#define PBKDF2_KEY_LEN_256BIT   3

◆ PBKDF2_KEY_SEL_ABRK_REE

#define PBKDF2_KEY_SEL_ABRK_REE   20

◆ PBKDF2_KEY_SEL_ODRK1

#define PBKDF2_KEY_SEL_ODRK1   8

◆ PBKDF2_KEY_SEL_RDRK_REE

#define PBKDF2_KEY_SEL_RDRK_REE   22

◆ PBKDF2_ODRK1_ONEWAY_OFFSET

#define PBKDF2_ODRK1_ONEWAY_OFFSET   2

◆ PBKDF2_RDRK_REE_ONEWAY_OFFSET

#define PBKDF2_RDRK_REE_ONEWAY_OFFSET   0

◆ RKP_DEOB_UPDATE_TIMEOUT_IN_US

#define RKP_DEOB_UPDATE_TIMEOUT_IN_US   1000000

函数说明

◆ hal_rkp_clear_reg_key()

td_s32 hal_rkp_clear_reg_key ( td_void  )

◆ hal_rkp_debug()

td_void hal_rkp_debug ( td_void  )

◆ hal_rkp_deob_update()

td_s32 hal_rkp_deob_update ( crypto_kdf_otp_key  otp_key,
crypto_kdf_update_alg  alg 
)

◆ hal_rkp_deob_wait_done()

td_s32 hal_rkp_deob_wait_done ( td_void  )

◆ hal_rkp_kdf_get_val()

td_s32 hal_rkp_kdf_get_val ( td_u8 kdf_val,
td_u32  val_length 
)

◆ hal_rkp_kdf_hard_calculation()

td_s32 hal_rkp_kdf_hard_calculation ( const crypto_kdf_hard_calc_param param)

◆ hal_rkp_kdf_set_padding_key()

td_s32 hal_rkp_kdf_set_padding_key ( const td_u8 padding_key,
td_u32  key_length 
)

◆ hal_rkp_kdf_set_padding_salt()

td_s32 hal_rkp_kdf_set_padding_salt ( const td_u8 padding_salt,
td_u32  salt_length 
)

◆ hal_rkp_kdf_set_val()

td_s32 hal_rkp_kdf_set_val ( const td_u8 kdf_val,
td_u32  val_length 
)

◆ hal_rkp_kdf_sw_start()

td_s32 hal_rkp_kdf_sw_start ( crypto_kdf_sw_alg  sw_alg,
td_u32  count,
td_bool  is_wait 
)

◆ hal_rkp_kdf_wait_done()

td_s32 hal_rkp_kdf_wait_done ( td_void  )

◆ hal_rkp_lock()

td_s32 hal_rkp_lock ( td_void  )

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.

Description: hal rkp.
History:
2023-03-22, Create file.

◆ hal_rkp_unlock()

td_s32 hal_rkp_unlock ( void  )