Can anybody help in this
Pradeep A wrote:
>
>
>
>
> This is regarding openssl renegotiation issue in client server
> communication.The openssl version is 1.0.1c.
>
> The client and server are establishing the SSL connection using blocking
> sockets and communication is fine.The client sends the data and server
> receives and send back to client.
>
> When server want to do renegotiation it is done using SSL_renogotiate,
> SSL_do_handshake after that setting SSL state as SSL_ST_ACCEPT.
>
> Server Code for renegotiation:
>
> ssl_session_id_context = 1;
> SSL_set_session_id_context(ssl, (unsigned char
> *)&ssl_session_id_context, sizeof(ssl_session_id_context));
> if(SSL_renegotiate(ssl) <= 0){
> printf("SSL_renegotiate() failed\n");
> } if( (err = SSL_do_handshake(ssl)) <= 0){
> printf("SSL_do_handshake() 1 failed %d\n",
> SSL_get_error(ssl, err));
> ERR_print_errors_fp(stderr);
> } ssl->state = SSL_ST_ACCEPT;
> printf("Accepted state %d\n", ssl->state);
> if( (err = SSL_do_handshake(ssl)) <= 0){
> printf("SSL_do_handshake() failed %d %d\n", err,
> SSL_get_error(ssl, err));
> ERR_print_errors_fp(stderr);
> }
>
>
>
> The client side general behaviour is waiting on console to read data using
> SSL_write to send it to server.During this time if server renegotiates and
> client side sends any data from console by calling SSL_write the
> rehandshake is failed.
>
> Client side code writing data:
>
> ret = SSL_write(ssl, send_data, strlen(send_data));
>
>
> The following lines are printed at server side returning -1 from second
> SSL_do_handshake
>
> 3086063264:error:140940F5:SSL routines:SSL3_READ_BYTES:unexpected
> record:s3_pkt.c:1404:
>
> The following lines are printed at client side when it is reading using
> SSL_read which is returning -1 after it sends data to server
>
> 3086079648:error:140943F2:SSL routines:SSL3_READ_BYTES:sslv3 alert
> unexpected message:s3_pkt.c:1251:SSL alert number 10
> 3086079648:error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake
> failure:s3_pkt.c:1151:
>
> In openssl.org for blocking sockets following is given
>
> If the underlying BIO is blocking, SSL_write() will only return, once the
> write operation has been finished or an error occurred, except when a
> renegotiation take place, in which case a SSL_ERROR_WANT_READ may occur.
>
> How exactly SSL_write behaves at the clint side when it receives SSL
> renogotiation from server. How can the rehandshake be successful in this
> case.
>
>
--
View this message in context:
http://old.nabble.com/SSL-renegotiation-in-openssl-using-blocked-sockets-tp34005802p34017782.html
Sent from the OpenSSL - Dev mailing list archive at Nabble.com.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]