跳转至

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

void uapi_drv_cipher_env_init(void)

头文件清单

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

功能说明

  • 安全驱动模块初始化,系统启动跑安全相关业务前调用
  • 完成安全驱动模块的内存注册、CPU类型注册、缓存函数注册、通道初始化及全局资源初始化
  • 由系统初始化流程调用,不需要用户主动调用

前置条件

  • 调用时序约束:系统已启动,安全驱动模块所需硬件时钟资源可用
  • 依赖关系:CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 已开启

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y

uapi_drv_cipher_env_deinit

void uapi_drv_cipher_env_deinit(void)

头文件清单

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

功能说明

  • 安全驱动模块去初始化,系统下电时调用
  • 释放安全驱动模块占用的资源,完成模块反初始化
  • 由系统去初始化流程调用,不需要用户主动调用

前置条件

  • 调用时序约束:安全驱动模块已通过 uapi_drv_cipher_env_init() 初始化完成
  • 依赖关系:CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 已开启

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_DRIVER_SUPPORT_SECURITY_UNIFIED 编译参与宏 控制security_unified模块参与编译 y

uapi_drv_cipher_env_resume

void uapi_drv_cipher_env_resume(void)

头文件清单

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

功能说明

  • 安全驱动模块恢复,系统深睡唤醒时调用
  • 恢复安全驱动模块在深睡期间丢失的硬件状态和通道资源
  • 由系统深睡唤醒流程调用,不需要用户主动调用

前置条件

  • 调用时序约束:安全驱动模块已通过 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

void uapi_drv_cipher_env_suspend(void)

头文件清单

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

功能说明

  • 安全驱动模块挂起,系统进入深睡前调用
  • 保存安全驱动模块当前状态,为深睡做准备
  • 由系统深睡挂起流程调用,不需要用户主动调用

前置条件

  • 调用时序约束:安全驱动模块已通过 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

void uapi_drv_cipher_wait_func_disable_all(void)

头文件清单

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

功能说明

  • 安全驱动模块关闭中断模式,在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

void uapi_drv_cipher_wait_func_enable_all(void)

头文件清单

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

功能说明

  • 安全驱动模块打开中断模式,默认情况中断是打开的
  • 开启后安全驱动模块采用中断模式等待操作完成
  • 与 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

int32_t mbedtls_adapt_register_func(void)

头文件清单

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

功能说明

  • 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