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

结构体

struct  crypto_kapi_keyslot_ctx
 
struct  crypto_kapi_klad_ctx
 

宏定义

#define handle_2_id(handle)   (((handle)) & 0xffff)
 
#define CRYPTO_MCIPHER_KEYSLOT_NUM   8
 
#define CRYPTO_HMAC_KEYSLOT_NUM   2
 
#define CRYPTO_KLAD_VIRT_NUM   4
 
#define kapi_klad_mutex_lock()   crypto_mutex_lock(&g_klad_mutex)
 
#define kapi_klad_mutex_unlock()   crypto_mutex_unlock(&g_klad_mutex)
 
#define kapi_keyslot_mutex_lock()   crypto_mutex_lock(&g_keyslot_mutex)
 
#define kapi_keyslot_mutex_unlock()   crypto_mutex_unlock(&g_keyslot_mutex)
 
#define km_compat_errno(err_code)   KAPI_COMPAT_ERRNO(ERROR_MODULE_KM, err_code)
 
#define km_null_ptr_chk(ptr)    crypto_chk_return((ptr) == TD_NULL, km_compat_errno(ERROR_PARAM_IS_NULL), #ptr" is NULL\n")
 
#define HASH_BLOCK_SIZE_64BYTE   64
 
#define HASH_BLOCK_SIZE_128BYTE   128
 
#define CRYPTO_EFFECTIVE_KEY_SALT_LENGTH_MAX   28
 

函数

td_s32 kapi_km_env_init (td_void)
 
td_s32 kapi_km_env_deinit (td_void)
 
td_s32 kapi_km_deinit (td_void)
 
td_s32 kapi_keyslot_create (td_handle *kapi_keyslot_handle, crypto_keyslot_type keyslot_type)
 
 CRYPTO_EXPORT_SYMBOL (kapi_keyslot_create)
 
td_s32 kapi_keyslot_destroy (td_handle kapi_keyslot_handle)
 
 CRYPTO_EXPORT_SYMBOL (kapi_keyslot_destroy)
 
td_s32 kapi_klad_create (td_handle *kapi_klad_handle)
 
 CRYPTO_EXPORT_SYMBOL (kapi_klad_create)
 
td_s32 kapi_klad_destroy (td_handle kapi_klad_handle)
 
 CRYPTO_EXPORT_SYMBOL (kapi_klad_destroy)
 
td_s32 kapi_klad_attach (td_handle kapi_klad_handle, crypto_klad_dest klad_type, td_handle kapi_keyslot_handle)
 
 CRYPTO_EXPORT_SYMBOL (kapi_klad_attach)
 
td_s32 kapi_klad_detach (td_handle kapi_klad_handle, crypto_klad_dest klad_type, td_handle kapi_keyslot_handle)
 
 CRYPTO_EXPORT_SYMBOL (kapi_klad_detach)
 
td_s32 kapi_klad_set_attr (td_handle kapi_klad_handle, const crypto_klad_attr *attr)
 
 CRYPTO_EXPORT_SYMBOL (kapi_klad_set_attr)
 
td_s32 kapi_klad_get_attr (td_handle kapi_klad_handle, crypto_klad_attr *attr)
 
 CRYPTO_EXPORT_SYMBOL (kapi_klad_get_attr)
 
td_s32 kapi_klad_set_clear_key (td_handle kapi_klad_handle, const crypto_klad_clear_key *key)
 
 CRYPTO_EXPORT_SYMBOL (kapi_klad_set_clear_key)
 
td_s32 kapi_klad_set_effective_key (td_handle kapi_klad_handle, const crypto_klad_effective_key *effective_key)
 
 CRYPTO_EXPORT_SYMBOL (kapi_klad_set_effective_key)
 
td_s32 kapi_kdf_update (crypto_kdf_otp_key otp_key, crypto_kdf_update_alg alg)
 
 CRYPTO_EXPORT_SYMBOL (kapi_kdf_update)
 

变量

crypto_mutex g_klad_mutex
 
crypto_mutex g_keyslot_mutex
 

宏定义说明

◆ CRYPTO_EFFECTIVE_KEY_SALT_LENGTH_MAX

#define CRYPTO_EFFECTIVE_KEY_SALT_LENGTH_MAX   28

◆ CRYPTO_HMAC_KEYSLOT_NUM

#define CRYPTO_HMAC_KEYSLOT_NUM   2

◆ CRYPTO_KLAD_VIRT_NUM

#define CRYPTO_KLAD_VIRT_NUM   4

◆ CRYPTO_MCIPHER_KEYSLOT_NUM

#define CRYPTO_MCIPHER_KEYSLOT_NUM   8

◆ handle_2_id

#define handle_2_id (   handle)    (((handle)) & 0xffff)

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved. Description: key manager kernel API function implementation.

Create: 2023-05-26

◆ HASH_BLOCK_SIZE_128BYTE

#define HASH_BLOCK_SIZE_128BYTE   128

◆ HASH_BLOCK_SIZE_64BYTE

#define HASH_BLOCK_SIZE_64BYTE   64

