Visual studio dtls握手失败,出现警报解密错误

Visual studio dtls握手失败,出现警报解密错误,visual-studio,visual-c++,openssl,handshake,dtls,Visual Studio,Visual C++,Openssl,Handshake,Dtls,我正在从客户端实现dtls srtp握手(openssl与VS C++),但失败了。wireshark上的消息流如下所示: 客户你好 服务器你好,证书(片段),证书(片段),证书(片段),证书(片段),证书(重新组装),证书请求,服务器你好完成 证书(片段)、证书(片段)、证书(片段)、证书(重组)、客户端密钥交换、证书验证(片段) 服务器你好,证书[重新组装错误,协议DTLS:新片段与旧数据重叠(重新传输?)] 客户你好 服务器你好,证书[重新组装错误,协议DTLS:新片段与旧数据重叠(重新

我正在从客户端实现dtls srtp握手(openssl与VS C++),但失败了。wireshark上的消息流如下所示:

  • 客户你好

  • 服务器你好,证书(片段),证书(片段),证书(片段),证书(片段),证书(重新组装),证书请求,服务器你好完成

  • 证书(片段)、证书(片段)、证书(片段)、证书(重组)、客户端密钥交换、证书验证(片段)
  • 服务器你好,证书[重新组装错误,协议DTLS:新片段与旧数据重叠(重新传输?)]
  • 客户你好
  • 服务器你好,证书[重新组装错误,协议DTLS:新片段与旧数据重叠(重新传输?)]
  • 客户端你好,证书[重新组装错误,协议DTLS:新片段与旧数据重叠(重新传输?)]
  • 服务器你好,证书[重新组装错误,协议DTLS:新片段与旧数据重叠(重新传输?)]
  • 证书验证(重新组装),更改密码规范,证书[重新组装错误,协议DTLS:新片段与旧数据重叠(重新传输?)]
  • 警报(级别:致命,说明:解密错误)
有人知道这里发生了什么吗?是证书/密钥的问题,还是我遗漏了任何SSL选项/参数

我试图更改mtu值,但无效

修改:来自客户端的日志

*SSL\u CB\u握手\u启动未知:在/connect初始化之前

SSL\u CB\u循环SSL\u连接:在/connect初始化之前

SSL\U CB\U循环SSL\U连接:SSLv3写入客户端hello A

SSL\u CB\u退出SSL\u连接:SSLv3读取服务器hello A

SSL\u CB\u退出SSL\u连接:SSLv3读取服务器hello A

->connect err=-1 errRet=SSL\u错误\u需要\u读取

SSL\U CB\U循环SSL\U连接:SSLv3读取服务器hello A

SSL\U CB\U循环SSL\U连接:SSLv3读取服务器证书A

SSL\U CB\U循环SSL\U连接:SSLv3读取服务器证书请求A

SSL\U CB\U循环SSL\U连接:SSLv3读取服务器已完成

SSL\U CB\U循环SSL\U连接:SSLv3写入客户端证书A

SSL\U CB\U循环SSL\U连接:SSLv3写入客户端密钥交换A

SSL\u CB\u循环SSL\u连接:SSLv3写入证书验证

SSL\u CB\u退出SSL\u连接:错误

->connect err=-1 errRet=SSL\u ERROR\u SYSCALL*


[RFC6347-图1.完整握手的消息航班][1]据此,您到达航班5,但以“证书验证(片段)”结束。我想知道,为什么那个消息会变得支离破碎(它只有几个字节)。航班5必须包含CCS和FINISH,但缺少这些。openssl是否向日志/控制台写入了内容?[1] :我从客户端添加了日志。顺便说一句,CertificateVerify的长度预计为142字节,因为它包含一个长度为128b的签名-(,因此我没有关于错误原因的详细信息。对不起,您解决了问题吗?我现在遇到了一个类似的问题。