Mbed TLS rsa_context的大小(以字节为单位)是什么?

时间:2019-01-09 12:36:10

标签: c rsa stm32 mbedtls polarssl

我在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)

谢谢

致谢。

1 个答案:

答案 0 :(得分:1)

请注意,结构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。 请注意,这意味着访问该结构的内部成员,不建议这样做,但是没有任何公共API可以获取该知识。

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