◆ kapi_keyslot_mutex_lock

#define kapi_keyslot_mutex_lock ( )    crypto_mutex_lock(&g_keyslot_mutex)

◆ kapi_keyslot_mutex_unlock

#define kapi_keyslot_mutex_unlock ( )    crypto_mutex_unlock(&g_keyslot_mutex)

◆ kapi_klad_mutex_lock

#define kapi_klad_mutex_lock ( )    crypto_mutex_lock(&g_klad_mutex)

◆ kapi_klad_mutex_unlock

#define kapi_klad_mutex_unlock ( )    crypto_mutex_unlock(&g_klad_mutex)

◆ km_compat_errno

#define km_compat_errno (   err_code)    KAPI_COMPAT_ERRNO(ERROR_MODULE_KM, err_code)

◆ km_null_ptr_chk

#define km_null_ptr_chk (   ptr)     crypto_chk_return((ptr) == TD_NULL, km_compat_errno(ERROR_PARAM_IS_NULL), #ptr" is NULL\n")

函数说明

◆ CRYPTO_EXPORT_SYMBOL() [1/11]

CRYPTO_EXPORT_SYMBOL ( kapi_kdf_update  )

◆ CRYPTO_EXPORT_SYMBOL() [2/11]

CRYPTO_EXPORT_SYMBOL ( kapi_keyslot_create  )

◆ CRYPTO_EXPORT_SYMBOL() [3/11]

CRYPTO_EXPORT_SYMBOL ( kapi_keyslot_destroy  )

◆ CRYPTO_EXPORT_SYMBOL() [4/11]

CRYPTO_EXPORT_SYMBOL ( kapi_klad_attach  )

◆ CRYPTO_EXPORT_SYMBOL() [5/11]

CRYPTO_EXPORT_SYMBOL ( kapi_klad_create  )

◆ CRYPTO_EXPORT_SYMBOL() [6/11]

CRYPTO_EXPORT_SYMBOL ( kapi_klad_destroy  )

◆ CRYPTO_EXPORT_SYMBOL() [7/11]

CRYPTO_EXPORT_SYMBOL ( kapi_klad_detach  )

◆ CRYPTO_EXPORT_SYMBOL() [8/11]

CRYPTO_EXPORT_SYMBOL ( kapi_klad_get_attr  )

◆ CRYPTO_EXPORT_SYMBOL() [9/11]

CRYPTO_EXPORT_SYMBOL ( kapi_klad_set_attr  )

◆ CRYPTO_EXPORT_SYMBOL() [10/11]

CRYPTO_EXPORT_SYMBOL ( kapi_klad_set_clear_key  )

◆ CRYPTO_EXPORT_SYMBOL() [11/11]

CRYPTO_EXPORT_SYMBOL ( kapi_klad_set_effective_key  )

◆ kapi_kdf_update()

td_s32 kapi_kdf_update ( crypto_kdf_otp_key  otp_key,
crypto_kdf_update_alg  alg 
)

◆ kapi_keyslot_create()

td_s32 kapi_keyslot_create ( td_handle kapi_keyslot_handle,
crypto_keyslot_type  keyslot_type 
)

◆ kapi_keyslot_destroy()

td_s32 kapi_keyslot_destroy ( td_handle  kapi_keyslot_handle)

◆ kapi_klad_attach()

td_s32 kapi_klad_attach ( td_handle  kapi_klad_handle,
crypto_klad_dest  klad_type,
td_handle  kapi_keyslot_handle 
)

◆ kapi_klad_create()

td_s32 kapi_klad_create ( td_handle kapi_klad_handle)

◆ kapi_klad_destroy()

td_s32 kapi_klad_destroy ( td_handle  kapi_klad_handle)

◆ kapi_klad_detach()

td_s32 kapi_klad_detach ( td_handle  kapi_klad_handle,
crypto_klad_dest  klad_type,
td_handle  kapi_keyslot_handle 
)

◆ kapi_klad_get_attr()

td_s32 kapi_klad_get_attr ( td_handle  kapi_klad_handle,
crypto_klad_attr attr 
)

◆ kapi_klad_set_attr()

td_s32 kapi_klad_set_attr ( td_handle  kapi_klad_handle,
const crypto_klad_attr attr 
)

◆ kapi_klad_set_clear_key()

td_s32 kapi_klad_set_clear_key ( td_handle  kapi_klad_handle,
const crypto_klad_clear_key key 
)

◆ kapi_klad_set_effective_key()

td_s32 kapi_klad_set_effective_key ( td_handle  kapi_klad_handle,
const crypto_klad_effective_key effective_key 
)

◆ kapi_km_deinit()

td_s32 kapi_km_deinit ( td_void  )

◆ kapi_km_env_deinit()

td_s32 kapi_km_env_deinit ( td_void  )

◆ kapi_km_env_init()

td_s32 kapi_km_env_init ( td_void  )

变量说明

◆ g_keyslot_mutex

crypto_mutex g_keyslot_mutex

◆ g_klad_mutex

crypto_mutex g_klad_mutex