hw_security_init
hw_security_init 提供安全驱动模块的初始化与去初始化、深睡挂起与恢复、中断模式开关以及 mbedtls 硬加速适配函数注册功能。
头文件清单
#include "include/driver/security_unified/security_init.h"
#include "include/driver/security_unified/mbedtls_harden_adapt.h"
接口清单
| 接口名称 | 功能简述 |
|---|---|
| uapi_drv_cipher_env_init | 安全驱动模块初始化,系统启动时调用 |
| uapi_drv_cipher_env_deinit | 安全驱动模块去初始化,系统下电时调用 |
| uapi_drv_cipher_env_resume | 安全驱动模块恢复,系统深睡唤醒时调用 |
| uapi_drv_cipher_env_suspend | 安全驱动模块挂起,系统进入深睡前调用 |
| uapi_drv_cipher_wait_func_disable_all | 安全驱动模块关闭中断模式 |
| uapi_drv_cipher_wait_func_enable_all | 安全驱动模块打开中断模式 |
| mbedtls_adapt_register_func | mbedtls 硬加速适配函数注册 |
Functions
uapi_drv_cipher_env_init
头文件清单
功能说明
- 安全驱动模块初始化,系统启动跑安全相关业务前调用
- 完成安全驱动模块的内存注册、CPU类型注册、缓存函数注册、通道初始化及全局资源初始化
- 由系统初始化流程调用,不需要用户主动调用
前置条件
- 调用时序约束:系统已启动,安全驱动模块所需硬件时钟资源可用
- 依赖关系:CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 已开启
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED | 编译参与宏 | 控制security_unified模块参与编译 | y |
uapi_drv_cipher_env_deinit
头文件清单
功能说明
- 安全驱动模块去初始化,系统下电时调用
- 释放安全驱动模块占用的资源,完成模块反初始化
- 由系统去初始化流程调用,不需要用户主动调用
前置条件
- 调用时序约束:安全驱动模块已通过 uapi_drv_cipher_env_init() 初始化完成
- 依赖关系:CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 已开启
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED | 编译参与宏 | 控制security_unified模块参与编译 | y |
uapi_drv_cipher_env_resume
头文件清单
功能说明
- 安全驱动模块恢复,系统深睡唤醒时调用
- 恢复安全驱动模块在深睡期间丢失的硬件状态和通道资源
- 由系统深睡唤醒流程调用,不需要用户主动调用
前置条件
- 调用时序约束:安全驱动模块已通过 uapi_drv_cipher_env_init() 初始化完成
- 上下文限制:系统从深睡状态唤醒
- 依赖关系:CONFIG_SECURITY_UNIFIED_SUPPORT_DEEP_SLEEP 已开启
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED | 编译参与宏 | 控制security_unified模块参与编译 | y |
| CONFIG_SECURITY_UNIFIED_SUPPORT_DEEP_SLEEP | 功能宏 | 支持深睡特性 | n |
uapi_drv_cipher_env_suspend
头文件清单
功能说明
- 安全驱动模块挂起,系统进入深睡前调用
- 保存安全驱动模块当前状态,为深睡做准备
- 由系统深睡挂起流程调用,不需要用户主动调用
前置条件
- 调用时序约束:安全驱动模块已通过 uapi_drv_cipher_env_init() 初始化完成
- 上下文限制:系统准备进入深睡状态
- 依赖关系:CONFIG_SECURITY_UNIFIED_SUPPORT_DEEP_SLEEP 已开启
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED | 编译参与宏 | 控制security_unified模块参与编译 | y |
| CONFIG_SECURITY_UNIFIED_SUPPORT_DEEP_SLEEP | 功能宏 | 支持深睡特性 | n |
uapi_drv_cipher_wait_func_disable_all
头文件清单
功能说明
- 安全驱动模块关闭中断模式,在NMI中要关闭安全驱动的中断
- 关闭后安全驱动模块采用轮询模式等待操作完成
- 需在NMI(不可屏蔽中断)上下文中调用,禁止在中断默认开启的场景下遗漏调用
前置条件
- 调用时序约束:安全驱动模块已通过 uapi_drv_cipher_env_init() 初始化完成
- 依赖关系:CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 已开启
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED | 编译参与宏 | 控制security_unified模块参与编译 | y |
uapi_drv_cipher_wait_func_enable_all
头文件清单
功能说明
- 安全驱动模块打开中断模式,默认情况中断是打开的
- 开启后安全驱动模块采用中断模式等待操作完成
- 与 uapi_drv_cipher_wait_func_disable_all 配对使用,恢复中断模式
前置条件
- 调用时序约束:安全驱动模块已通过 uapi_drv_cipher_env_init() 初始化完成
- 依赖关系:CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 已开启
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED | 编译参与宏 | 控制security_unified模块参与编译 | y |
mbedtls_adapt_register_func
头文件清单
功能说明
- security_unified模块对接第三方mbedtls接口需要注册的函数
- 若开启第三方对接宏MBEDTLS_HARDEN_OPEN,该接口由对接适配层调用
- 完成mbedtls硬加速适配函数的注册,将安全驱动能力注册到mbedtls框架
前置条件
- 调用时序约束:安全驱动模块已通过 uapi_drv_cipher_env_init() 初始化完成
- 依赖关系:CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 已开启
- 依赖关系:MBEDTLS_HARDEN_OPEN 宏已定义(由mbedtls_harden组件构建时自动定义)
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 注册成功 | 函数注册执行成功 |
| Other | 其他错误码 | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED | 编译参与宏 | 控制security_unified模块参与编译 | y |