Обратите внимание, что структура mbedtls_rsa_context
содержит эти 13 mbedtls_mpi
структуры, поэтому, если вы делаете sizeof(mbedtls_rsa_context)
, она уже включает в себя часть 13 * sizeof(mbedtls_mpi )
. Таким образом, нет необходимости добавлять эту часть.
Что касается оперативной памяти, которую потребляет каждый mbedtls_mpi
, как вы можете видеть в mbedtls_mpi_grow
, то выделенный размер - это число конечностей (x-> n), умноженное на символы в конечностях (CiL).
Если вы используете mbedtls_mpi_size
для каждого mpi, он просто даст вам размер в байтах, который использует большое целое число, без начальных нулей, если они есть, которые также потребляют оперативную память.
Обратите внимание, что это означает доступ к внутренним членам структуры, что не рекомендуется, однако не существует общедоступного API для получения этих знаний.
Если вы ограничены SRAM, рассматривали ли вы вопрос об использовании ключей ECDSA, поскольку те же ключи безопасности требуют меньше оперативной памяти?
Привет