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

浏览源代码.

结构体

struct  uapi_drv_cipher_buf_attr
 缓冲区的属性结构体 更多...
 
struct  uapi_drv_cipher_symc_attr_t
 对称加密参数属性结构体 更多...
 
struct  uapi_drv_cipher_symc_config_aes_ccm_gcm_t
 CCM和GCM工作模式的参数结构体 更多...
 
struct  uapi_drv_cipher_symc_ctrl_t
 对称加密算法的参数 更多...
 
struct  uapi_drv_cipher_symc_mac_attr_t
 Attribute structure of cbc_mac and cmac 更多...
 
struct  uapi_drv_hash_attr
 hash通道及算法参数结构体 更多...
 
struct  uapi_drv_cipher_hash_clone_ctx
 hash计算中间结果结构体 更多...
 
struct  uapi_drv_cipher_kdf_pbkdf2_param_t
 PBKDF2算法的参数结构体 更多...
 
struct  uapi_drv_cipher_hkdf_extract_t
 密钥提取的参数结构体 更多...
 
struct  uapi_drv_cipher_hkdf_expand_t
 密钥拓展的参数结构体 更多...
 
struct  uapi_drv_cipher_hkdf_t
 HKDF参数结构体 更多...
 

宏定义

#define UAPI_DRV_CIPHER_IV_LEN_IN_BYTES   16
 
#define UAPI_DRV_CIPHER_HASH_RESULT_SIZE_MAX_IN_WORD   16
 
#define UAPI_DRV_CIPHER_HASH_BLOCK_SIZE_MAX   128
 

类型定义

typedef enum uapi_drv_cipher_buffer_secure uapi_drv_cipher_buffer_secure_t
 缓冲区的安全属性选择
 
typedef enum uapi_drv_hash_type uapi_drv_cipher_hash_type_t
 hash算法类型
 
typedef struct uapi_drv_cipher_buf_attr uapi_drv_cipher_buf_attr_t
 缓冲区的属性结构体
 
typedef struct uapi_drv_hash_attr uapi_drv_cipher_hash_attr_t
 hash通道及算法参数结构体
 
typedef struct uapi_drv_cipher_hash_clone_ctx uapi_drv_cipher_hash_clone_ctx_t
 hash计算中间结果结构体
 

枚举

enum  uapi_drv_cipher_symc_type_t { UAPI_DRV_CIPHER_SYMC_TYPE_NORMAL = 0x0 , UAPI_DRV_CIPHER_SYMC_TYPE_REG , UAPI_DRV_CIPHER_SYMC_TYPE_MAX , UAPI_DRV_CIPHER_SYMC_TYPE_INVALID = 0xffffffff }
 对称加密通道类型 更多...
 
enum  uapi_drv_cipher_symc_alg_t {
  UAPI_DRV_CIPHER_SYMC_ALG_TDES = 0x0 , UAPI_DRV_CIPHER_SYMC_ALG_AES = 0x1 , UAPI_DRV_CIPHER_SYMC_ALG_SM4 = 0x2 , UAPI_DRV_CIPHER_SYMC_ALG_LEA = 0x3 ,
  UAPI_DRV_CIPHER_SYMC_ALG_DMA = 0x4 , UAPI_DRV_CIPHER_SYMC_ALG_MAX , UAPI_DRV_CIPHER_SYMC_ALG_INVALID = 0xffffffff
}
 对称加密算法类型 更多...
 
enum  uapi_drv_cipher_symc_work_mode_t {
  UAPI_DRV_CIPHER_SYMC_WORK_MODE_ECB = 0x0 , UAPI_DRV_CIPHER_SYMC_WORK_MODE_CBC , UAPI_DRV_CIPHER_SYMC_WORK_MODE_CTR , UAPI_DRV_CIPHER_SYMC_WORK_MODE_OFB ,
  UAPI_DRV_CIPHER_SYMC_WORK_MODE_CFB , UAPI_DRV_CIPHER_SYMC_WORK_MODE_CCM , UAPI_DRV_CIPHER_SYMC_WORK_MODE_GCM , UAPI_DRV_CIPHER_SYMC_WORK_MODE_CBC_MAC ,
  UAPI_DRV_CIPHER_SYMC_WORK_MODE_CMAC , UAPI_DRV_CIPHER_SYMC_WORK_MODE_MAX , UAPI_DRV_CIPHER_SYMC_WORK_MODE_INVALID = 0xffffffff
}
 对称加密算法工作模式 更多...
 
