跳转至

security_hash

security_hash 提供 SHA1、SHA224、SHA256、SHA384、SHA512 及 SM3 等多种 Hash 摘要算法的单流程与多流程计算能力。

头文件清单

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

接口清单

接口名称 功能简述
uapi_drv_cipher_sha1 SHA1摘要计算,单流程接口
uapi_drv_cipher_sha224 SHA224摘要计算,单流程接口
uapi_drv_cipher_sha256 SHA256摘要计算,单流程接口
uapi_drv_cipher_sha384 SHA384摘要计算,单流程接口
uapi_drv_cipher_sha512 SHA512摘要计算,单流程接口
uapi_drv_cipher_sm3 SM3摘要计算,单流程接口
uapi_drv_cipher_sha1_start 创建SHA1 Hash句柄
uapi_drv_cipher_sha1_update 更新SHA1消息内容,支持多次调用
uapi_drv_cipher_sha1_finish 结束SHA1 Hash计算并获取摘要结果
uapi_drv_cipher_sha224_start 创建SHA224 Hash句柄
uapi_drv_cipher_sha224_update 更新SHA224消息内容,支持多次调用
uapi_drv_cipher_sha224_finish 结束SHA224 Hash计算并获取摘要结果
uapi_drv_cipher_sha256_start 创建SHA256 Hash句柄
uapi_drv_cipher_sha256_update 更新SHA256消息内容,支持多次调用
uapi_drv_cipher_sha256_finish 结束SHA256 Hash计算并获取摘要结果
uapi_drv_cipher_sha384_start 创建SHA384 Hash句柄
uapi_drv_cipher_sha384_update 更新SHA384消息内容,支持多次调用
uapi_drv_cipher_sha384_finish 结束SHA384 Hash计算并获取摘要结果
uapi_drv_cipher_sha512_start 创建SHA512 Hash句柄
uapi_drv_cipher_sha512_update 更新SHA512消息内容,支持多次调用
uapi_drv_cipher_sha512_finish 结束SHA512 Hash计算并获取摘要结果
uapi_drv_cipher_sm3_start 创建SM3 Hash句柄
uapi_drv_cipher_sm3_update 更新SM3消息内容,支持多次调用
uapi_drv_cipher_sm3_finish 结束SM3 Hash计算并获取摘要结果
uapi_drv_cipher_sha_destroy 销毁Hash句柄

Functions

uapi_drv_cipher_sha1

errcode_t uapi_drv_cipher_sha1(const uint8_t *buf, uint32_t len, uint8_t out[20])

头文件清单

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

功能说明

  • 对输入消息执行SHA1摘要计算,输出20字节摘要结果
  • 单流程接口,一次调用完成消息输入和摘要输出
  • 适用于数据量较小、可一次性处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA1 功能宏 支持SHA1 Hash功能 n

uapi_drv_cipher_sha224

errcode_t uapi_drv_cipher_sha224(const uint8_t *buf, uint32_t len, uint8_t out[28])

头文件清单

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

功能说明

  • 对输入消息执行SHA224摘要计算,输出28字节摘要结果
  • 单流程接口,一次调用完成消息输入和摘要输出
  • 适用于数据量较小、可一次性处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA224 功能宏 支持SHA224 Hash功能 n

uapi_drv_cipher_sha256

errcode_t uapi_drv_cipher_sha256(const uint8_t *buf, uint32_t len, uint8_t out[32])

头文件清单

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

功能说明

  • 对输入消息执行SHA256摘要计算,输出32字节摘要结果
  • 单流程接口,一次调用完成消息输入和摘要输出
  • 适用于数据量较小、可一次性处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA256 功能宏 支持SHA256 Hash功能 y

uapi_drv_cipher_sha384

errcode_t uapi_drv_cipher_sha384(const uint8_t *buf, uint32_t len, uint8_t out[48])

头文件清单

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

功能说明

  • 对输入消息执行SHA384摘要计算,输出48字节摘要结果
  • 单流程接口,一次调用完成消息输入和摘要输出
  • 适用于数据量较小、可一次性处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA384 功能宏 支持SHA384 Hash功能 y

