Jump to content

    

Mysteo

Свой
  • Content Count

    365
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Mysteo

  • Rank
    Местный
  • Birthday 01/05/1991

Старые поля

  • Vkontakte
    Array

Информация

  • Город
    Array

Контакты

  • Skype
    Array

Recent Profile Visitors

1620 profile views
  1. Ура, все получилось, как оказалось недостаточно было просто включить задефайнить : MBEDTLS_RSA_C Забыл раздефайнить: #define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED Теперь handshake устанавливается успешно, и файлы через http тоже скачиваются успешно, теперь нужно переделать библиотеку, чтобы можно было скачивать файл по частям, а не целиком.
  2. Заметил, что ключ, использованный на MQTT сервере имел следующий параметры: Public-key Algorithm: id-ecPublicKey Public-Key (384 bit) Signature Algorithm: ecdsa-with-SHA256 а ключ для подключения к веб серверу d23thpuno1i87a.cloudfront.net Public-key Algorithm: rsaEncryption RSA Public-Key (2048 bit) Signature Algorithm: sha1WithRSAEncryption Изменили сертификат MQTT сервера на RSA и теперь при подключении к MQTT тоже возникает ошибка: MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE -0x7780 /**< A fatal alert message was received from our peer. */ Такое ощущение что mbedTLS настроена неверно, что-то упускаю, но не могу понять что
  3. Здравствуйте! Снова создаю очередную тему. Сейчас у меня настроено PPP соединение с GSM модемом и STM32F4 Нужно научиться скачивать файлы через https, полез в http_client , входящий в состав LWIP https://www.nongnu.org/lwip/2_1_x/group__httpc.html там всего то две функции - httpc_get_file и httpc_get_file_dns . Вижу что необходимо создать конфиг и стейт, для последующей передачи в функции. Создаю struct altcp_tls_config * conf = altcp_tls_create_config_client(cert, sizeof(cert)); altcp_allocator_t tls_allocator = { altcp_tls_alloc, conf }; httpc_connection_t httpConfig; httpConfig.use_proxy = 0; httpConfig.result_fn = http_res_fn; httpConfig.headers_done_fn = http_header_done_fn; httpConfig.altcp_allocator = &tls_allocator; httpc_state_t *state; Далее вызываю httpc_get_file_dns err_t err; err = httpc_get_file_dns("d23thpuno1i87a.cloudfront.net", 443, "/attachments/f734fa6f22142b2e2842695877a9514bc363ba7d71c0f910f8385e46560ff3e1/icons8-confusion-16.png", &httpConfig, http_recv_fn, NULL, state); if (err != ERR_OK) { logger("error %d, err); } Далее начинается попытка соединения , идет обмен данными, но handshake возвращает ошибки: MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY -0x7880 /**< The peer notified us that the connection is going to be closed. */ а в случае подключения к google.com MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE -0x7780 /**< A fatal alert message was received from our peer. */ Используемый рутовый сертификат поддерживается d23thpuno1i87a.cloudfront.net При подключении к google использовал такой же сертификат, и гугловский. Одна и та же проблема. Такое ощущение что я полностью что-то не так делаю. Возможно lwip http клиент не подразумевает использование защищенного соединения? Но зачем тогда в конфиге поддержка altcp typedef struct _httpc_connection { ip_addr_t proxy_addr; u16_t proxy_port; u8_t use_proxy; /* @todo: add username:pass? */ #if LWIP_ALTCP altcp_allocator_t *altcp_allocator; #endif /* this callback is called when the transfer is finished (or aborted) */ httpc_result_fn result_fn; /* this callback is called after receiving the http headers It can abort the connection by returning != ERR_OK */ httpc_headers_done_fn headers_done_fn; } httpc_connection_t; Что я делаю не так? До этого удачно использовал связку LWIP + PPP + mbedTLS для создания защищенного соединения MQTT, все заводилось, но там немного по другому все настраивалось: как видно структуре нужно было просто передать адрес tls_config , а в http несколько иначе? struct mqtt_connect_client_info_t { /** Client identifier, must be set by caller */ const char *client_id; /** User name, set to NULL if not used */ const char* client_user; /** Password, set to NULL if not used */ const char* client_pass; /** keep alive time in seconds, 0 to disable keep alive functionality*/ u16_t keep_alive; /** will topic, set to NULL if will is not to be used, will_msg, will_qos and will retain are then ignored */ const char* will_topic; /** will_msg, see will_topic */ const char* will_msg; /** will_qos, see will_topic */ u8_t will_qos; /** will_retain, see will_topic */ u8_t will_retain; #if LWIP_ALTCP && LWIP_ALTCP_TLS /** TLS configuration for secure connections */ struct altcp_tls_config *tls_config; #endif };
  4. Не совсем понял, что имеется в виду под профайлингом, какую-то отладочную информацию надо выводить?
  5. Хорошо, по позже отпишу. Так то вот тут висит, но там еще куча всего. ret = mbedtls_ssl_handshake(&state->ssl_context);
  6. телефон не выкладывал ))) это почтовый индекс, пишите письма, присылайте посылки ))
  7. Здравствуйте! Только начал работать с библиотекой MbedTLS , нужно установить защищенное соединение. Используем ключ со следующими параметрами: Public Key Algorithm: id-ecPublicKey ASN1 OID: secp384r1 NIST CURVE: P-384 Signature Algorithm: ecdsa-with-SHA256 Нашел табличку на сайте mbedTLS, вроде как скорость выполнения хендшейка должна быть близка к 2.5 секундам(нижняя табличка) тем более контроллер работает на частоте 160 МГц, но на деле получается около 5 секунд. Сначала подумал, что FreeRTOS отнимает ресурсы и в момент выполнения хэндшейка блочу все задачи, но скорость не увеличивается. Посоветуйте на что обратить внимание , чтобы увеличить скорость вычислений. C данными параметрами тоже игрался, толку нету: /* Save RAM by adjusting to our exact needs */ #define MBEDTLS_ECP_MAX_BITS 384 #define MBEDTLS_MPI_MAX_SIZE 48 // 384 bits is 48 bytes /* Save RAM at the expense of speed, see ecp.h */ #define MBEDTLS_ECP_WINDOW_SIZE 2 #define MBEDTLS_ECP_FIXED_POINT_OPTIM 0
  8. Здравствуйте! Не пробовали работать с STM32WB55 ? Они сейчас поддерживают ZigBee
  9. Всем привет! Необходимо мне заказать отладочные наборы NUCLEO WB55 , покупал с алика но пришли наполовину рабочие. При заказе с этого сайта необходимо заполнить поле Company , значит ли это что посылка будет направлена как юр лицу? А то у меня уже была такая проблема, что отправили как юр лицу, а опалчена она была физ лицом, и мне таможня ее не пропустила. Хотя посылака 6000 рублей всего стоила. Как заказать с этого сайта, чтобы нормально доставили посылку?
  10. Еще бы какой нибудь пример разобрать с ZigBee , а то с BLE есть. А с ZigBee пока что нету
  11. Спасибо, что-то я упустил совсем этот момент. И через костыли начал все делать.
  12. Ребята подскажите как лучше выполнить алгоритм проверки внешнего события? Ситуация следующая модем SIM800C используется для доступа в интернет в режиме PPP. Если на него совершается звонок, детектируется сигнал RI , переводится модем в режиме AT команд и наблюдаются сообщения о том, что идет входящий вызов. А с СМС ситуация иначе, RI сигнал отрабатывает , но после перевода в режим AT команд не видно никакого сообщения, что же произошло. При детектировании сигнала RI практически мгновенно успеваю модем перевести в режим AT (от 2 до 5 мс ) уходит, или это недостаточно быстро ? Можно ли как то узнать без команды получения списка SMS сообщений , что пришло новое сообщение , если проморгал сообщение +CMTI ?
  13. Спасибо, а как в проверке баланса получить нормальный ответ, а то приходят какие то не понятные цифры: +CUSD: 0, "04110430043B0430043D0441003A0036002C003500300440", 72 AT+CSCS разные форматы пробовал, а приходят одно и тоже
  14. Всем привет! Подскжаите пожалуйста, что нужно настроить , чтобы LWIP понимала, что соединение с интернетом потеряно либо / отсутствует. Ситуация такая, на SIM карточке нету денег, но PPP соединение устанавливается, но далее после отправки какого либо пакета, ответ не приходит, ручками нужно таймер таймаута заводить ? Или это уже предусмотрено? Посмотрел , в опциях есть настройки , я их определил, но толку от этого нет LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT LWIP_TCPIP_TIMEOUT LWIP_SO_RCVTIMEO
  15. Спасибо большое, оперативная помощь! А где эту табличку взять бы еще ? Ввожу GSM Location Area Identification number и ничего хорошего не нашел в интернете