Каков размер (в байтах) Mbed TLS rsa_context? - PullRequest
0 голосов
/ 09 января 2019

Я использую MBED-TLS на устройстве STM32F103. Устройство STM 32F103 имеет мало памяти SRAM (20 Кбайт).

Я бы хотел вычислить оперативную память, используемую mbedtls_rsa_context

Как это сделать? Это:

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

Спасибо

Привет.

1 Ответ

0 голосов
/ 09 января 2019

Обратите внимание, что структура 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, поскольку те же ключи безопасности требуют меньше оперативной памяти?
Привет

...