enum  uapi_drv_cipher_symc_key_length_t {
  UAPI_DRV_CIPHER_SYMC_KEY_64BIT = 0x0 , UAPI_DRV_CIPHER_SYMC_KEY_128BIT = 0x1 , UAPI_DRV_CIPHER_SYMC_KEY_192BIT = 0x2 , UAPI_DRV_CIPHER_SYMC_KEY_256BIT = 0x3 ,
  UAPI_DRV_CIPHER_SYMC_KEY_LENGTH_MAX , UAPI_DRV_CIPHER_SYMC_KEY_LENGTH_INVALID = 0xffffffff
}
 对称加密密钥长度 更多...
 
enum  uapi_drv_cipher_symc_key_parity_t { UAPI_DRV_CIPHER_SYMC_KEY_EVEN = 0x0 , UAPI_DRV_CIPHER_SYMC_KEY_ODD = 0x1 , UAPI_DRV_CIPHER_SYMC_KEY_PARITY_MAX , UAPI_DRV_CIPHER_SYMC_KEY_PARITY_INVALID = 0xffffffff }
 对称算法密钥奇偶性 更多...
 
enum  uapi_drv_cipher_symc_bit_width_t {
  UAPI_DRV_CIPHER_SYMC_BIT_WIDTH_1BIT = 0x0 , UAPI_DRV_CIPHER_SYMC_BIT_WIDTH_8BIT = 0x1 , UAPI_DRV_CIPHER_SYMC_BIT_WIDTH_64BIT = 0x2 , UAPI_DRV_CIPHER_SYMC_BIT_WIDTH_128BIT = 0x3 ,
  UAPI_DRV_CIPHER_SYMC_BIT_WIDTH_MAX , UAPI_DRV_CIPHER_SYMC_BIT_WIDTH_INVALID = 0xffffffff
}
 对称算法密钥位宽 更多...
 
enum  uapi_drv_cipher_symc_iv_change_type_t {
  UAPI_DRV_CIPHER_SYMC_IV_DO_NOT_CHANGE = 0 , UAPI_DRV_CIPHER_SYMC_IV_CHANGE_ONE_PKG , UAPI_DRV_CIPHER_SYMC_IV_CHANGE_ALL_PKG , UAPI_DRV_CIPHER_SYMC_GCM_IV_DO_NOT_CHANGE ,
  UAPI_DRV_CIPHER_SYMC_GCM_IV_CHANGE_START , UAPI_DRV_CIPHER_SYMC_GCM_IV_CHANGE_UPDATE , UAPI_DRV_CIPHER_SYMC_GCM_IV_CHANGE_FINISH , UAPI_DRV_CIPHER_SYMC_CCM_IV_DO_NOT_CHANGE ,
  UAPI_DRV_CIPHER_SYMC_CCM_IV_CHANGE_START , UAPI_DRV_CIPHER_SYMC_CCM_IV_CHANGE_UPDATE , UAPI_DRV_CIPHER_SYMC_CCM_IV_CHANGE_FINISH , UAPI_DRV_CIPHER_SYMC_IV_CHANGE_MAX ,
  UAPI_DRV_CIPHER_SYMC_IV_CHANGE_INVALID = 0xffffffff
}
 对称算法初始值标志 更多...
 
enum  uapi_drv_cipher_buffer_secure { UAPI_DRV_CIPHER_BUF_NONSECURE , UAPI_DRV_CIPHER_BUF_SECURE }
 缓冲区的安全属性选择 更多...
 
enum  uapi_drv_hash_type {
  UAPI_DRV_CIPHER_HASH_TYPE_SHA1 = 0xf690a0 , UAPI_DRV_CIPHER_HASH_TYPE_SHA224 = 0x10690e0 , UAPI_DRV_CIPHER_HASH_TYPE_SHA256 = 0x1169100 , UAPI_DRV_CIPHER_HASH_TYPE_SHA384 = 0x127a180 ,
  UAPI_DRV_CIPHER_HASH_TYPE_SHA512 = 0x137a200 , UAPI_DRV_CIPHER_HASH_TYPE_SM3 = 0x2169100 , UAPI_DRV_CIPHER_HASH_TYPE_HMAC_SHA1 = 0x10f690a0 , UAPI_DRV_CIPHER_HASH_TYPE_HMAC_SHA224 = 0x110690e0 ,
  UAPI_DRV_CIPHER_HASH_TYPE_HMAC_SHA256 = 0x11169100 , UAPI_DRV_CIPHER_HASH_TYPE_HMAC_SHA384 = 0x1127a180 , UAPI_DRV_CIPHER_HASH_TYPE_HMAC_SHA512 = 0x1137a200 , UAPI_DRV_CIPHER_HASH_TYPE_HMAC_SM3 = 0x12169100 ,
  UAPI_DRV_CIPHER_HASH_TYPE_INVALID = 0xffffffff
}
 hash算法类型 更多...
 

函数

errcode_t uapi_drv_cipher_symc_init (void)
 对称加密初始化。
 
