Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.108 c
15-1270735483
Andy BitOff
2010-04-08 18:04
2010.08.27
Лицензионная Windows станет бесплатной


15-1265732063
DillerXX
2010-02-09 19:14
2010.08.27
ХРюшная загадка для пытливых умов


15-1266960610
Юрий
2010-02-24 00:30
2010.08.27
С днем рождения ! 24 февраля 2010 среда


15-1266355805
Юрий
2010-02-17 00:30
2010.08.27
С днем рождения ! 17 февраля 2010 среда


15-1272675162
adav84
2010-05-01 04:52
2010.08.27
Precompiled binaries в Linux