As described in bug report #1647 both server and client are hanging  
when calling SSL_renegotiate() with DTLS. The client sends the  
ClientHello to the server, but the message sequence number has not  
been reset to 0 after the first handshake. So the server drops it  
(out of sync) and continues waiting for the ClientHello while the  
client is waiting for the server's response.

The following patch resets the message sequence number to 0 after  
finishing a handshake and thus fixes this bug for OpenSSL 0.9.8i.

Regards,
Robin


--- ssl/d1_clnt.c~  2008-06-04 20:35:25.000000000 +0200
+++ ssl/d1_clnt.c   2008-10-14 13:24:09.000000000 +0200
@@ -492,6 +492,7 @@

                         /* done with handshaking */
                         s->d1->handshake_read_seq  = 0;
+                       s->d1->next_handshake_write_seq = 0;
                         goto end;
                         /* break; */



--- ssl/d1_srvr.c~  2008-09-14 16:02:01.000000000 +0200
+++ ssl/d1_srvr.c   2008-10-14 13:24:01.000000000 +0200
@@ -554,6 +554,7 @@
                         s->d1->handshake_read_seq = 0;
                         /* next message is server hello */
                         s->d1->handshake_write_seq = 0;
+                       s->d1->next_handshake_write_seq = 0;
                         goto end;
                         /* break; */


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

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

Reply via email to