0

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

我想计算mbedtls_rsa_context使用的 ram

这该怎么做?是吗 :

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

谢谢,

问候。

4

1 回答 1

1

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

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

于 2019-01-09T13:36:11.570 回答