跳转至

security_hmac

HMAC (Hash-based Message Authentication Code) 提供基于哈希函数的消息认证码计算能力,支持 SHA1/SHA224/SHA256/SHA384/SHA512/SM3 算法的单流程与多流程 HMAC 计算。

头文件清单

#include "include/driver/security_unified/security_hmac.h"

接口清单

接口名称 功能简述
uapi_drv_cipher_hmac_sha1 HMAC-SHA1单流程摘要计算
uapi_drv_cipher_hmac_sha224 HMAC-SHA224单流程摘要计算
uapi_drv_cipher_hmac_sha256 HMAC-SHA256单流程摘要计算
uapi_drv_cipher_hmac_sha384 HMAC-SHA384单流程摘要计算
uapi_drv_cipher_hmac_sha512 HMAC-SHA512单流程摘要计算
uapi_drv_cipher_hmac_sm3 HMAC-SM3单流程摘要计算
uapi_drv_cipher_hmac_sha1_start 创建SHA1 HMAC句柄
uapi_drv_cipher_hmac_sha1_update 更新SHA1-HMAC消息内容
uapi_drv_cipher_hmac_sha1_finish 结束SHA1-HMAC计算并获取摘要结果
uapi_drv_cipher_hmac_sha224_start 创建SHA224 HMAC句柄
uapi_drv_cipher_hmac_sha224_update 更新SHA224-HMAC消息内容
uapi_drv_cipher_hmac_sha224_finish 结束SHA224-HMAC计算并获取摘要结果
uapi_drv_cipher_hmac_sha256_start 创建SHA256 HMAC句柄
uapi_drv_cipher_hmac_sha256_update 更新SHA256-HMAC消息内容
uapi_drv_cipher_hmac_sha256_finish 结束SHA256-HMAC计算并获取摘要结果
uapi_drv_cipher_hmac_sha384_start 创建SHA384 HMAC句柄
uapi_drv_cipher_hmac_sha384_update 更新SHA384-HMAC消息内容
uapi_drv_cipher_hmac_sha384_finish 结束SHA384-HMAC计算并获取摘要结果
uapi_drv_cipher_hmac_sha512_start 创建SHA512 HMAC句柄
uapi_drv_cipher_hmac_sha512_update 更新SHA512-HMAC消息内容
uapi_drv_cipher_hmac_sha512_finish 结束SHA512-HMAC计算并获取摘要结果
uapi_drv_cipher_hmac_sm3_start 创建SM3 HMAC句柄
uapi_drv_cipher_hmac_sm3_update 更新SM3-HMAC消息内容
uapi_drv_cipher_hmac_sm3_finish 结束SM3-HMAC计算并获取摘要结果
uapi_drv_cipher_hmac_destroy 销毁HMAC句柄

Functions

uapi_drv_cipher_hmac_sha1

errcode_t uapi_drv_cipher_hmac_sha1(const uint8_t *buf, uint32_t len,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle, uint8_t out[20])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 提供HMAC-SHA1单流程摘要计算能力
  • 一次性完成消息输入与HMAC摘要计算,输出20字节摘要结果
  • 适用于消息量较小、无需分段处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 待计算的消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
out uint8_t[20] HMAC-SHA1摘要计算结果,20字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA1 功能宏 支持HMAC-SHA1功能 n

uapi_drv_cipher_hmac_sha224

errcode_t uapi_drv_cipher_hmac_sha224(const uint8_t *buf, uint32_t len,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle, uint8_t out[28])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 提供HMAC-SHA224单流程摘要计算能力
  • 一次性完成消息输入与HMAC摘要计算,输出28字节摘要结果
  • 适用于消息量较小、无需分段处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 待计算的消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
out uint8_t[28] HMAC-SHA224摘要计算结果,28字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA224 功能宏 支持HMAC-SHA224功能 n

uapi_drv_cipher_hmac_sha256

