-4

libsをOpenSSLなどとして使用せずにSSLを手動で操作しようとしています...そして、クライアントからの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 に答える