如何在C ++中使用SSL生成gSOAP生成的类 [英] how to use SSL in C++ gSOAP generated classes
问题描述
我需要使用gsoap库在C + +和我需要使用https。文档说如何在C中使用HTTPS,但不能在C ++中使用(http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.20)。特别是,我有 soap_ssl_init();
函数的编译错误。我看过/ usr / lib / libgsoap *文件,并找到ligsoapssl ++。一个文件,并链接到它。这个错误已经走了,但我得到错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
。这意味着我需要调用 soap_ssl_client_context
func,但没有在C ++生成的类。我该怎么办?
i need to use gsoap library in C++ and i need to use https. documentation says how to work with HTTPS in C, but not in C++ (http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.20). in particular, i have compulation error on soap_ssl_init();
function. i've looked /usr/lib/libgsoap* files and found ligsoapssl++.a file and linked against it. this error has gone, but i get error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
. that's mean i need to call soap_ssl_client_context
func, but there isn't in C++ generated classes. What should i do?
UPD:我自己解决了这个麻烦。但它是古怪,非常古怪的方式。 gSOAP生成继承自struct soap的C ++类,它包含以下attrs:
UPD: i've solved this trouble by myself. but it's quirky, very quirky way. gSOAP generates C++ classes inherited from struct soap, it contains following 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;
所以我们可以像OpenSSL库一样自己设置必要的attrs(flags,params)。在简单的情况下,它足够调用 soap_ssl_init()
一次,并设置 ssl_flags = SOAP_SSL_NO_AUTHENTICATION
。它为我工作。如果任何人知道更好的方式,我很高兴看到。
so we can setup necessary attrs (flags, params) as in OpenSSL library by ourselves. In simple case it's enough to call soap_ssl_init()
once and set ssl_flags = SOAP_SSL_NO_AUTHENTICATION
. it works for me. if anyone knows better way i'll glad to see.
推荐答案
我自己解决了这个麻烦。但它是古怪,非常古怪的方式。 gSOAP生成继承自 struct soap
的C ++类,它包含以下attrs:
i've solved this trouble by myself. but it's quirky, very quirky way. gSOAP generates C++ classes inherited from struct soap
, it contains following 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;
所以我们可以像OpenSSL库一样自己设置必要的attrs(flags,params)。在简单的情况下,它足够调用 soap_ssl_init()
一次,并设置 ssl_flags = SOAP_SSL_NO_AUTHENTICATION
。它为我工作。如果有人知道更好的方法我会gla
so we can setup necessary attrs (flags, params) as in OpenSSL library by ourselves. In simple case it's enough to call soap_ssl_init()
once and set ssl_flags = SOAP_SSL_NO_AUTHENTICATION
. it works for me. if anyone knows better way i'll gla
这篇关于如何在C ++中使用SSL生成gSOAP生成的类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!