как использовать SSL в классах C ++, сгенерированных gSOAP

Мне нужно использовать библиотеку gsoap на C ++, и мне нужно использовать https. в документации говорится, как работать с HTTPS на C, но не на C ++ (http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.20). в частности, у меня есть ошибка вычисления функции soap_ssl_init (); . Я просмотрел файлы / usr / lib / libgsoap * и нашел ligsoapssl ++. a файл и связался с ним. эта ошибка исчезла, но я получаю ошибку : 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: проверка сертификата не удалась . это означает, что мне нужно вызвать функцию soap_ssl_client_context , но ее нет в сгенерированных классах C ++. Что делать?

UPD: я сам решил эту проблему. но это необычно, очень необычно. gSOAP генерирует классы C ++, унаследованные от struct soap, он содержит следующие attrs:

BIO *bio;
SSL *ssl;
SSL_CTX *ctx;
unsigned short ssl_flags;
const char *keyfile;
const char *password;
const char *dhfile;
const char *cafile;
const char *capath;
const char *crlfile;
const char *randfile;
SSL_SESSION *session;

, поэтому мы можем сами настроить необходимые attrs (флаги, параметры), как в библиотеке OpenSSL. В простом случае достаточно один раз вызвать soap_ssl_init () и установить ssl_flags = SOAP_SSL_NO_AUTHENTICATION . меня устраивает. Если кто знает способ получше, буду рад видеть.

7
задан milo 11 June 2011 в 13:46
поделиться