uapi_drv_cipher_sha512

errcode_t uapi_drv_cipher_sha512(const uint8_t *buf, uint32_t len, uint8_t out[64])

头文件清单

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

功能说明

  • 对输入消息执行SHA512摘要计算,输出64字节摘要结果
  • 单流程接口,一次调用完成消息输入和摘要输出
  • 适用于数据量较小、可一次性处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA512 功能宏 支持SHA512 Hash功能 y

uapi_drv_cipher_sm3

errcode_t uapi_drv_cipher_sm3(const uint8_t *buf, uint32_t len, uint8_t out[32])

头文件清单

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

功能说明

  • 对输入消息执行SM3摘要计算,输出32字节摘要结果
  • 单流程接口,一次调用完成消息输入和摘要输出
  • 适用于数据量较小、可一次性处理的场景

入参

名称 参数类型 详细说明 约束取值范围
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SM3 功能宏 支持SM3 Hash功能 y

uapi_drv_cipher_sha1_start

errcode_t uapi_drv_cipher_sha1_start(hash_handle_t *ctx)

头文件清单

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

功能说明

  • 创建SHA1 Hash计算句柄,用于多流程计算模式
  • 调用成功后返回Hash句柄,后续通过update/finish接口分步完成摘要计算
  • 适用于数据量较大或需要分块处理的场景

前置条件

  • 调用时序约束:需在update和finish接口之前调用
  • 依赖关系:依赖安全驱动模块已初始化

出参

名称 数据类型 输出说明
ctx hash_handle_t * 创建的Hash句柄

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA1 功能宏 支持SHA1 Hash功能 n

uapi_drv_cipher_sha1_update

