这是最新(主)开发分支的文档。如果您正在查找以前版本的文档,使用左侧的下拉菜单选择所需的版本。

RSA

简介

W80x 支持硬件模幂运算。模幂运算的目的是通过一种有效的方法来计算 ( A^E mod N ),即计算 ( A ) 的 ( E ) 次幂后再对 ( N ) 取模的结果。W80x SDK 用硬件适配了 mbedtls 库中的模幂运算。用户可以使用 mbedtls_rsa_pkcs1_encrypt 对数据进行加密,使用 mbedtls_rsa_pkcs1_decrypt 对数据进行解密。

功能列表

  1. 初始化——初始化驱动。

  2. 模幂运算

初始化驱动

调用 wm_drv_rsa_init() ,得到指向 rsa 模块的设备指针,只有得到了这个指针才能调用 wm_drv_rsa_expt_mod。示例:

wm_device_t *dev;
dev = wm_drv_rsa_init("rsa");

函数参数指定设备名称,名称在设备表中定义。

执行模幂运算

调用 wm_drv_rsa_expt_mod() ,执行模幂运算,X = A^E mod N。在 mbedtls 库中适配模幂运算的示例:

wm_device_t* wm_drv_rsa_dev = wm_dt_get_device_by_name("rsa");

MBEDTLS_MPI_CHK(wm_drv_rsa_expt_mod(wm_drv_rsa_dev, &T, &T, &ctx->E, &ctx->N));

第一个参数是:指向设备的指针

第二个参数是:指向结果 X 的指针。

第三个参数是:指向底数 A 的指针。

第二个参数是:指向指数 E 的指针。

第二个参数是:指向模数 N 的指针。

应用实例

使用 RSA 基本示例请参考 examples/peripheral/rsa

API 参考

查找 RSA 相关 API 请参考:

RSA API 参考