我在STM32F103器件上使用MBED-TLS。 STM 32F103器件的SRAM存储器很少(20 KB)。
使用的ram如何执行此操作? 是吗:
sizeof(mbedtls_rsa_context)+ 13 * sizeof(mbedtls_mpi)+ mbedtls_mpi_size(D)+ ..... + mbedtls_mpi_size(Vf)
谢谢
致谢。
答案 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?
问候