Произошла неприятная вещь, старый класс который доставлял информацию по 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 творит чудеса.
При изучении оказалось, что 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 творит чудеса.