c - Mbed TLS rsa_context 的大小(以字节为单位)是多少?

标签 c rsa stm32 mbedtls polarssl

我在 STM32F103 设备上使用 MBED-TLS。 STM 32F103 器件的 SRAM 内存很少(20 KB)。

我想计算 mbedtls_rsa_context 使用的内存

如何做到这一点? 是吗:

sizeof(mbedtls_rsa_context) + 13 * sizeof(mbedtls_mpi ) + mbedtls_mpi_size (D) + ..... + mbedtls_mpi_size (Vf)

谢谢

问候。

最佳答案

请注意,结构体 mbedtls_rsa_context 包含这 13 个 mbedtls_mpi 结构体,因此,如果您执行 sizeof(mbedtls_rsa_context),它已经包含 >13 * sizeof(mbedtls_mpi ) 部分。因此,无需添加该部分。 至于每个 mbedtls_mpi 消耗的 RAM,正如您在 mbedtls_mpi_grow 中看到的,分配的大小是肢体数量 (x->n) 乘以中的字符数四肢 (CiL)。 如果您在每个 mpi 上使用 mbedtls_mpi_size ,它只会为您提供大整数使用的字节大小,没有前导零(如果有的话),这也会消耗 RAM。 请注意,这意味着访问结构体的内部成员,但不建议这样做,但是没有任何公共(public) API 可以获取这些知识。

如果您受到 SRAM 的限制,您是否考虑过使用 ECDSA key ,因为相同安全强度的 key 消耗更少的 RAM?
问候

关于c - Mbed TLS rsa_context 的大小(以字节为单位)是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54110347/

相关文章:

矩阵(数组)的簇

python-2.7 - i2osp 和 os2ip 的实现

java - 对 Java Security 和 BouncyCaSTLe API 感到茫然和困惑

java - 使用 RSA 私钥加密消息是否安全

stm32 - STM32F303 上的引导加载程序 : built in from factory or externally programmed?

c - STM32 SPI 发送

android - 在 RenderScript 中实现算法

将数字字符串转换为整数,并存储结果

python - 使用多段三次贝塞尔曲线和距离以及曲率约束逼近数据

ubuntu - linux更新后如何维护开发环境