security_hmac
HMAC (Hash-based Message Authentication Code) 提供基于哈希函数的消息认证码计算能力,支持 SHA1/SHA224/SHA256/SHA384/SHA512/SM3 算法的单流程与多流程 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])
头文件清单
功能说明
- 提供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])
头文件清单
功能说明
- 提供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])
头文件清单
功能说明
- 提供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])
头文件清单
功能说明
- 提供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])
头文件清单
功能说明
- 提供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])
头文件清单
功能说明
- 提供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)
头文件清单
功能说明
- 创建SHA1 HMAC计算句柄
- 初始化多流程HMAC计算上下文,设置密钥与Keyslot
- 配合
uapi_drv_cipher_hmac_sha1_update与uapi_drv_cipher_hmac_sha1_finish完成分段消息的HMAC计算
前置条件
- 调用时序约束:需在
uapi_drv_cipher_hmac_sha1_update与uapi_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
头文件清单
功能说明
- 更新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
头文件清单
功能说明
- 结束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)
头文件清单
功能说明
- 创建SHA224 HMAC计算句柄
- 初始化多流程HMAC计算上下文,设置密钥与Keyslot
- 配合
uapi_drv_cipher_hmac_sha224_update与uapi_drv_cipher_hmac_sha224_finish完成分段消息的HMAC计算
前置条件
- 调用时序约束:需在
uapi_drv_cipher_hmac_sha224_update与uapi_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
头文件清单
功能说明
- 更新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
头文件清单
功能说明
- 结束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)
头文件清单
功能说明
- 创建SHA256 HMAC计算句柄
- 初始化多流程HMAC计算上下文,设置密钥与Keyslot
- 配合
uapi_drv_cipher_hmac_sha256_update与uapi_drv_cipher_hmac_sha256_finish完成分段消息的HMAC计算
前置条件
- 调用时序约束:需在
uapi_drv_cipher_hmac_sha256_update与uapi_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
头文件清单
功能说明
- 更新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
头文件清单
功能说明
- 结束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)
头文件清单
功能说明
- 创建SHA384 HMAC计算句柄
- 初始化多流程HMAC计算上下文,设置密钥与Keyslot
- 配合
uapi_drv_cipher_hmac_sha384_update与uapi_drv_cipher_hmac_sha384_finish完成分段消息的HMAC计算
前置条件
- 调用时序约束:需在
uapi_drv_cipher_hmac_sha384_update与uapi_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
头文件清单
功能说明
- 更新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
头文件清单
功能说明
- 结束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)
头文件清单
功能说明
- 创建SHA512 HMAC计算句柄
- 初始化多流程HMAC计算上下文,设置密钥与Keyslot
- 配合
uapi_drv_cipher_hmac_sha512_update与uapi_drv_cipher_hmac_sha512_finish完成分段消息的HMAC计算
前置条件
- 调用时序约束:需在
uapi_drv_cipher_hmac_sha512_update与uapi_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
头文件清单
功能说明
- 更新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
头文件清单
功能说明
- 结束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)
头文件清单
功能说明
- 创建SM3 HMAC计算句柄
- 初始化多流程HMAC计算上下文,设置密钥与Keyslot
- 配合
uapi_drv_cipher_hmac_sm3_update与uapi_drv_cipher_hmac_sm3_finish完成分段消息的HMAC计算
前置条件
- 调用时序约束:需在
uapi_drv_cipher_hmac_sm3_update与uapi_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
头文件清单
功能说明
- 更新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
头文件清单
功能说明
- 结束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
头文件清单
功能说明
- 销毁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
使用说明
HMAC句柄类型,用于多流程HMAC接口(start/update/finish/destroy)的句柄传递
errcode_t
使用说明
错误码类型,本模块所有接口的返回值类型 [SDK公共基础类型]