среда, 6 мая 2015 г.

OpenSSL SSL_connect returned 0

Произошла неприятная вещь, старый класс который доставлял информацию по HTTP(S) каналу отказался работать с некоторыми сайтами.

При изучении оказалось, что SSL_connect возвращает 0, спецификация говорит мол все плохо, но не совсем смотрите getError и будет вам....

Но SSL_ERROR офигительно познавательная ошибка.

После долгих и долгих копаний в инете и шаманских танцев, что эти сайты хотят SNI.
А чтобы его реализовать нужно сделать SSL_set_tlsext_host_name.

Проблема была в том, что в ssl.h, ни в tls.h не было такой функции. Обновил openSSL. функции появилось, но все равно не заработало.

Поменял   ctx = SSL_CTX_new(TLSv1_2_client_method()) - заработало.

Отдельный привет, openSSL - на странице доступной по запросу openssl windows, версия 1.01 говорит, что там библиотеки и для Cbuilder в том числе (ну есть один проект где используется билдер). Библиотек конечно-же нет. Но напомню implib -a ssleay32.lib ssleay32.dll  творит чудеса.

Комментариев нет:

Отправить комментарий