矛盾的是,SSL_CTX_set_cipher_list()导致没有密码可用"

时间:2014-09-11 17:59:46

标签: c encryption openssl

我正在编写一个程序,使用OpenSSL通过DTLS与客户端和服务器的RSA证书进行通信,并使用X509_sign(cert, private_key, EVP_get_digestbyname("SHA384"))签名。

当我没有限制OpenSSL选择密码时,它会自动选择ECDHE-RSA-AES256-GCM-SHA384来保护连接(这是握手后SSL_get_cipher_list()返回的内容)。

在行动中,我认为这个密码是一个非常好的选择。它使用前向安全性和最新密码。这就是为什么我要确保始终通过调用选择此密码

assert(SSL_CTX_set_cipher_list(ctx, "ECDHE-RSA-AES256-GCM-SHA384") == 1);

一开始。 但是,当我这样做时,握手失败并带有

140737353926512:error:140F80B5:SSL routines:DTLS1_CLIENT_HELLO:no ciphers available:d1_clnt.c:851:

对我来说,这种行为有点悖论:如果我让OpenSSL自由选择密码,它会选择ECDHE-RSA-AES256-GCM-SHA384,但我强制它使用它拒绝。 像青少年一样。

你们其中一个人是否知道这里有什么问题?

0 个答案:

没有答案