WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
km.h 文件参考
#include <stdint.h>
#include <stdbool.h>
#include "errcode.h"
km.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

结构体

struct  uapi_drv_klad_clear_key_t
 klad送明文key时,明文key的结构。 更多...
 
struct  uapi_drv_klad_config_t
 Keyladder 根密钥类型选择。 更多...
 
struct  uapi_drv_klad_key_config_t
 Keyladder 工作密钥属性配置。 更多...
 
struct  uapi_drv_klad_key_secure_config_t
 key 的安全属性。 当加密工作模式为CBC_MAC时,dest_buf_sec_support和dest_buf_non_sec_support不能同时为false。 更多...
 
struct  uapi_drv_klad_attr_t
 Keyladder 配置属性。 更多...
 
struct  uapi_drv_klad_effective_key_t
 Keyladder硬件key参数配置。 更多...
 

枚举

enum  uapi_drv_keyslot_type_t { UAPI_DRV_KEYSLOT_TYPE_MCIPHER = 0 , UAPI_DRV_KEYSLOT_TYPE_HMAC , UAPI_DRV_KEYSLOT_TYPE_FLASH }
 keyslot 类型选择。 更多...
 
enum  uapi_drv_kdf_otp_key_t { UAPI_DRV_KDF_OTP_KEY_MRK1 = 0 , UAPI_DRV_KDF_OTP_KEY_USK , UAPI_DRV_KDF_OTP_KEY_RUSK }
 KDF 密钥派生时根密钥选择。 更多...
 
enum  uapi_drv_kdf_update_alg_t { UAPI_DRV_KDF_UPDATE_ALG_AES = 0 , UAPI_DRV_KDF_UPDATE_ALG_SM4 }
 KDF 密钥派生时对称算法选择。 更多...
 
enum  uapi_drv_kdf_hard_key_type_t {
  UAPI_DRV_KDF_HARD_KEY_TYPE_SBRK0 = 0x03000000 , UAPI_DRV_KDF_HARD_KEY_TYPE_SBRK1 , UAPI_DRV_KDF_HARD_KEY_TYPE_SBRK2 , UAPI_DRV_KDF_HARD_KEY_TYPE_ABRK0 ,
  UAPI_DRV_KDF_HARD_KEY_TYPE_ABRK1 , UAPI_DRV_KDF_HARD_KEY_TYPE_ABRK2 , UAPI_DRV_KDF_HARD_KEY_TYPE_DRK0 , UAPI_DRV_KDF_HARD_KEY_TYPE_DRK1 ,
  UAPI_DRV_KDF_HARD_KEY_TYPE_RDRK0 , UAPI_DRV_KDF_HARD_KEY_TYPE_RDRK1 , UAPI_DRV_KDF_HARD_KEY_TYPE_PSK , UAPI_DRV_KDF_HARD_KEY_TYPE_FDRK0 ,
  UAPI_DRV_KDF_HARD_KEY_TYPE_ODRK0 , UAPI_DRV_KDF_HARD_KEY_TYPE_ODRK1 , UAPI_DRV_KDF_HARD_KEY_TYPE_OARK0 , UAPI_DRV_KDF_HARD_KEY_TYPE_MDRK0 ,
  UAPI_DRV_KDF_HARD_KEY_TYPE_MDRK1 , UAPI_DRV_KDF_HARD_KEY_TYPE_MDRK2 , UAPI_DRV_KDF_HARD_KEY_TYPE_MDRK3 , UAPI_DRV_KDF_HARD_KEY_TYPE_ABRK_REE ,
  UAPI_DRV_KDF_HARD_KEY_TYPE_ABRK_TEE , UAPI_DRV_KDF_HARD_KEY_TYPE_RDRK_REE , UAPI_DRV_KDF_HARD_KEY_TYPE_RDRK_TEE
}
 KDF 密钥派生时派生key类型选择。 更多...
 
enum  uapi_drv_kdf_hard_alg_t { UAPI_DRV_KDF_HARD_ALG_SHA256 = 0 , UAPI_DRV_KDF_HARD_ALG_SM3 , UAPI_DRV_KDF_HARD_ALG_MAX }
 KDF 密钥派生,硬件PBKDF2算法时HASH算法选择。 更多...
 
