TLS握手消息解析

时间:2011-10-16 18:50:41

标签: c++ networking ssl proxy openssl

我目前正在尝试将tls握手实现到我正在编写的http代理中。我知道我可以使用OpenSSL为我做这项工作,但我有兴趣自己编写。

我目前正在通过TLS RFC工作,并对如何解析ClientHello消息感到困惑,特别是它可能有也可能没有会话ID这一事实,并且似乎没有计算密码组的数量或压缩方法。

有谁知道这样做的最佳方式?

2 个答案:

答案 0 :(得分:7)

session_id前面是长度。与密码套件和压缩算法相同。

您缺少的是RFC的第4.3节:

  

通过指定合法的子范围来定义可变长度向量      长度,包括,使用符号。什么时候      编码,实际长度在字节中向量的内容之前      流即可。长度将以消耗尽可能多的数字的形式出现      保持向量指定的最大值(上限)所需的字节数      长度。可变长度向量,实际长度字段为零      被称为空矢量。

答案 1 :(得分:-1)

看看THIS INCREDIBLE BOOK。我不得不在不使用任何GPL软件的情况下为嵌入式系统实现TLS 1.2,这非常有用。