The client sends a ClientHello message with the protocol version in this case 3.1.
The server sends a ServerHello message with the protocol it supports. The client reads the ServerHello and checks the protocol version. You can test by running the following commands. openssl s_server -debug -msg -tls1 openssl s_client -debug -msg -tls1 ----- Original Message ----- From: Kingston Smiler To: openssl-users@openssl.org Sent: Friday, December 17, 2010 1:41 AM Subject: How to find the other end can support SSL or not Hi All, Is there any way to identify whether the other end supports TLS or not. My requirement is like this. If the other end supports TLS i should send the packet over TLS connection otherwise i should send traffic over TCP. If the other end doesn't support TLS, my initial TCP connection will be successful. When i do SSL_Connect over this TCP socket, the other end considers this as TCP payload and doesn't respond to me. I don't get an failure related to SSL_connect. So is there a way to identify whether the other end supports TLS or not. Regards, S. Kingston Smiler.