Hi,

From rfc2246, a struct for server hello is like this. It will be also
helpful to know about the length for each field in the struct. Can anybody give a hint?
--------------------
From RFC2246
--------------------

7.4.1.3. Server hello

  When this message will be sent:
      The server will send this message in response to a client hello
      message when it was able to find an acceptable set of algorithms.
      If it cannot find such a match, it will respond with a handshake
      failure alert.

  Structure of this message:
      struct {
          ProtocolVersion server_version;
          Random random;
          SessionID session_id;
          CipherSuite cipher_suite;
          CompressionMethod compression_method;
      } ServerHello;
-----------------------------
By sniffing the packet, I can see a server hello byte by byte:
These three fields occupy five bytes long,
       Content Type: Handshake (22)
       Version: SSL 3.0 (0x0300)
       Length: 74
and the server hello itself is 74 bytes long. Since "5" is not wrote into the packet, I'm not sure if it's standard for other SSL versions.

******************************************************************
Secure Socket Layer
   SSLv3 Record Layer: Handshake Protocol: Server Hello
       Content Type: Handshake (22)
       Version: SSL 3.0 (0x0300)
       Length: 74
       Handshake Protocol: Server Hello
           Handshake Type: Server Hello (2)
           Length: 70
           Version: SSL 3.0 (0x0300)
           Random.gmt_unix_time: Apr  3, 2006 15:16:06.000000000
           Random.bytes
           Session ID Length: 32
           Session ID (32 bytes)
           Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)
           Compression Method: null (0)
   SSLv3 Record Layer: Handshake Protocol: Certificate
       Content Type: Handshake (22)
       Version: SSL 3.0 (0x0300)
       Length: 985
       Handshake Protocol: Certificate
           Handshake Type: Certificate (11)
           Length: 981
           Certificates Length: 978
           Certificates (978 bytes)
               Certificate Length: 975
Certificate: 30820338A00302010202105A7341E94B5AA4529CEBC57DBD...
   SSLv3 Record Layer: Handshake Protocol: Server Hello Done
       Content Type: Handshake (22)
       Version: SSL 3.0 (0x0300)
       Length: 4
       Handshake Protocol: Server Hello Done
           Handshake Type: Server Hello Done (14)
           Length: 0
******************************************************************

Thanks,

-Rick



From: jimmy <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
Subject: Re: How long is the server hello header?
Date: Tue, 04 Apr 2006 14:27:00 +0530

Richard Kao wrote:
Hi I'm a newbie to openssl. This is actually a question about concept, and I hope this is the place I can ask this question.

Basically speaking, I'm trying to get the pointer to Certificate in a raw Server Hello packet on the Client side. So far when the client receives a Server Hello, I can get the pointer to the first byte of Secure Socket Layer, from there I see there is a server hello header before the actual Certificate data. In order to get the pointer to Certificate, I need to learn the structure (length) of this server hello header. Which part of code in Openssl I can learn from for reference purpose?

Maybe it'll be easier to discern the structure of the msgs from the struct definitions in rfc2246.

-jb
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [EMAIL PROTECTED]

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to