我正在尝试手动使用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(分割标题和正文消息),可能是,必须有这样的东西吗?
答案 0 :(得分:8)
你需要好好看看RFC 2246,而不仅仅是做好准备。例如,信息元素之间的换行符就是你想象中的一个虚构。
但是为什么你认为你可以“手动”使用SSL是一个谜。你不能,也不需要。重新实现SSL是一项重要任务,您没有足够的资源来执行此操作。使用你的库:OpenSSL,JSSE等。