Как я могу получить SSL * от Boost.ASIO? - PullRequest
3 голосов
/ 07 декабря 2010

Я реализую клиентское SSL-соединение через Boost.ASIO. Согласно справочнику, который я использую, мне нужно позвонить SSL_get_verify_result, чтобы убедиться, что все в порядке с сертификатом сервера. К сожалению, требуется указатель на структуру SSL, и я не знаю, как получить это из ASIO.

Я пытался использовать функцию impl() для моего boost::asio::ssl::stream<boost::asio::ip::tcp::socket> объекта, но компилятор жалуется, что он возвращает что-то еще.

Там должен быть способ получить эту информацию. Кто-нибудь знает это?

Ответы [ 2 ]

3 голосов
/ 07 декабря 2010

Проблема решена.Структура, которую он возвращает impl(), имеет вид boost::asio::ssl::detail::openssl_stream_service::impl_struct*.Я не ожидал, что это будет документировано, но я наконец искал это в отчаянии и обнаружил иначе.Более того, он содержит указатель на нужную мне структуру SSL, а также структуру OpenSSL BIO и некоторый тип буфера.

0 голосов
/ 07 декабря 2010

ASIO имеет собственный метод для этого: вызов set_verify_mode в контексте ssl.

Метод impl () возвращает SSL_CTX *, но вы не должны зависеть от этого.

...