SSL client-hello,消息体结构

时间:2012-06-05 03:34:12

标签: ssl

我正在尝试手动使用SSL而不使用libs作为OpenSSL等...而且我在第一步有来自客户端的Hello消息时出错。

来自technet

It must consist of:
ClientVersion 3,1
ClientRandom[32]
SessionID: None (new session)
Suggested Cipher Suites:
   TLS_RSA_WITH_3DES_EDE_CBC_SHA
   TLS_RSA_WITH_DES_CBC_SHA
Suggested Compression Algorithm: NONE

在我的代码(C / C ++)中,我以这种方式创建了消息:

char *request = "ClientVersion 3,1\r\nClientRandom[32]\r\n
SessionID: None (new session)\r\n
Suggested Cipher Suites:\r\n
TLS_RSA_WITH_3DES_EDE_CBC_SHA\r\n
TLS_RSA_WITH_DES_CBC_SHA\r\n
Suggested Compression Algorithm: NONE\r\n";

但是在recv()函数之后,我的结果是0,所以我的消息结构出了什么问题?

PS 在HTTP-proto中有一个地方,当必须是双\ r \ n(分割标题和正文消息),可能是,必须有这样的东西吗?

1 个答案:

答案 0 :(得分:8)

你需要好好看看RFC 2246,而不仅仅是做好准备。例如,信息元素之间的换行符就是你想象中的一个虚构。

但是为什么你认为你可以“手动”使用SSL是一个谜。你不能,也不需要。重新实现SSL是一项重要任务,您没有足够的资源来执行此操作。使用你的库:OpenSSL,JSSE等。