我目前正在尝试将tls握手实现到我正在编写的http代理中。我知道我可以使用OpenSSL为我做这项工作,但我有兴趣自己编写。
我目前正在通过TLS RFC工作,并对如何解析ClientHello消息感到困惑,特别是它可能有也可能没有会话ID这一事实,并且似乎没有计算密码组的数量或压缩方法。
有谁知道这样做的最佳方式?
答案 0 :(得分:7)
session_id前面是长度。与密码套件和压缩算法相同。
您缺少的是RFC的第4.3节:
通过指定合法的子范围来定义可变长度向量 长度,包括,使用符号。什么时候 编码,实际长度在字节中向量的内容之前 流即可。长度将以消耗尽可能多的数字的形式出现 保持向量指定的最大值(上限)所需的字节数 长度。可变长度向量,实际长度字段为零 被称为空矢量。
答案 1 :(得分:-1)
看看THIS INCREDIBLE BOOK。我不得不在不使用任何GPL软件的情况下为嵌入式系统实现TLS 1.2,这非常有用。