https://tools.ietf.org/html/rfc7627#ref-TRIPLE-HS
扩展协议类型:ExtensionType Values
extended_master_secret 为 0x0017
参考:http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml
tls 扩展协议介绍
https://tools.ietf.org/html/rfc3546
扩展算法介绍
https://tools.ietf.org/html/rfc7627#ref-TRIPLE-HS
算法:
master_secret = PRF(pre_master_secret, "extended master secret", session_hash)
session_hash = Hash(handshake_messages)
//tls ver >1.2 use SHA256, msg 为握手所有数据
ge_handshake_messages (char *msg, int msglen)
{
char concat[64];
SHA_CTX c;
SHA1_Iint(&c);
SHA1_Update(&c, msg, msglen);
SHA1_Final(&concat[16],&c);
MD5_CTX c5;
MD5_Init(&c5);
MD5_Update(&c5,msg,msglen);
MD5_Final(concat, &c5);
}