errcode_t uapi_drv_cipher_hmac_sha256(const uint8_t *buf, uint32_t len,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle, uint8_t out[32])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 提供HMAC-SHA256单流程摘要计算能力
  • 一次性完成消息输入与HMAC摘要计算,输出32字节摘要结果
  • 适用于消息量较小、无需分段处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 待计算的消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
out uint8_t[32] HMAC-SHA256摘要计算结果,32字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA256 功能宏 支持HMAC-SHA256功能 y

uapi_drv_cipher_hmac_sha384

errcode_t uapi_drv_cipher_hmac_sha384(const uint8_t *buf, uint32_t len,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle, uint8_t out[48])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 提供HMAC-SHA384单流程摘要计算能力
  • 一次性完成消息输入与HMAC摘要计算,输出48字节摘要结果
  • 适用于消息量较小、无需分段处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 待计算的消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
out uint8_t[48] HMAC-SHA384摘要计算结果,48字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA384 功能宏 支持HMAC-SHA384功能 y

uapi_drv_cipher_hmac_sha512

errcode_t uapi_drv_cipher_hmac_sha512(const uint8_t *buf, uint32_t len,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle, uint8_t out[64])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 提供HMAC-SHA512单流程摘要计算能力
  • 一次性完成消息输入与HMAC摘要计算,输出64字节摘要结果
  • 适用于消息量较小、无需分段处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 待计算的消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
out uint8_t[64] HMAC-SHA512摘要计算结果,64字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA512 功能宏 支持HMAC-SHA512功能 y

uapi_drv_cipher_hmac_sm3

errcode_t uapi_drv_cipher_hmac_sm3(const uint8_t *buf, uint32_t len,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle, uint8_t out[32])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 提供HMAC-SM3单流程摘要计算能力
  • 一次性完成消息输入与HMAC摘要计算,输出32字节摘要结果
  • 适用于消息量较小、无需分段处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 待计算的消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
out uint8_t[32] HMAC-SM3摘要计算结果,32字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SM3 功能宏 支持HMAC-SM3功能 y

uapi_drv_cipher_hmac_sha1_start

