Easyelectronics.ru

Электроника для всех
Текущее время: 05 июн 2020, 15:43

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: STM32 LWIP Secure MQTT
СообщениеДобавлено: 31 мар 2020, 12:41 
Заглядывает иногда

Зарегистрирован: 21 окт 2011, 09:25
Сообщения: 65
Откуда: Уфа
Всем привет. Запустил mqtt из стека LWIP для STM32. Все работает. Но как сделать чтоб работало через TLS. Кто то может делал, поделитесь информацией?

В кубе подключил mbedtls, так же в настройках lwip включил опции
Вложение:
Безымянный.png
Безымянный.png [ 3.26 Кб | Просмотров: 502 ]


На компилятор выдает ошибку
Цитата:
undefined reference to `altcp_tls_wrap'


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 LWIP Secure MQTT
СообщениеДобавлено: 31 мар 2020, 23:38 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 2008
Всё написано по первой ссылке в гугле
https://www.nongnu.org/lwip/2_1_x/group ... __api.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 LWIP Secure MQTT
СообщениеДобавлено: 01 апр 2020, 13:07 
Заглядывает иногда

Зарегистрирован: 21 окт 2011, 09:25
Сообщения: 65
Откуда: Уфа
x893 писал(а):
Всё написано по первой ссылке в гугле
https://www.nongnu.org/lwip/2_1_x/group ... __api.html

Ну судя по исходникам mqtt.c , .h итд там уже все это сделано, я не понимаю как конкретно с mqtt это все настроить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 LWIP Secure MQTT
СообщениеДобавлено: 09 апр 2020, 15:31 
Заглядывает иногда

Зарегистрирован: 21 окт 2011, 09:25
Сообщения: 65
Откуда: Уфа
Посмотрел я еще исходники и сравнил с https://www.nongnu.org/lwip/2_1_x/group__altcp__api.html, понял, что в структуру передается еще структура с сертификатом . Из-за чего-то свойство tls_config не отображается, хотя все нужные дефайны есть
В итоге пока инициализация выглядит так:
Код:
struct mqtt_connect_client_info_t ci;
memset(&ci, 0, sizeof(ci));
ci.client_id = "lwip_test";
ci.client_user = "";
ci.client_pass = "";
ci.keep_alive = 0;
ci.tls_config = altcp_tls_create_config_client((const u8_t*)test_cert, sizeof(test_cert));
// create client
client = mqtt_client_new();
// connect client   
mqtt_client_connect(client, &resolved, port, mqtt_on_connect, (void *)0, &ci);

Однако не соединяется, все время вылетает в функции altcp_tls_create_config_client_common(altcp_tls_mbedtls.c)
Код:
....
    ret = mbedtls_x509_crt_parse(conf->ca, ca, ca_len);
    if (ret != 0) {
      LWIP_DEBUGF(ALTCP_MBEDTLS_DEBUG, ("mbedtls_x509_crt_parse ca failed: %d 0x%x", ret, -1*ret));
      altcp_mbedtls_free_config(conf);
      return NULL;
    }
...

ret = -4480 , в x509.h такой нет
Пробовал сертификат из certs.h

UPD: ошибка означает Failed to allocate memory.
Может я еще что-то упускаю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 LWIP Secure MQTT
СообщениеДобавлено: 14 апр 2020, 12:58 
Заглядывает иногда

Зарегистрирован: 21 окт 2011, 09:25
Сообщения: 65
Откуда: Уфа
Щас еще заметил ,что в файле altcp_tls_mbedtls.c есть указание:

 * Mandatory security-related configuration:
 * - define ALTCP_MBEDTLS_RNG_FN to mbedtls_entropy_func to use the standard mbedTLS
 *   entropy and ensure to add at least one strong entropy source to your mbedtls port
 *   (implement mbedtls_platform_entropy_poll or mbedtls_hardware_poll providing strong
 *   entropy)
 * - define ALTCP_MBEDTLS_ENTROPY_PTR and ALTCP_MBEDTLS_ENTROPY_LEN to something providing
 *   GOOD custom entropy

и соответствующие дефайны:
Код:
#ifndef ALTCP_MBEDTLS_ENTROPY_PTR
#define ALTCP_MBEDTLS_ENTROPY_PTR   NULL
#endif
#ifndef ALTCP_MBEDTLS_ENTROPY_LEN
#define ALTCP_MBEDTLS_ENTROPY_LEN   0
#endif


Но вот что объявлять то они должны? Ничего не находится в гугле даже
Так же похоже необходимо подключать некоторые модули mbedtls судя по файлу altcp_tls_mbedtls_mem.c 

Код:
#ifndef ALTCP_MBEDTLS_MEM_DEBUG
#define ALTCP_MBEDTLS_MEM_DEBUG   LWIP_DBG_OFF
#endif

#if defined(MBEDTLS_PLATFORM_MEMORY) && \
   (!defined(MBEDTLS_PLATFORM_FREE_MACRO) || \
    defined(MBEDTLS_PLATFORM_CALLOC_MACRO))
#define ALTCP_MBEDTLS_PLATFORM_ALLOC 1
#else
#define ALTCP_MBEDTLS_PLATFORM_ALLOC 0
#endif

#if ALTCP_MBEDTLS_PLATFORM_ALLOC

#ifndef ALTCP_MBEDTLS_PLATFORM_ALLOC_STATS
#define ALTCP_MBEDTLS_PLATFORM_ALLOC_STATS 0
#endif

Пробовал, но либо ошибки дает при компиляции либо все то же самое. В общем ничего не понятно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 LWIP Secure MQTT
СообщениеДобавлено: 14 апр 2020, 13:21 
Заглядывает иногда

Зарегистрирован: 21 окт 2011, 09:25
Сообщения: 65
Откуда: Уфа
Щас еще заметил ,что в файле altcp_tls_mbedtls.c есть указание:

* Mandatory security-related configuration:
* - define ALTCP_MBEDTLS_RNG_FN to mbedtls_entropy_func to use the standard mbedTLS
* entropy and ensure to add at least one strong entropy source to your mbedtls port
* (implement mbedtls_platform_entropy_poll or mbedtls_hardware_poll providing strong
* entropy)
* - define ALTCP_MBEDTLS_ENTROPY_PTR and ALTCP_MBEDTLS_ENTROPY_LEN to something providing
* GOOD custom entropy
и соответствующие дефайны:
Код:
#ifndef ALTCP_MBEDTLS_ENTROPY_PTR
#define ALTCP_MBEDTLS_ENTROPY_PTR   NULL
#endif
#ifndef ALTCP_MBEDTLS_ENTROPY_LEN
#define ALTCP_MBEDTLS_ENTROPY_LEN   0
#endif

Но вот что объявлять то они должны? Ниче не находится в гугле даже
Так же похоже необходимо подключать некоторые модули mbedtls судя по файлу altcp_tls_mbedtls_mem.c
Код:
#ifndef ALTCP_MBEDTLS_MEM_DEBUG
#define ALTCP_MBEDTLS_MEM_DEBUG   LWIP_DBG_OFF
#endif

#if defined(MBEDTLS_PLATFORM_MEMORY) && \
   (!defined(MBEDTLS_PLATFORM_FREE_MACRO) || \
    defined(MBEDTLS_PLATFORM_CALLOC_MACRO))
#define ALTCP_MBEDTLS_PLATFORM_ALLOC 1
#else
#define ALTCP_MBEDTLS_PLATFORM_ALLOC 0
#endif

#if ALTCP_MBEDTLS_PLATFORM_ALLOC

#ifndef ALTCP_MBEDTLS_PLATFORM_ALLOC_STATS
#define ALTCP_MBEDTLS_PLATFORM_ALLOC_STATS 0
#endif

Пробовал, но либо ошибки дает при компиляции либо все то же самое. В общем ничего не понятно., как для всего этого настроить проект?
Ни примеров, ни в документации ничего не найду.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: PriZraK


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB