Форум: "Сети";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизIndy 10.1.5 + SSL. Получить код ошибки OpenSSL в OnVerifyPeer Найти похожие ветки
← →
gaux (2008-10-07 15:51) [0]Delphi 7/2007, Indy 10.1.5, OpenSSL 0.9.8g
Проблема в том, что в событии OnVerifyPeer пост-проверки сертификата компонента IdServerIOHandlerSSLOpenSSL для обработки отдается только булева константа AOk - пройдена проверка или нет. А хотелось бы получать коды ошибок, описанные здесь - http://www.openssl.org/docs/apps/verify.html#.
Как я понимаю, в Indy для проверки используется функция SSL_CTX_set_verify из библиотеки OpenSSL (в хидере Indy -IdSslCtxSetVerify : procedure(ctx: PSSL_CTX; mode: Integer; arg2: PFunction) cdecl
), которой третьим параметром идет коллбэк-функция (в хидере Indy -VerifyCallback(Ok: Integer; ctx: PX509_STORE_CTX):Integer; cdecl;),
при помощи которой, собственно, и можно вытащить код.
Впорос тем, кто, в отличие от меня, хорошо понимает структуру Indy. Как вытащить этотOk: Integer
в метод класса ? Возможно, кто-то уже вносил подобные изменения и может поделиться исходниками ...
← →
Сергей М. © (2008-10-08 14:59) [1]При беглом взгляде на индейские исходники первое что приходит в голову - использовать своего наследника класса TIdSSLIOHandlerSocketOpenSSL.
В нем перекрыть вирт.метод StartSSL.
В перекрытом методе на время его выполнения подменить содержимое переменной IdSslCtxSetVerify указателем на собственную функцию с соотв.прототипом.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.057 c