не работает MbedTLS

    • #76464
      Николай
      Ключник

      zvukovik

      25 май 2022, 15:20
      всем привет, пытаюсь реализовать https-клиент, при процедуре рукопожатия стадия hello проходит вроде как успешно, но дальше парсинг сертификата выдаёт ошибку SSL_INVALID_RECORD, вычитал, что это может быть из-за слишком большого размера сертификата, попробовал увеличить MAX_CONTENT_LEN до 8кБ и буфер (в w5500) до 16, но это не помогает,
      странно выглядит то, что за время процедуры функция чтения вызывается дважды, сначала читает 5 байт, хотя буфере лежит около 2900, затем ещё 89 байт, а в буфере уже 4кБ, но их читать не торопится,
      приложил свой конфиг, хотя там всё стандартно из рабочего примера
      disk.yandex.ru/d/aW0HwsOSvan72w

      NStorm

      25 май 2022, 16:32
      А mbedtls_platform_set_calloc_free() правильно задает адреса функции для выделения/освобождения памяти? Я с W5500 не работал, но исходя из конфига это должно быть так. Может там уже в SDK всё сделано конечно…
      Ну и в вашем конфиге #define MBEDTLS_SSL_MAX_CONTENT_LEN 2048 стоит. Плюс ниже в MBEDTLS_SSL_CIPHERSUITES задан ограниченный набор, может сервер не всё из этого поддерживает. К примеру GCM режим не поддерживает. Посмотреть с помощью nmap например можно какие наборы шифрования поддерживаются:

      nmap –script ssl-enum-ciphers -p 443 &lt,server&gt,

      zvukovik

      25 май 2022, 16:54
      сделал запрос, у сервера такие типы шифрования поддерживаются, функции памяти проверил, работают, вот эту максимальную длину я и крутил, 32768 тоже не помогло

      взял другую версию библиотеки, и оно как-то сразу заработало

Viewing 0 reply threads
  • Вы должны войти в систему, чтобы ответить в этой теме.
Интepecнoe нa фopумe:
Авторизация
*
*
Регистрация
*
*
*
Генерация пароля
×