-4

我正在尝试手动使用 SSL,而不使用 libs 作为 OpenSSL 等...而且我在第一步中遇到了来自客户端的 Hello 消息的错误。

来自技术网

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 中有一个地方,什么时候必须是 double \r\n (拆分标题和正文消息),可能是,一定有这样的东西吗?

4

1 回答 1

8

您需要好好看看RFC 2246,而不仅仅是编造一些东西。例如,消息元素之间的换行符是您的想象。

但是为什么你认为你可以“手动”使用 SSL 是一个谜。你不能,你也不需要。重新实现 SSL 是一项重大任务,您没有资源去做。使用您的库:OpenSSL、JSSE 等。

于 2012-06-05T10:01:56.550 回答