1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/alios-things-mbedtls

Клонировать/Скачать
README.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 23.05.2025 22:04 50c4b6a

@page mbedtls mbedtls

Обновить документ      Инструкции по вкладу

Обзор

mbedtls предоставляет алгоритмы шифрования и расшифровки (AES, RSA, MD5/SHA1/SHA256/SHA512 и т.д.), управление X.509 сертификатами и поддержку протоколов TLS/DTLS. Подробное описание можно найти на официальном сайте mbedtls. Компонент поддерживает следующие функции:

  • TLS(1.0, 1.1, 1.2), DTLS(1.0, 1.2)
  • X.509 сертификаты
  • Алгоритмы шифрования и расшифровки (DES/3DES/AES/RSA/ARIA/ARC4/BLOWFISH/CAMELLIA/XTEA/CHACHA20/POLY1305)
  • Алгоритмы хэширования (MD5/SHA1/SHA256/SHA512/RIPEMD160)

Информация о правах

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 документ

Зависимые компоненты

  • osal_aos
  • netmgr

Часто используемые конфигурации

В системе уже заданы значения по умолчанию для соответствующих конфигураций. Если необходимо изменить конфигурации, все изменения следует вносить в файл 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

Использование 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

Шаг 3 Загрузка компонента

В инструментах разработки, установленных в среде разработки, выбрать Terminal -> New Terminal для запуска терминала. По умолчанию рабочий каталог терминала будет установлен в workspace текущего проекта. Введите следующую команду:


aos install mbedtls

После успешного выполнения команды исходный код компонента будет загружен в папку ./components/mbedtls.

Шаг 4 Добавление примера

В package.yaml компонента mbedtls добавьте пример кода example:

source_file:
  - example/tls_example.c # Добавление компиляции tls_example.c

Шаг 5 Компиляция прошивки

После добавления примера в конфигурационный файл и добавления зависимости от компонента в helloworld_demo, можно скомпилировать helloworld_demo для создания прошивки. Подробные инструкции по компиляции можно найти в руководстве по компиляции прошивки в интегрированной среде разработки AliOS Things.

Шаг 6 Загрузка прошивки

После создания прошивки helloworld_demo можно использовать руководство по загрузке прошивки для AliOS Things.

Шаг 7 Открытие последовательного порта

После загрузки прошивки можно использовать последовательный порт для просмотра результатов выполнения примера. Для открытия последовательного порта можно использовать руководство по просмотру логов для 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/alios-things-mbedtls.git
git@api.gitlife.ru:oschina-mirror/alios-things-mbedtls.git
oschina-mirror
alios-things-mbedtls
alios-things-mbedtls
master