errcode_t uapi_drv_cipher_symc_deinit (void)
 对称加密去初始化。
 
errcode_t uapi_drv_cipher_symc_create (uint32_t *symc_handle, const uapi_drv_cipher_symc_attr_t *symc_attr)
 创建symc通道,并设置symc通道属性参数。
 
errcode_t uapi_drv_cipher_symc_destroy (uint32_t symc_handle)
 销毁symc通道。
 
errcode_t uapi_drv_cipher_symc_set_config (uint32_t symc_handle, const uapi_drv_cipher_symc_ctrl_t *symc_ctrl)
 设置算法参数。
 
errcode_t uapi_drv_cipher_symc_get_config (uint32_t symc_handle, const uapi_drv_cipher_symc_ctrl_t *symc_ctrl)
 获取算法参数。
 
errcode_t uapi_drv_cipher_symc_attach (uint32_t symc_handle, uint32_t keyslot_handle)
 将key的句柄关联到加解密句柄。
 
errcode_t uapi_drv_cipher_symc_detach (uint32_t symc_handle, uint32_t keyslot_handle)
 将key的句柄和加解密句柄解关联。
 
errcode_t uapi_drv_cipher_symc_encrypt (uint32_t symc_handle, const uapi_drv_cipher_buf_attr_t *src_buf, const uapi_drv_cipher_buf_attr_t *dst_buf, uint32_t length)
 将源地址数据加密,输出到目的地址。
 
errcode_t uapi_drv_cipher_symc_decrypt (uint32_t symc_handle, const uapi_drv_cipher_buf_attr_t *src_buf, const uapi_drv_cipher_buf_attr_t *dst_buf, uint32_t length)
 将源地址数据解密,输出到目的地址。
 
errcode_t uapi_drv_cipher_symc_get_tag (uint32_t symc_handle, uint8_t *tag, uint32_t tag_length)
 获取CCM或者GCM模式的标签值。
 
errcode_t uapi_drv_cipher_mac_start (uint32_t *symc_handle, const uapi_drv_cipher_symc_mac_attr_t *mac_attr)
 创建symc通道,并设置symc通道及算法参数。
 
errcode_t uapi_drv_cipher_mac_update (uint32_t symc_handle, const uapi_drv_cipher_buf_attr_t *src_buf, uint32_t length)
 计算mac值
 
errcode_t uapi_drv_cipher_mac_finish (uint32_t symc_handle, uint8_t *mac, uint32_t *mac_length)
 计算mac值
 
errcode_t uapi_drv_cipher_hash_init (void)
 Hash计算初始化。
 
errcode_t uapi_drv_cipher_hash_deinit (void)
 Hash计算去初始化。
 
errcode_t uapi_drv_cipher_hash_start (uint32_t *hash_handle, const uapi_drv_cipher_hash_attr_t *hash_attr)
 创建hash通道,并设置hash通道及算法参数。
 
errcode_t uapi_drv_cipher_hash_update (uint32_t hash_handle, const uapi_drv_cipher_buf_attr_t *src_buf, const uint32_t len)
 hash计算
 
errcode_t uapi_drv_cipher_hash_finish (uint32_t hash_handle, uint8_t *out, uint32_t *out_len)
 HASH计算获取摘要信息,并在计算成功的时候销毁hash句柄。
 
errcode_t uapi_drv_cipher_hash_get (uint32_t hash_handle, uapi_drv_cipher_hash_clone_ctx_t *hash_clone_ctx)
 获取HASH计算中间结果。
 
errcode_t uapi_drv_cipher_hash_set (uint32_t hash_handle, const uapi_drv_cipher_hash_clone_ctx_t *hash_clone_ctx)
 设置HASH计算中间结果。
 
errcode_t uapi_drv_cipher_hash_destroy (uint32_t hash_handle)
 销毁hash通道。
 
errcode_t uapi_drv_cipher_pbkdf2 (const uapi_drv_cipher_kdf_pbkdf2_param_t *param, uint8_t *out, const uint32_t out_len)
 PBKDF2算法派生秘钥。
 
errcode_t uapi_drv_cipher_hkdf_extract (uapi_drv_cipher_hkdf_extract_t *extract_param, uint8_t *prk, uint32_t *prk_length)
 提取密钥。
 
errcode_t uapi_drv_cipher_hkdf_expand (const uapi_drv_cipher_hkdf_expand_t *expand_param, uint8_t *okm, uint32_t okm_length)
 拓展密钥。
 
errcode_t uapi_drv_cipher_hkdf (uapi_drv_cipher_hkdf_t *hkdf_param, uint8_t *okm, uint32_t okm_length)
 HKDF,包括提取密钥和拓展密钥两步。