Hello everyone,
I have a client that attempts to open a secured session with the server. After
calling SSL_connect(), on failure, the client would free the SSL object, and
read the response on normal tcp socket.
On the other hand, the server calls SSL_accept(), and on failure, would free
the SSL object, and return the error message to the client on normal tcp socket.
But what I see is, the client receives some 9 bytes of data after SSL_connect
fails.
This data seems to be SSL control data, as it reaches the client even before
the server actually sends out the error message. The 9 bytes are (16 03 00 00
04 0e 00 00 00).
The client is on Windows and the server is on Linux. The server is performing
SSL_accept on non-blocking socket. The SSL connection failure is due to server
certificate verification failure.
Here is the code snippet from the client code that is in trouble, and receives
these 9 bytes. the value returned in beresp is the first byte of these 9.
Am I missing something while handling SSL_connect failures?
===================================================
if ( SSL_connect(sock->ssl) != 1 ) {
printf("\t%s'", ERR_reason_error_string(ERR_get_error()));
SSL_free(sock->ssl);
ssl = NULL;
}
else
secured = 1;
}
beresp = get_char(sock);
===================================================
Please let me know if I can provide any more information that might be of help
to understand the scenario
Thanks,
~ Urjit
DISCLAIMER
==========
This e-mail may contain privileged and confidential information which is the
property of Persistent Systems Ltd. It is intended only for the use of the
individual or entity to which it is addressed. If you are not the intended
recipient, you are not authorized to read, retain, copy, print, distribute or
use this message. If you have received this communication in error, please
notify the sender and delete all copies of this message. Persistent Systems
Ltd. does not accept any liability for virus infected mails.