@page mbedtls mbedtls
Обновить документ Инструкции по вкладу
mbedtls предоставляет алгоритмы шифрования и расшифровки (AES, RSA, MD5/SHA1/SHA256/SHA512 и т.д.), управление X.509 сертификатами и поддержку протоколов TLS/DTLS. Подробное описание можно найти на официальном сайте mbedtls. Компонент поддерживает следующие функции:
Apache license v2.0
mbedtls
|-- apache-2.0.txt
|-- ChangeLog
|-- example # Примеры кода, адаптированные для AliOS Things
|-- include # Заголовочные файлы mbedtls
|-- library # Исходный код mbedtls
|-- LICENSE # Заявление о лицензии
|-- package.yaml # Файлы компиляции и конфигурации
|-- platform # Код, адаптированный для различных платформ, в настоящее время поддерживаются AliOS Things и yoc
|-- programs # Открытые исходные примеры кода
|-- README.mbedtls.md # Открытый исходный README документ
|-- README.md # README документ
В системе уже заданы значения по умолчанию для соответствующих конфигураций. Если необходимо изменить конфигурации, все изменения следует вносить в файл platform/include/config_aos_base.h. Конфигурации включают:> Включение шифрования и расшифровки: по умолчанию включено. Если необходимо отключить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO: 0
Включение MD5: по умолчанию включено. Если необходимо отключить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_MD5: 0
Включение SHA1: по умолчанию включено. Если необходимо отключить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_SHA1: 0
Включение SHA256: по умолчанию включено. Если необходимо отключить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_SHA256: 0
Включение SHA512: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_SHA512: 1
Включение RIPEMD160: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_RIPEMD160: 1
Включение ARIA: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_ARIA: 1
Включение DES: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_DES: 1
Включение AES: по умолчанию включено. Если необходимо отключить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_AES: 0
```> Использование таблиц ROM для AES: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
```yaml
def_config:
MBEDTLS_CONFIG_CRYPTO_AES_ROM_TABLES: 1
Использование меньшего количества таблиц ROM/RAM для AES: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_AES_FEWER_TABLES: 1
Включение режима шифрования CBC: по умолчанию включено. Если необходимо отключить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_MODE_CBC: 0
Включение режима шифрования CFB: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_MODE_CFB: 1
Включение режима шифрования CTR: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_MODE_CTR: 1
Включение режима шифрования OFB: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_MODE_OFB: 1
Включение режима шифрования XTS: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_MODE_XTS: 1
Включение режима шифрования GCM: по умолчанию не включено. Если необходимо включить, можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_MODE_GCM: 1
``` MBEDTLS_CONFIG_CRYPTO_MODE_GCM: 1
```> Включить режим шифрования GCM: по умолчанию включено, для отключения можно изменить конфигурацию следующим образом:
```yaml
def_config:
MBEDTLS_CONFIG_CRYPTO_MODE_GCM: 0
Включить режим шифрования CCM: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_MODE_CCM: 1
Включить шифрование ARC4: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_ARC4: 1
Включить шифрование BLOWFISH: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_BLOWFISH: 1
Включить шифрование CAMELLIA: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_CAMELLIA: 1
Включить шифрование XTEA: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_XTEA: 1
Включить шифрование CHACHA20: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_CHACHA20: 1
Включить алгоритм MAC POLY1305: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_POLY1305: 1
Включить алгоритм AEAD CHACHAPOLY: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_CRYPTO_CHACHAPOLY: 1
Включить поддержку сертификатов X. 509: по умолчанию включено, для отключения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_X509: 0
Включить поддержку протокола TLS: по умолчанию включено, для отключения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_TLS: 0
Включить поддержку протокола TLS 1.2: по умолчанию включено, для отключения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_TLS1_2: 0
Включить поддержку протокола DTLS: по умолчанию включено, для отключения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_DTLS: 0
Включить поддержку отладки протокола TLS: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_TLS_DEBUG: 1
Максимальная длина сообщений TLS/DTLS: единица измерения — байты, по умолчанию 4096. Для изменения на 2048 можно использовать следующую конфигурацию:
def_config:
MBEDTLS_CONFIG_TLS_MAX_CONTENT_LEN: 2048
Включить тестовые программы: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_SELFTEST: 1
Включить поддержку строк ошибок: по умолчанию отключено, для включения можно изменить конфигурацию следующим образом:
def_config:
MBEDTLS_CONFIG_ERROR: 1
Использование API mbedtls совпадает с открытым исходным кодом, описание API можно найти на официальном сайте mbedtls.
Примеры использования компонентов зависят от кода, который можно скачать, скомпилировать и загрузить в прошивку с помощью инструментов разработки, предоставляемых AliOS Things. Сначала следует ознакомиться с [руководством по установке интегрированной среды разработки AliOS Things](https://help.aliyun.com/document_detail/302378.html) для загрузки и установки.
После того как среда разработки будет настроена, можно приступить к тестированию примеров по следующим шагам.
## Шаг 1 Создание или открытие проекта
**Открытие существующего проекта**
Если проект для тестирования уже существует, можно открыть его с помощью [руководства по открытию проекта в интегрированной среде разработки AliOS Things](https://help.aliyun.com/document_detail/302381.html).
**Создание нового проекта**
Примеры кода компонентов можно скомпилировать и связать с любым решением (solution) AliOS Things. В данном примере используется решение helloworld_demo. Для загрузки исходного кода решения helloworld_demo можно воспользоваться [руководством по созданию проекта в интегрированной среде разработки AliOS Things](https://help.aliyun.com/document_detail/302379.html).
## Шаг 2 Добавление компонента
После загрузки примера необходимо добавить зависимость от компонента в package.yaml компонента helloworld_demo:
```yaml
depends:
- mbedtls: master # Добавление зависимости от компонента mbedtls в helloworld_demo
В инструментах разработки, установленных в среде разработки, выбрать Terminal -> New Terminal для запуска терминала. По умолчанию рабочий каталог терминала будет установлен в workspace текущего проекта. Введите следующую команду:
aos install mbedtls
После успешного выполнения команды исходный код компонента будет загружен в папку ./components/mbedtls.
В package.yaml компонента mbedtls добавьте пример кода example:
source_file:
- example/tls_example.c # Добавление компиляции tls_example.c
После добавления примера в конфигурационный файл и добавления зависимости от компонента в helloworld_demo, можно скомпилировать helloworld_demo для создания прошивки. Подробные инструкции по компиляции можно найти в руководстве по компиляции прошивки в интегрированной среде разработки AliOS Things.
После создания прошивки helloworld_demo можно использовать руководство по загрузке прошивки для AliOS Things.
После загрузки прошивки можно использовать последовательный порт для просмотра результатов выполнения примера. Для открытия последовательного порта можно использовать руководство по просмотру логов для AliOS Things.
## Шаг 8 Тестирование примера
**CLI командная строка:**
```shell
netmgr_example # выполнение примера netmgr, включение команд netmgr
Ключевые логи:
netmgr test
add_hdl_info:64
add_hdl_info:70
CLI командная строка:
netmgr -t wifi -c <ssid(ваше имя Wi-Fi)> <password(ваш пароль Wi-Fi)> # подключение к Wi-Fi сети
Ключевые логи:
wifi event cb
Got IP
CLI командная строка:
tls_example # подключение к Wi-Fi сети
Ключевые логи:
tls_example test success!
Нет
Q1: Неудачное TLS рукопожатие, сообщение отладки "buffer too small ..." или "bad message length"
A1: Это обычно происходит из-за того, что внутренний буфер I/O для обработки TLS сообщений меньше длины сообщения. Увеличение размера буфера I/O с помощью настройки MBEDTLS_CONFIG_TLS_MAX_CONTENT_LEN может решить проблему. По умолчанию AliOS Things использует буфер I/O размером 4KB, увеличение до 16384 (16KB) обычно решает все подобные проблемы.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )