не работает MbedTLS
-
-
25.05.2022 #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/aW0HwsOSvan72wNStorm 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 <,server>,zvukovik 25 май 2022, 16:54сделал запрос, у сервера такие типы шифрования поддерживаются, функции памяти проверил, работают, вот эту максимальную длину я и крутил, 32768 тоже не помогло
…
взял другую версию библиотеки, и оно как-то сразу заработало
-
Viewing 0 reply threads
- Вы должны войти в систему, чтобы ответить в этой теме.