如何在C ++中使用SSL生成gSOAP生成的类 [英] how to use SSL in C++ gSOAP generated classes

查看:232
本文介绍了如何在C ++中使用SSL生成gSOAP生成的类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