小编Pra*_*bhu的帖子

为什么不是指向成员函数的指针只是像数据指针那样的内存地址

我从这个 FAQ条目中意识到,无法将指向成员函数的指针转换为/从void*.指向成员的原因不是内存地址,就像指向数据的指针一样!为什么这样?请帮我澄清一下.这不一定与成员函数,但任何正常的C函数,不是吗?

c c++

15
推荐指数
1
解决办法
731
查看次数

EDH-RSA-DES-CBC3-SHA的"无共享密码"错误

我想用密码EDH-RSA-DES-CBC3-SHA测试TLS 1.0连接.

我用openssl s_server和s_client测试.工作良好.连接和数据交换都很好.

openssl s_server -accept 4433 -cert server.pem -key serverkey.pem -cipher EDH-RSA-DES-CBC3-SHA -tls1

openssl s_client -connect 127.0.0.1:443 -cipher EDH-RSA-DES-CBC3-SHA -tls1

共享密码:EDH-RSA-DES-CBC3-SHA

现在,我有另一个简单的OpenSSL服务器代码.使用this和s_client连接失败,服务器抛出以下内容:

3077613304:错误:1408A0C1:SSL例程:SSL3_GET_CLIENT_HELLO:无共享密码:s3_srvr.c:1361

我检查s_server/s_client使用的库和我的服务器应用程序使用的库是否相同如下:

cat /proc/9515/maps | awk '{print $6}' | grep '\.so' | sort | uniq | grep -e ssl -e libcrypto

/usr/lib/libcrypto.so.1.0.1e

/usr/lib/libssl.so.1.0.1e

但是,对于像AES128-SHA这样的其他密码,从s_client到我的服务器应用程序的连接也没问题.

以下是我ctx在服务器代码中设置的方式:

SSL_CTX* InitServerCTX(void)
{
    SSL_CTX *ctx = NULL;
    SSL_library_init();
    OpenSSL_add_all_algorithms();
    SSL_load_error_strings(); 

    ctx = SSL_CTX_new(TLSv1_server_method());
    SSL_CTX_set_cipher_list(ctx,"EDH-RSA-DES-CBC3-SHA"); // Returns 1

    SSL_CTX_use_certificate_chain_file(ctx, "server.pem");
    SSL_CTX_use_PrivateKey_file(ctx, "serverkey.pem", SSL_FILETYPE_PEM);

    return ctx;
}
Run Code Online (Sandbox Code Playgroud)

为什么我的服务器应用程序抛出'No shared cipher'错误,s_server对同一个客户端没问题?

c openssl

6
推荐指数
1
解决办法
1169
查看次数

澄清范围和重新定义

参考下面的代码:

#include <stdio.h>

int a;
int a;

int main()
{
    int b;
    int b;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么编译器(GCC)仅仅为变量'b'而不是'a'抱怨重新声明?

redef.c:在函数'main'中:redef.c:19:错误:重新声明没有链接的'b'

redef.c:18:错误:之前的'b'声明就在这里

c

4
推荐指数
1
解决办法
159
查看次数

标签 统计

c ×3

c++ ×1

openssl ×1