我正在编写一个非常小的TLS客户端,与我的SMTP客户端一起使用它。 SMTP客户端已经运行良好,但我想将它与GMX或GoogleMail等邮件提供商一起使用。所以我需要TLS。
第一个握手消息已经在运行:
下一步是发送"已完成"信息。但是我对不同的键有点困惑。
我已经计算过RFC中描述的主密码。就像RFC描述的那样,"已完成"消息包含"验证数据"这是创造投掷
PRF(master_secret, finished_label, Hash(handshake_messages))
我似乎已经正常工作了。接下来我应该加密"验证数据"。那是对的吗?我使用密码套件TLS_RSA_WITH_AES_256_CBC_SHA256。为了使用AES-256加密数据,我必须设置一个32字节的密钥。但是我必须在这里使用哪个键?主秘密?但是主秘密是48字节长!?
我希望有人可以帮助我并清除我的困惑。