errcode_t uapi_drv_cipher_hmac_sha1_start(hmac_handle_t *ctx,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 创建SHA1 HMAC计算句柄
  • 初始化多流程HMAC计算上下文,设置密钥与Keyslot
  • 配合uapi_drv_cipher_hmac_sha1_updateuapi_drv_cipher_hmac_sha1_finish完成分段消息的HMAC计算

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha1_updateuapi_drv_cipher_hmac_sha1_finish之前调用
  • 依赖关系:依赖安全模块已初始化

入参

名称 参数类型 详细说明 约束取值范围
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
ctx hmac_handle_t * HMAC句柄,由调用方分配内存,函数填充创建的句柄

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 句柄创建成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA1 功能宏 支持HMAC-SHA1功能 n

uapi_drv_cipher_hmac_sha1_update

errcode_t uapi_drv_cipher_hmac_sha1_update(hmac_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 更新SHA1-HMAC消息内容
  • 支持多次调用以分段输入消息数据
  • 适用于消息量较大、需要分段处理的场景

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha1_start成功返回后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha1_start创建的有效句柄
buf const uint8_t * 消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 消息更新成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA1 功能宏 支持HMAC-SHA1功能 n

uapi_drv_cipher_hmac_sha1_finish

errcode_t uapi_drv_cipher_hmac_sha1_finish(hmac_handle_t ctx, uint8_t out[20])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 结束SHA1-HMAC计算并获取摘要结果
  • 输出20字节HMAC-SHA1摘要值
  • 完成后需调用uapi_drv_cipher_hmac_destroy释放句柄

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha1_start成功返回后、且所有uapi_drv_cipher_hmac_sha1_update调用完成后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha1_start创建的有效句柄

出参

名称 数据类型 输出说明
out uint8_t[20] HMAC-SHA1摘要计算结果,20字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算完成
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA1 功能宏 支持HMAC-SHA1功能 n

uapi_drv_cipher_hmac_sha224_start

errcode_t uapi_drv_cipher_hmac_sha224_start(hmac_handle_t *ctx,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 创建SHA224 HMAC计算句柄
  • 初始化多流程HMAC计算上下文,设置密钥与Keyslot
  • 配合uapi_drv_cipher_hmac_sha224_updateuapi_drv_cipher_hmac_sha224_finish完成分段消息的HMAC计算

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha224_updateuapi_drv_cipher_hmac_sha224_finish之前调用
  • 依赖关系:依赖安全模块已初始化

入参

名称 参数类型 详细说明 约束取值范围
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
ctx hmac_handle_t * HMAC句柄,由调用方分配内存,函数填充创建的句柄

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 句柄创建成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA224 功能宏 支持HMAC-SHA224功能 n

uapi_drv_cipher_hmac_sha224_update

errcode_t uapi_drv_cipher_hmac_sha224_update(hmac_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 更新SHA224-HMAC消息内容
  • 支持多次调用以分段输入消息数据
  • 适用于消息量较大、需要分段处理的场景

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha224_start成功返回后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha224_start创建的有效句柄
buf const uint8_t * 消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 消息更新成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA224 功能宏 支持HMAC-SHA224功能 n

uapi_drv_cipher_hmac_sha224_finish

errcode_t uapi_drv_cipher_hmac_sha224_finish(hmac_handle_t ctx, uint8_t out[28])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 结束SHA224-HMAC计算并获取摘要结果
  • 输出28字节HMAC-SHA224摘要值
  • 完成后需调用uapi_drv_cipher_hmac_destroy释放句柄

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha224_start成功返回后、且所有uapi_drv_cipher_hmac_sha224_update调用完成后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha224_start创建的有效句柄

出参

名称 数据类型 输出说明
out uint8_t[28] HMAC-SHA224摘要计算结果,28字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算完成
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA224 功能宏 支持HMAC-SHA224功能 n

uapi_drv_cipher_hmac_sha256_start

errcode_t uapi_drv_cipher_hmac_sha256_start(hmac_handle_t *ctx,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 创建SHA256 HMAC计算句柄
  • 初始化多流程HMAC计算上下文,设置密钥与Keyslot
  • 配合uapi_drv_cipher_hmac_sha256_updateuapi_drv_cipher_hmac_sha256_finish完成分段消息的HMAC计算

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha256_updateuapi_drv_cipher_hmac_sha256_finish之前调用
  • 依赖关系:依赖安全模块已初始化

入参

名称 参数类型 详细说明 约束取值范围
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
ctx hmac_handle_t * HMAC句柄,由调用方分配内存,函数填充创建的句柄

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 句柄创建成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA256 功能宏 支持HMAC-SHA256功能 y

uapi_drv_cipher_hmac_sha256_update

errcode_t uapi_drv_cipher_hmac_sha256_update(hmac_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 更新SHA256-HMAC消息内容
  • 支持多次调用以分段输入消息数据
  • 适用于消息量较大、需要分段处理的场景

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha256_start成功返回后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha256_start创建的有效句柄
buf const uint8_t * 消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 消息更新成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA256 功能宏 支持HMAC-SHA256功能 y

uapi_drv_cipher_hmac_sha256_finish

errcode_t uapi_drv_cipher_hmac_sha256_finish(hmac_handle_t ctx, uint8_t out[32])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 结束SHA256-HMAC计算并获取摘要结果
  • 输出32字节HMAC-SHA256摘要值
  • 完成后需调用uapi_drv_cipher_hmac_destroy释放句柄

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha256_start成功返回后、且所有uapi_drv_cipher_hmac_sha256_update调用完成后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha256_start创建的有效句柄

出参

名称 数据类型 输出说明
out uint8_t[32] HMAC-SHA256摘要计算结果,32字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算完成
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA256 功能宏 支持HMAC-SHA256功能 y

uapi_drv_cipher_hmac_sha384_start

errcode_t uapi_drv_cipher_hmac_sha384_start(hmac_handle_t *ctx,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 创建SHA384 HMAC计算句柄
  • 初始化多流程HMAC计算上下文,设置密钥与Keyslot
  • 配合uapi_drv_cipher_hmac_sha384_updateuapi_drv_cipher_hmac_sha384_finish完成分段消息的HMAC计算

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha384_updateuapi_drv_cipher_hmac_sha384_finish之前调用
  • 依赖关系:依赖安全模块已初始化

入参

名称 参数类型 详细说明 约束取值范围
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
ctx hmac_handle_t * HMAC句柄,由调用方分配内存,函数填充创建的句柄

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 句柄创建成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA384 功能宏 支持HMAC-SHA384功能 y

uapi_drv_cipher_hmac_sha384_update

errcode_t uapi_drv_cipher_hmac_sha384_update(hmac_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 更新SHA384-HMAC消息内容
  • 支持多次调用以分段输入消息数据
  • 适用于消息量较大、需要分段处理的场景

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha384_start成功返回后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha384_start创建的有效句柄
buf const uint8_t * 消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 消息更新成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA384 功能宏 支持HMAC-SHA384功能 y

uapi_drv_cipher_hmac_sha384_finish

errcode_t uapi_drv_cipher_hmac_sha384_finish(hmac_handle_t ctx, uint8_t out[48])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 结束SHA384-HMAC计算并获取摘要结果
  • 输出48字节HMAC-SHA384摘要值
  • 完成后需调用uapi_drv_cipher_hmac_destroy释放句柄

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha384_start成功返回后、且所有uapi_drv_cipher_hmac_sha384_update调用完成后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha384_start创建的有效句柄

出参

名称 数据类型 输出说明
out uint8_t[48] HMAC-SHA384摘要计算结果,48字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算完成
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA384 功能宏 支持HMAC-SHA384功能 y

uapi_drv_cipher_hmac_sha512_start

errcode_t uapi_drv_cipher_hmac_sha512_start(hmac_handle_t *ctx,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 创建SHA512 HMAC计算句柄
  • 初始化多流程HMAC计算上下文,设置密钥与Keyslot
  • 配合uapi_drv_cipher_hmac_sha512_updateuapi_drv_cipher_hmac_sha512_finish完成分段消息的HMAC计算

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha512_updateuapi_drv_cipher_hmac_sha512_finish之前调用
  • 依赖关系:依赖安全模块已初始化

入参

名称 参数类型 详细说明 约束取值范围
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
ctx hmac_handle_t * HMAC句柄,由调用方分配内存,函数填充创建的句柄

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 句柄创建成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA512 功能宏 支持HMAC-SHA512功能 y

uapi_drv_cipher_hmac_sha512_update

errcode_t uapi_drv_cipher_hmac_sha512_update(hmac_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 更新SHA512-HMAC消息内容
  • 支持多次调用以分段输入消息数据
  • 适用于消息量较大、需要分段处理的场景

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha512_start成功返回后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha512_start创建的有效句柄
buf const uint8_t * 消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 消息更新成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA512 功能宏 支持HMAC-SHA512功能 y

uapi_drv_cipher_hmac_sha512_finish

errcode_t uapi_drv_cipher_hmac_sha512_finish(hmac_handle_t ctx, uint8_t out[64])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 结束SHA512-HMAC计算并获取摘要结果
  • 输出64字节HMAC-SHA512摘要值
  • 完成后需调用uapi_drv_cipher_hmac_destroy释放句柄

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sha512_start成功返回后、且所有uapi_drv_cipher_hmac_sha512_update调用完成后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sha512_start创建的有效句柄

出参

名称 数据类型 输出说明
out uint8_t[64] HMAC-SHA512摘要计算结果,64字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算完成
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SHA512 功能宏 支持HMAC-SHA512功能 y

uapi_drv_cipher_hmac_sm3_start

errcode_t uapi_drv_cipher_hmac_sm3_start(hmac_handle_t *ctx,
    const uint8_t *key, uint32_t key_len, uint32_t keyslot_handle)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 创建SM3 HMAC计算句柄
  • 初始化多流程HMAC计算上下文,设置密钥与Keyslot
  • 配合uapi_drv_cipher_hmac_sm3_updateuapi_drv_cipher_hmac_sm3_finish完成分段消息的HMAC计算

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sm3_updateuapi_drv_cipher_hmac_sm3_finish之前调用
  • 依赖关系:依赖安全模块已初始化

入参

名称 参数类型 详细说明 约束取值范围
key const uint8_t * 密钥数据 不为NULL
key_len uint32_t 密钥长度 0 ~ 4294967295
keyslot_handle uint32_t Keyslot句柄 UAPI_DRV_INVALID_KEY_SLOT(0xFFFFFFFF)表示不使用Keyslot

出参

名称 数据类型 输出说明
ctx hmac_handle_t * HMAC句柄,由调用方分配内存,函数填充创建的句柄

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 句柄创建成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SM3 功能宏 支持HMAC-SM3功能 y

uapi_drv_cipher_hmac_sm3_update

errcode_t uapi_drv_cipher_hmac_sm3_update(hmac_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 更新SM3-HMAC消息内容
  • 支持多次调用以分段输入消息数据
  • 适用于消息量较大、需要分段处理的场景

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sm3_start成功返回后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sm3_start创建的有效句柄
buf const uint8_t * 消息数据 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 消息更新成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SM3 功能宏 支持HMAC-SM3功能 y

uapi_drv_cipher_hmac_sm3_finish

errcode_t uapi_drv_cipher_hmac_sm3_finish(hmac_handle_t ctx, uint8_t out[32])

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 结束SM3-HMAC计算并获取摘要结果
  • 输出32字节HMAC-SM3摘要值
  • 完成后需调用uapi_drv_cipher_hmac_destroy释放句柄

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_sm3_start成功返回后、且所有uapi_drv_cipher_hmac_sm3_update调用完成后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_sm3_start创建的有效句柄

出参

名称 数据类型 输出说明
out uint8_t[32] HMAC-SM3摘要计算结果,32字节

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 计算完成
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y
CONFIG_HASH_SUPPORT_HMAC_SM3 功能宏 支持HMAC-SM3功能 y

uapi_drv_cipher_hmac_destroy

errcode_t uapi_drv_cipher_hmac_destroy(hmac_handle_t ctx)

头文件清单

#include "include/driver/security_unified/security_hmac.h"

功能说明

  • 销毁HMAC计算句柄
  • 释放多流程HMAC计算占用的资源
  • uapi_drv_cipher_hmac_xxx_finish之后调用以完成资源回收

前置条件

  • 调用时序约束:需在uapi_drv_cipher_hmac_xxx_finish调用后或uapi_drv_cipher_hmac_xxx_start成功返回后调用
  • 依赖关系:依赖有效的HMAC句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hmac_handle_t HMAC句柄 uapi_drv_cipher_hmac_xxx_start创建的有效句柄

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 句柄销毁成功
Other 其他错误码,参考errcode_t 执行失败

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y
CONFIG_SECURITY_UNIFIED_SUPPORT_HASH 功能宏 支持Hash功能 y

Type definitions

hmac_handle_t

typedef uintptr_t hmac_handle_t;

使用说明

HMAC句柄类型,用于多流程HMAC接口(start/update/finish/destroy)的句柄传递

errcode_t

typedef uint32_t errcode_t;

使用说明

错误码类型,本模块所有接口的返回值类型 [SDK公共基础类型]

Macros

UAPI_DRV_INVALID_KEY_SLOT

#define UAPI_DRV_INVALID_KEY_SLOT    0xFFFFFFFF