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.h

  • code/include/drivers/g32s10/rsa/ll_rsa.h

  • code/include/drivers/g32s10/rsa/rsa_regs.h

  • code/drivers/g32s10/rsa/hal_rsa.c

HAL 只提供原始模幂硬件阶段,不提供 PKCS#1、OAEP、PSS、签名、验签或证书解析。SoC IRQ 申请、线程等待和应用 callback 由中间件、测试或调用方负责。

2. 分层关系

APPLICATION  Application / middleware / example  业务代码、板级支持与示例入口
↓
HAL  HAL RSA  模块级配置、状态管理与硬件访问
↓
LL  LL RSA  寄存器访问与字段级控制
↓
HARDWARE REGISTERS  RSA registers  实例地址、寄存器布局与位域定义

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 输入 FIFO

  • RSAP 结果 FIFO

  • RSACLR 状态清除

  • RSAINFO 状态

  • RSAEN 中断使能

  • RSADBG0/1 诊断

  • RSARSTN 软件复位

3. 示例

  • HAL IRQ 分阶段路径:code/examples/hal/rsa_hal_example.c

  • LL 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_READYhandle 未初始化、phase 不匹配、systick 不可用
IM_ERR_BUSYhandle 已初始化
IM_ERR_HARDWARE时钟门控失败或 RSA error status
IM_ERR_IOIRQ 完成位与当前 phase 不匹配
IM_ERR_TIMEOUTsoftware reset 超时
IM_ERR_UNSUPPORTEDdebug dump 未编译