скачать её с сайта Indy. А вот и нет! Где библиотека, где патч, интересные люди, однако.
Полазив по форумам, нашёл такую ссылку. Скачал самую свежую. Не подошло. Методично качал другие версии с конца, потом методом дихотомии, потом тупо взял самую старую версию. Смотрел в ФАРе, есть там эти долбаные нестандартные функции или нет. Нету. Нигде. Заглянул в архив и там прямо явно видно версии с Indy в названии. Наверное, оно. Скачал 0.9.8l. Не подошло. Скачал 0.9.8h. Не подошло. Действительно, если смотреть, что там внутри, то префиксы _indy видать, но это не всё, что нужно. Оказывается, IdSSLOpenSSLHeaders10.pas там не для красоты, и без него не работает. Я ведь хотел, чтоб Indy не пересобирать, думал, на интерфейс к новым функциям можно забить, а оказывается, что там и основной интерфейс переделан, поэтому каких-то нестандартных функций нет. Впрочем, пересобирать весь Indy не пришлось, достаточно было положить только этот файлик под правильным именем в директорию проекта, он заменил собой предустановленный dcu и нормально скомпоновался с остальными модулями.
Потом выяснилось, что хотя в Delphi 2007 версия Indy 10, но если бы я на сайте Indy зашёл в Indy 9, то там была бы ссылка на SSL Support DLL's, а оттуда — на Fulgan. Если б знал, что там всё настолько плохо, попробовал начать с WinInet. Авось его неумение в SNI проканает.
Решил не так давно делать веб-запросы в программе на необновлённом Indy. Кто его знает, этого заказчика, сможет он свежую поставить или нет. Узнал много нового. Оказывается, обычная библиотека OpenSSL к Indy не подходит, потому что там требуются некоторые функции специально для Indy вроде SSL_CTX_set_options_indy. Думаю, раз она в комплект не входит, надо Полазив по форумам, нашёл такую ссылку. Скачал самую свежую. Не подошло. Методично качал другие версии с конца, потом методом дихотомии, потом тупо взял самую старую версию. Смотрел в ФАРе, есть там эти долбаные нестандартные функции или нет. Нету. Нигде. Заглянул в архив и там прямо явно видно версии с Indy в названии. Наверное, оно. Скачал 0.9.8l. Не подошло. Скачал 0.9.8h. Не подошло. Действительно, если смотреть, что там внутри, то префиксы _indy видать, но это не всё, что нужно. Оказывается, IdSSLOpenSSLHeaders10.pas там не для красоты, и без него не работает. Я ведь хотел, чтоб Indy не пересобирать, думал, на интерфейс к новым функциям можно забить, а оказывается, что там и основной интерфейс переделан, поэтому каких-то нестандартных функций нет. Впрочем, пересобирать весь Indy не пришлось, достаточно было положить только этот файлик под правильным именем в директорию проекта, он заменил собой предустановленный dcu и нормально скомпоновался с остальными модулями.
Потом выяснилось, что хотя в Delphi 2007 версия Indy 10, но если бы я на сайте Indy зашёл в Indy 9, то там была бы ссылка на SSL Support DLL's, а оттуда — на Fulgan. Если б знал, что там всё настолько плохо, попробовал начать с WinInet. Авось его неумение в SNI проканает.
Where is the documentation?
...
Documentation for developers is currently being written.
Получается 100kb на соединение, хотя openssl-бляди заявляют о 10kb.
Боль и пичаль.
dynadot.com Вообще чем дольше я ими пользуюсь, тем больше уважения они вызывают. Всячески всем рекомендую. В пользу их говорит ещё, что они регистратор wikileaks.
Единственный сервис из тех что я зареган (включая банки, платёжные системы, почты и регистраторы), который мне прислал письмо с рассказом что тут был баг опенссл, мы его пофиксили, но вы на всякий случай смените пароль — cat test.txt | openssl smime -encrypt -des3 mycert.pem | openssl smime -decrypt -inkey mykey.pem
Взамен предлагают использовать новое криптоапи с блекдеком и шл^W^W^W блоками и пайплайнингом операций, Но мы-то знаем, что на самом деле "у openssl есть фатальный недостаток" TM.
SSL_connect(): error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
берем первые 3 пункта из этого поста #952095
далее в msys bash вбиваем что-то вроде (частично пропустил то что и так понятно)
tar xf openssl-ver.tar.gz # does some symlinks magic, so solves md2 error
MAKE=mingw32-make PERL=perl.exe ./Configure mingw64 shared enable-static-engine --openssldir=/c/local
(mingw32-make.exe -j3 2>&1) > compile.log
(mingw32-make.exe install 2>&1) > compile.log
здесь /c/local это путь куда заинсталится openssl. редирект вывода в файл сделан ибо stdout/err под msys почему-то дико тормозит
openssl rsa -in ssl.key -out rsa.key