API GUIDE / RSA / OVERVIEW
G32S10 RSA API 概述
模块概述:本文档定义 G32S10 SDK 当前 RSA 模块的正式接口,覆盖:
1. 文档范围
本文档定义 G32S10 SDK 当前 RSA 模块的正式接口,覆盖:
HAL RSA:面向应用、BSP、示例和中间件的分阶段模幂控制接口LL RSA:面向寄存器、FIFO、状态和复位的 inline helper
本文档基于以下文件:
code/include/drivers/g32s10/rsa/hal_rsa.hcode/include/drivers/g32s10/rsa/ll_rsa.hcode/include/drivers/g32s10/rsa/rsa_regs.hcode/drivers/g32s10/rsa/hal_rsa.c
HAL 只提供原始模幂硬件阶段,不提供 PKCS#1、OAEP、PSS、签名、验签或证书解析。SoC IRQ 申请、线程等待和应用 callback 由中间件、测试或调用方负责。
2. 分层关系
HAL 负责:
RSA 时钟门控
handle、状态和 phase
M/E/N FIFO 输入
N_CFG_DONE、INT_DONE 和错误 IRQ 阶段
result FIFO 读取
abort、software reset 和 deinit
可选寄存器 dump
LL 负责:
RSAC控制和启动RSAE/RSAN/RSAM输入 FIFORSAP结果 FIFORSACLR状态清除RSAINFO状态RSAEN中断使能RSADBG0/1诊断RSARSTN软件复位
3. 示例
HAL IRQ 分阶段路径:
code/examples/hal/rsa_hal_example.cLL polling 路径:
code/examples/ll/rsa_ll_example.c
两个示例均使用 96-bit 标准向量,执行一次加密和一次解密。
调用接口:
error_code_t rsa_hal_example_run(void); error_code_t rsa_ll_example_run(void);
示例源文件不包含头文件和 main(),由 CoreV1 的应用 main 声明后调用。
4. 错误码
| 错误码 | 来源 |
|---|---|
IM_ERR_INVALID_PARAM | 指针、实例、长度、word count、modulus 奇偶性或输出容量非法 |
IM_ERR_NOT_READY | handle 未初始化、phase 不匹配、systick 不可用 |
IM_ERR_BUSY | handle 已初始化 |
IM_ERR_HARDWARE | 时钟门控失败或 RSA error status |
IM_ERR_IO | IRQ 完成位与当前 phase 不匹配 |
IM_ERR_TIMEOUT | software reset 超时 |
IM_ERR_UNSUPPORTED | debug dump 未编译 |