DTLSv1_Listen失败

时间:2019-01-03 10:25:33

标签: openssl dtls

我当前正在编写DTLS服务器。我遇到DTLSv1_Listen的问题,但失败,错误代码为SSL_ERROR_SSL。

握手序列如下: 客户您好         内容类型:握手(22)         版本:DTLS 1.2(0xfefd)         纪元:0         序列号:0         长度:145         握手协议:客户端Hello             握手类型:客户端Hello(1)             长度:133             讯息顺序:0             片段偏移量:0             片段长度:133             版本:DTLS 1.2(0xfefd)             随机:10a0b17d31c7b374d08d51f3fdd3e6b5ecb13658a9e554a3 ...             会话ID长度:0             Cookie长度:0             密码套件长度:6             密码套房(3间套房)             压缩方式长度:1             压缩方法(1种方法)             扩展长度:85             扩展名:ec_point_formats(len = 4)             扩展名:supported_groups(len = 28)             扩展:SessionTicket TLS(len = 0)             扩展名:signature_algorithms(len = 32)             扩展程序:心跳(len = 1)

您好验证请求         内容类型:握手(22)         版本:DTLS 1.2(0xfefd)         纪元:0         序列号:0         长度:35         握手协议:Hello验证请求             握手类型:Hello验证请求(3)             长度:23             讯息顺序:0             片段偏移量:0             片段长度:23             版本:DTLS 1.0(0xfeff)             Cookie长度:20             Cookie:c4994e593cd77b26208a374cde0b48372a1636db

DTLSv1.2记录层:警报(级别:致命,描述:握手失败)         内容类型:警报(21)         版本:DTLS 1.2(0xfefd)         纪元:0         序列号:1         长度:2         警报消息

我的ssl上下文是这样初始化的:

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

 pServerContext = SSL_CTX_new(DTLSv1_2_server_method());

    if (SSL_CTX_set_cipher_list(pServerContext, "ALL") != 1)
    {
      getLogger()->error("DTLS : unable to load ciphers, exiting\n");
      exit(1);
    }

[...设置证书,密钥等...]

返回的Cookie是正确的,我看不出有什么问题。唯一奇怪的一点是在验证请求中发送的Version:DTLS 1.0(奇怪,因为我使用DTLSv1_2_server_method进行了初始化)。 有没有解释为什么它会失败?

感谢您的输入!

0 个答案:

没有答案