TRNG
TRNG(True Random Number Generator)提供硬件真随机数生成能力,支持获取单个 uint32_t 随机数和指定字节长度的随机数据,供加密运算、密钥派生等安全场景使用。
模块公共头文件
接口清单
| 接口名称 | 功能简述 |
|---|---|
| uapi_drv_cipher_trng_get_random | 获取单个 uint32_t 大小的硬件随机数 |
| uapi_drv_cipher_trng_get_random_bytes | 获取指定字节长度的硬件随机数 |
Functions
uapi_drv_cipher_trng_get_random
声明头文件
功能说明
- 获取单个 uint32_t(4 Bytes)大小的硬件随机数。
- 将生成的随机数写入调用方提供的缓冲区。
- 用于需要单个随机数的场景。
前置条件
- 调用时序约束:TRNG 驱动完成初始化后调用,未初始化时接口返回错误。
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| randnum | uint32_t * | 调用方分配内存,接口写入生成的 uint32_t 硬件随机数,约束:不为 NULL |
返回值
返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC:0 | 成功执行 | 成功获取硬件随机数 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
参考案例
src/middleware/chips/ws53/nv/nv_porting/nv_crypto.c
uapi_drv_cipher_trng_get_random_bytes
声明头文件
功能说明
- 获取指定字节长度的硬件随机数。
- 将生成的随机字节序列写入调用方提供的缓冲区。
- 用于需要任意长度随机数据的场景。
前置条件
- 调用时序约束:TRNG 驱动完成初始化后调用,未初始化时接口返回错误。
入参
| 名称 | 参数类型 | 说明 | 约束取值范围 |
|---|---|---|---|
| size | uint32_t | 待生成的随机数字节长度,randnum 缓冲区容量需不小于该值 | 按需指定,单位 Bytes |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| randnum | uint8_t * | 调用方分配内存,接口写入 size 字节的硬件随机数序列,约束:不为 NULL |
返回值
返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC:0 | 成功执行 | 成功获取指定长度的硬件随机数 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
参考案例
src/middleware/chips/ws53/mac_addr/mac_addr.csrc/open_source/wpa_supplicant/liteos_wpa_src/crypto_mbedtls.c
Type definitions
errcode_t
使用说明
本模块两个接口的返回值类型,用于表示接口执行结果。