enum  uapi_drv_klad_engine_t {
  UAPI_DRV_KLAD_ENGINE_AES = 0x20 , UAPI_DRV_KLAD_ENGINE_LAE = 0x40 , UAPI_DRV_KLAD_ENGINE_SM4 = 0x50 , UAPI_DRV_KLAD_ENGINE_TDES = 0x70 ,
  UAPI_DRV_KLAD_ENGINE_SHA1_HMAC = 0xA0 , UAPI_DRV_KLAD_ENGINE_SHA2_HMAC = 0xA1 , UAPI_DRV_KLAD_ENGINE_SM3_HMAC = 0xA2 , UAPI_DRV_KLAD_ENGINE_MAX
}
 klad 目标模块算法引擎,决定送出的 key 支持哪个算法。 更多...
 
enum  uapi_drv_klad_dest_t {
  UAPI_DRV_KLAD_DEST_MCIPHER = 0 , UAPI_DRV_KLAD_DEST_HMAC , UAPI_DRV_KLAD_DEST_FLASH , UAPI_DRV_KLAD_DEST_NPU ,
  UAPI_DRV_KLAD_DEST_AIDSP , UAPI_DRV_KLAD_DEST_MAX
}
 klad 目标模块,决定 key 送给哪个模块使用。 更多...
 
enum  uapi_drv_klad_flash_key_type_t { UAPI_DRV_KLAD_FLASH_KEY_TYPE_REE_DEC = 0x00 , UAPI_DRV_KLAD_FLASH_KEY_TYPE_TEE_DEC , UAPI_DRV_KLAD_FLASH_KEY_TYPE_TEE_AUT , UAPI_DRV_KLAD_FLASH_KEY_TYPE_INVALID }
 Flash 在线解密模式,决定送 key 后使用哪种模式 更多...
 
enum  uapi_drv_klad_key_size_t { UAPI_DRV_KLAD_KEY_SIZE_128BIT , UAPI_DRV_KLAD_KEY_SIZE_192BIT , UAPI_DRV_KLAD_KEY_SIZE_256BIT , UAPI_DRV_KLAD_KEY_SIZE_INVALID = 0xffffffff }
 对称密钥长度。决定了最终的工作密钥的长度 更多...
 
enum  uapi_drv_klad_hmac_type_t {
  UAPI_DRV_KLAD_HMAC_TYPE_SHA1 = 0x20 , UAPI_DRV_KLAD_HMAC_TYPE_SHA224 , UAPI_DRV_KLAD_HMAC_TYPE_SHA256 , UAPI_DRV_KLAD_HMAC_TYPE_SHA384 ,
  UAPI_DRV_KLAD_HMAC_TYPE_SHA512 , UAPI_DRV_KLAD_HMAC_TYPE_SM3 = 0x30 , UAPI_DRV_KLAD_HMAC_TYPE_MAX , UAPI_DRV_KLAD_HMAC_TYPE_INVALID = 0xffffffff
}
 当目标引擎为HMAC时,决定具体使用的HAMC算法。 更多...
 

函数

errcode_t uapi_drv_km_init (void)
 KM初始化。
 
errcode_t uapi_drv_km_deinit (void)
 KM去初始化。
 
errcode_t uapi_drv_keyslot_create (uint32_t *keyslot_handle, uapi_drv_keyslot_type_t keyslot_type)
 创建keyslot句柄。
 
errcode_t uapi_drv_keyslot_destroy (uint32_t keyslot_handle)
 销毁keyslot句柄。
 
errcode_t uapi_drv_klad_create (uint32_t *klad_handle)
 创建keyladder通道句柄。
 
errcode_t uapi_drv_klad_destroy (uint32_t klad_handle)
 销毁keyladder通道句柄。
 
errcode_t uapi_drv_klad_attach (uint32_t klad_handle, uapi_drv_klad_dest_t klad_type, uint32_t keyslot_handle)
 将keyslot句柄与klad句柄关联上。
 
errcode_t uapi_drv_klad_detach (uint32_t klad_handle, uapi_drv_klad_dest_t klad_type, uint32_t keyslot_handle)
 将keyslot句柄与klad句柄解关联。
 
errcode_t uapi_drv_klad_set_attr (uint32_t klad_handle, const uapi_drv_klad_attr_t *attr)
 设置keyladder的属性。
 
errcode_t uapi_drv_klad_get_attr (uint32_t klad_handle, uapi_drv_klad_attr_t *attr)
 获取keyladder的属性。
 
errcode_t uapi_drv_klad_set_effective_key (uint32_t klad_handle, const uapi_drv_klad_effective_key_t *key)
 设置effective key。
 
errcode_t uapi_drv_klad_set_clear_key (uint32_t klad_handle, const uapi_drv_klad_clear_key_t *key)
 设置clear key。
 
errcode_t uapi_drv_kdf_update (uapi_drv_kdf_otp_key_t otp_key, uapi_drv_kdf_update_alg_t alg)
 更新根密钥。