跳转至

security_trng

TRNG (True Random Number Generator) 提供硬件随机数生成功能,支持获取 uint32_t 类型随机数和指定字节长度的随机数。

头文件清单

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

接口清单

接口名称 功能简述
uapi_drv_cipher_trng_get_random 获取硬件随机数
uapi_drv_cipher_trng_get_random_bytes 获取指定大小的硬件随机数

Functions

uapi_drv_cipher_trng_get_random

errcode_t uapi_drv_cipher_trng_get_random(uint32_t *randnum)

头文件清单

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

功能说明

  • 获取硬件随机数
  • 生成 uint32_t 类型大小的随机数
  • 生成其他大小的随机数需要循环调用该接口

前置条件

  • 调用时序约束:当前接口必须在 TRNG 模块初始化完成后调用
  • 依赖关系:当前接口依赖 CONFIG_SECURITY_UNIFIED_SUPPORT_TRNG 配置已开启

出参

名称 数据类型 输出说明
randnum uint32_t * 由调用方分配内存,函数填充生成的 uint32_t 类型随机数,不可为 NULL

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_SECURITY_UNIFIED_SUPPORT_TRNG 功能宏 支持 TRNG 接口功能 n

uapi_drv_cipher_trng_get_random_bytes

errcode_t uapi_drv_cipher_trng_get_random_bytes(uint8_t *randnum, uint32_t size)

头文件清单

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

功能说明

  • 获取指定大小的硬件随机数
  • 通过 size 参数指定需要生成的随机数字节长度
  • 随机数写入 randnum 指向的缓冲区

前置条件

  • 调用时序约束:当前接口必须在 TRNG 模块初始化完成后调用
  • 依赖关系:当前接口依赖 CONFIG_SECURITY_UNIFIED_SUPPORT_TRNG 配置已开启

入参

名称 参数类型 详细说明 约束取值范围
size uint32_t 生成随机数的大小 1 ~ 4294967295

出参

名称 数据类型 输出说明
randnum uint8_t * 由调用方分配内存,函数填充生成的指定字节长度随机数,缓冲区大小不小于 size,不可为 NULL

返回值

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

Kconfig配置

配置项 宏类型 说明 默认值
CONFIG_SECURITY_UNIFIED_SUPPORT_TRNG 功能宏 支持 TRNG 接口功能 n

Type definitions

errcode_t

typedef uint32_t errcode_t;

使用说明

作为 uapi_drv_cipher_trng_get_random 和 uapi_drv_cipher_trng_get_random_bytes 的返回值类型 [SDK公共基础类型]

Macros

ERRCODE_SUCC [SDK公共共享宏]

#define ERRCODE_SUCC                                        0UL