TRNG
头文件清单
接口清单
接口名称 功能简述 uapi_drv_cipher_trng_get_random 获取硬件随机数(uint32_t类型) uapi_drv_cipher_trng_get_random_bytes 获取指定大小的硬件随机数
Functions
uapi_drv_cipher_trng_get_random
头文件清单
功能说明
- 获取硬件随机数,生成uint32_t类型大小的随机数
- 生成其他大小的随机数,需要循环调用该接口
- 接口调用期间会添加睡眠否决,防止系统在TRNG操作期间进入睡眠状态
前置条件
- 安全模块已初始化完成(uapi_drv_cipher_env_init()已调用且返回成功)
- 入参randnum不为NULL,且指向的内存空间已申请成功
入参
名称 参数类型 详细说明 约束取值范围 randnum uint32_t * 指向存储生成的随机数的缓冲区的指针 非NULL
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 执行成功 硬件随机数生成成功 Other 其他错误码,参考errcode_t 执行失败
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_SECURITY_UNIFIED_SUPPORT_TRNG 功能宏 支持 TRNG 接口功能 n CONFIG_TRNG_RING_ENABLE 特性宏 支持 TRNG Ring 振荡器特性 n CONFIG_ENTROPY_SOURCES_FROM_FRO 特性宏 支持 FRO 熵源特性 n
uapi_drv_cipher_trng_get_random_bytes
头文件清单
功能说明
- 获取指定大小的硬件随机数
- 可一次性生成指定字节数的随机数,无需循环调用
- 接口调用期间会添加睡眠否决,防止系统在TRNG操作期间进入睡眠状态
前置条件
- 安全模块已初始化完成(uapi_drv_cipher_env_init()已调用且返回成功)
- 入参randnum不为NULL,且指向的内存空间已申请成功,长度不小于size指定的值
入参
名称 参数类型 详细说明 约束取值范围 randnum uint8_t * 指向存储生成的随机数的缓冲区的指针 非NULL size uint32_t 生成随机数的大小(字节数) > 0
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 执行成功 硬件随机数生成成功 Other 其他错误码,参考errcode_t 执行失败
参考案例
src/application/samples/peripheral/sfc_perf/sfc_perf_demo.c#uapi_drv_cipher_trng_get_random_bytessrc/middleware/chips/ws63/mac_addr/mac_addr.c#uapi_drv_cipher_trng_get_random_bytessrc/middleware/chips/ws63/nv/nv_porting/nv_crypto.c#uapi_drv_cipher_trng_get_randomsrc/open_source/wpa_supplicant/liteos_wpa_src/crypto_mbedtls.c#uapi_drv_cipher_trng_get_random_bytes
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_SECURITY_UNIFIED_SUPPORT_TRNG 功能宏 支持 TRNG 接口功能 n CONFIG_TRNG_RING_ENABLE 特性宏 支持 TRNG Ring 振荡器特性 n CONFIG_ENTROPY_SOURCES_FROM_FRO 特性宏 支持 FRO 熵源特性 n
Type definitions
errcode_t
使用说明:作为uapi_drv_cipher_trng_get_random和uapi_drv_cipher_trng_get_random_bytes接口的返回值类型