openssl ssl_connect函数错误called a function you should not call

jinghuazhiye 2013-04-29 02:44:08
执行ssl_connect出现error

前面已经建立了socket连接并成功通信


SSL_library_init();
OpenSSL_add_all_algorithms();
SSL_load_error_strings();

ctx = SSL_CTX_new(SSLv23_server_method());
SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER,NULL);
if(!SSL_CTX_load_verify_locations(ctx,CA_CERT.c_str(),NULL))
{
err = ERR_get_error();
printf("Connect error code: %d ,string: %s\n",err,ERR_error_string(err,NULL));
}

if(!SSL_CTX_use_certificate_file(ctx, MY_CERT.c_str (), SSL_FILETYPE_PEM))
{
err = ERR_get_error();
printf("Connect error code: %d ,string: %s\n",err,ERR_error_string(err,NULL));
}
SSL_CTX_set_default_passwd_cb_userdata(ctx,(void*)PASSWORD.c_str ());

if(!SSL_CTX_use_PrivateKey_file(ctx, PRIVT_KEY.c_str (), SSL_FILETYPE_PEM))
{
err = ERR_get_error();
printf("Connect error code: %d ,string: %s\n",err,ERR_error_string(err,NULL));
}

if(!SSL_CTX_check_private_key(ctx))
{
err = ERR_get_error();
printf("Connect error code: %d ,string: %s\n",err,ERR_error_string(err,NULL));
}
SSL_CTX_set_cipher_list(ctx,"RC4-MD5");
//
if(!Socket::Create())
printf("Could not create client socket.\n");
//printf("sock:%d\n",m_sockfd);
if(!Socket::Connect("127.0.0.1",port))
printf("Could not connect to port.\n");
Socket::Write(static_cast<Socket&>(*this),"hello!\n");
//printf("sock:%d\n",m_sockfd);
if((ssl = SSL_new(ctx))<=0)
{
err = ERR_get_error();
printf("Connect error code: %d ,string: %s\n",err,ERR_error_string(err,NULL));
}
if(SSL_set_fd(ssl, m_sockfd)<=0)
{
err = ERR_get_error();
printf("Connect error code: %d ,string: %s\n",err,ERR_error_string(err,NULL));
}
if (SSL_connect(ssl) <=0)
ERR_print_errors_fp(stderr);
else {
printf("Connected with %s encryption\n", SSL_get_cipher(ssl));
ShowCerts(ssl);
}

执行到上面加粗部分报error:140C5042:SSL routines:SSL_UNDEFINED_FUNCTION:called a function you should not call:ssl_lib.c:2396:

socket连接成功之后客户端发送了一个hello!字符串 已经打印在服务器上了 所以socket连接是没有问题的

这个错误完全不知道是什么意思啊...
...全文
602 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wentao_yu 2013-05-29
  • 打赏
  • 举报
回复 3
<-- ctx = SSL_CTX_new(SSLv23_server_method()); --> ctx = SSL_CTX_new(SSLv23_client_method());

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