errcode_t uapi_drv_cipher_sha1_update(hash_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

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

功能说明

  • 向SHA1 Hash计算中更新消息数据,支持多次调用
  • 每次调用将消息片段送入Hash计算上下文
  • 适用于分块传输数据的场景

前置条件

  • 调用时序约束:必须在sha1_start成功返回后调用,在sha1_finish之前调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA1 功能宏 支持SHA1 Hash功能 n

uapi_drv_cipher_sha1_finish

errcode_t uapi_drv_cipher_sha1_finish(hash_handle_t ctx, uint8_t out[20])

头文件清单

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

功能说明

  • 结束SHA1 Hash计算,输出20字节摘要结果
  • 完成多流程计算模式下最后一轮摘要计算
  • 调用完成后应调用sha_destroy释放句柄

前置条件

  • 调用时序约束:必须在sha1_start之后、且至少一次sha1_update之后调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA1 功能宏 支持SHA1 Hash功能 n

uapi_drv_cipher_sha224_start

errcode_t uapi_drv_cipher_sha224_start(hash_handle_t *ctx)

头文件清单

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

功能说明

  • 创建SHA224 Hash计算句柄,用于多流程计算模式
  • 调用成功后返回Hash句柄,后续通过update/finish接口分步完成摘要计算
  • 适用于数据量较大或需要分块处理的场景

前置条件

  • 调用时序约束:需在update和finish接口之前调用
  • 依赖关系:依赖安全驱动模块已初始化

出参

名称 数据类型 输出说明
ctx hash_handle_t * 创建的Hash句柄

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA224 功能宏 支持SHA224 Hash功能 n

uapi_drv_cipher_sha224_update

errcode_t uapi_drv_cipher_sha224_update(hash_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

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

功能说明

  • 向SHA224 Hash计算中更新消息数据,支持多次调用
  • 每次调用将消息片段送入Hash计算上下文
  • 适用于分块传输数据的场景

前置条件

  • 调用时序约束:必须在sha224_start成功返回后调用,在sha224_finish之前调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA224 功能宏 支持SHA224 Hash功能 n

uapi_drv_cipher_sha224_finish

errcode_t uapi_drv_cipher_sha224_finish(hash_handle_t ctx, uint8_t out[28])

头文件清单

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

功能说明

  • 结束SHA224 Hash计算,输出28字节摘要结果
  • 完成多流程计算模式下最后一轮摘要计算
  • 调用完成后应调用sha_destroy释放句柄

前置条件

  • 调用时序约束:必须在sha224_start之后、且至少一次sha224_update之后调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA224 功能宏 支持SHA224 Hash功能 n

uapi_drv_cipher_sha256_start

errcode_t uapi_drv_cipher_sha256_start(hash_handle_t *ctx)

头文件清单

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

功能说明

  • 创建SHA256 Hash计算句柄,用于多流程计算模式
  • 调用成功后返回Hash句柄,后续通过update/finish接口分步完成摘要计算
  • 适用于数据量较大或需要分块处理的场景

前置条件

  • 调用时序约束:需在update和finish接口之前调用
  • 依赖关系:依赖安全驱动模块已初始化

出参

名称 数据类型 输出说明
ctx hash_handle_t * 创建的Hash句柄

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA256 功能宏 支持SHA256 Hash功能 y

uapi_drv_cipher_sha256_update

errcode_t uapi_drv_cipher_sha256_update(hash_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

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

功能说明

  • 向SHA256 Hash计算中更新消息数据,支持多次调用
  • 每次调用将消息片段送入Hash计算上下文
  • 适用于分块传输数据的场景

前置条件

  • 调用时序约束:必须在sha256_start成功返回后调用,在sha256_finish之前调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA256 功能宏 支持SHA256 Hash功能 y

uapi_drv_cipher_sha256_finish

errcode_t uapi_drv_cipher_sha256_finish(hash_handle_t ctx, uint8_t out[32])

头文件清单

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

功能说明

  • 结束SHA256 Hash计算,输出32字节摘要结果
  • 完成多流程计算模式下最后一轮摘要计算
  • 调用完成后应调用sha_destroy释放句柄

前置条件

  • 调用时序约束:必须在sha256_start之后、且至少一次sha256_update之后调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA256 功能宏 支持SHA256 Hash功能 y

uapi_drv_cipher_sha384_start

errcode_t uapi_drv_cipher_sha384_start(hash_handle_t *ctx)

头文件清单

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

功能说明

  • 创建SHA384 Hash计算句柄,用于多流程计算模式
  • 调用成功后返回Hash句柄,后续通过update/finish接口分步完成摘要计算
  • 适用于数据量较大或需要分块处理的场景

前置条件

  • 调用时序约束:需在update和finish接口之前调用
  • 依赖关系:依赖安全驱动模块已初始化

出参

名称 数据类型 输出说明
ctx hash_handle_t * 创建的Hash句柄

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA384 功能宏 支持SHA384 Hash功能 y

uapi_drv_cipher_sha384_update

errcode_t uapi_drv_cipher_sha384_update(hash_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

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

功能说明

  • 向SHA384 Hash计算中更新消息数据,支持多次调用
  • 每次调用将消息片段送入Hash计算上下文
  • 适用于分块传输数据的场景

前置条件

  • 调用时序约束:必须在sha384_start成功返回后调用,在sha384_finish之前调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA384 功能宏 支持SHA384 Hash功能 y

uapi_drv_cipher_sha384_finish

errcode_t uapi_drv_cipher_sha384_finish(hash_handle_t ctx, uint8_t out[48])

头文件清单

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

功能说明

  • 结束SHA384 Hash计算,输出48字节摘要结果
  • 完成多流程计算模式下最后一轮摘要计算
  • 调用完成后应调用sha_destroy释放句柄

前置条件

  • 调用时序约束:必须在sha384_start之后、且至少一次sha384_update之后调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA384 功能宏 支持SHA384 Hash功能 y

uapi_drv_cipher_sha512_start

errcode_t uapi_drv_cipher_sha512_start(hash_handle_t *ctx)

头文件清单

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

功能说明

  • 创建SHA512 Hash计算句柄,用于多流程计算模式
  • 调用成功后返回Hash句柄,后续通过update/finish接口分步完成摘要计算
  • 适用于数据量较大或需要分块处理的场景

前置条件

  • 调用时序约束:需在update和finish接口之前调用
  • 依赖关系:依赖安全驱动模块已初始化

出参

名称 数据类型 输出说明
ctx hash_handle_t * 创建的Hash句柄

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA512 功能宏 支持SHA512 Hash功能 y

uapi_drv_cipher_sha512_update

errcode_t uapi_drv_cipher_sha512_update(hash_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

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

功能说明

  • 向SHA512 Hash计算中更新消息数据,支持多次调用
  • 每次调用将消息片段送入Hash计算上下文
  • 适用于分块传输数据的场景

前置条件

  • 调用时序约束:必须在sha512_start成功返回后调用,在sha512_finish之前调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA512 功能宏 支持SHA512 Hash功能 y

uapi_drv_cipher_sha512_finish

errcode_t uapi_drv_cipher_sha512_finish(hash_handle_t ctx, uint8_t out[64])

头文件清单

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

功能说明

  • 结束SHA512 Hash计算,输出64字节摘要结果
  • 完成多流程计算模式下最后一轮摘要计算
  • 调用完成后应调用sha_destroy释放句柄

前置条件

  • 调用时序约束:必须在sha512_start之后、且至少一次sha512_update之后调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SHA512 功能宏 支持SHA512 Hash功能 y

uapi_drv_cipher_sm3_start

errcode_t uapi_drv_cipher_sm3_start(hash_handle_t *ctx)

头文件清单

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

功能说明

  • 创建SM3 Hash计算句柄,用于多流程计算模式
  • 调用成功后返回Hash句柄,后续通过update/finish接口分步完成摘要计算
  • 适用于数据量较大或需要分块处理的场景

前置条件

  • 调用时序约束:需在update和finish接口之前调用
  • 依赖关系:依赖安全驱动模块已初始化

出参

名称 数据类型 输出说明
ctx hash_handle_t * 创建的Hash句柄

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SM3 功能宏 支持SM3 Hash功能 y

uapi_drv_cipher_sm3_update

errcode_t uapi_drv_cipher_sm3_update(hash_handle_t ctx, const uint8_t *buf, uint32_t len)

头文件清单

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

功能说明

  • 向SM3 Hash计算中更新消息数据,支持多次调用
  • 每次调用将消息片段送入Hash计算上下文
  • 适用于分块传输数据的场景

前置条件

  • 调用时序约束:必须在sm3_start成功返回后调用,在sm3_finish之前调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄
buf const uint8_t * 输入消息数据指针 不为NULL
len uint32_t 消息数据长度 0 ~ 4294967295

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SM3 功能宏 支持SM3 Hash功能 y

uapi_drv_cipher_sm3_finish

errcode_t uapi_drv_cipher_sm3_finish(hash_handle_t ctx, uint8_t out[32])

头文件清单

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

功能说明

  • 结束SM3 Hash计算,输出32字节摘要结果
  • 完成多流程计算模式下最后一轮摘要计算
  • 调用完成后应调用sha_destroy释放句柄

前置条件

  • 调用时序约束:必须在sm3_start之后、且至少一次sm3_update之后调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄

出参

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

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_HASH_SUPPORT_SM3 功能宏 支持SM3 Hash功能 y

uapi_drv_cipher_sha_destroy

errcode_t uapi_drv_cipher_sha_destroy(hash_handle_t ctx)

头文件清单

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

功能说明

  • 销毁Hash句柄,释放相关资源
  • 用于多流程计算模式(start/update/finish)中完成计算后的资源回收
  • 句柄销毁后不可再用于update或finish操作

前置条件

  • 调用时序约束:必须在start成功创建句柄后调用,建议在finish之后调用
  • 依赖关系:依赖有效的Hash句柄

入参

名称 参数类型 详细说明 约束取值范围
ctx hash_handle_t Hash句柄 start接口返回的有效句柄

返回值

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

Type definitions

errcode_t

typedef uint32_t errcode_t;

使用说明

作为本模块所有接口的返回值类型 [SDK公共基础类型]

hash_handle_t

typedef uintptr_t hash_handle_t;

使用说明

作为Hash句柄类型,在start/update/finish/destroy接口中传递Hash计算上下文

Macros

ERRCODE_SUCC [SDK公共共享宏]

#define ERRCODE_SUCC                                        0UL