From: Jonathan Bastien-Filiatrault Date: Mon, 6 Sep 2010 05:18:54 +0000 (-0400) Subject: dtls: Send consistent a client_random. X-Git-Tag: gnutls_2_99_0~233 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d0bb2339372be2b8f4eabbeaeb34dfc6363cc15;p=thirdparty%2Fgnutls.git dtls: Send consistent a client_random. This is necessary when challenged by HelloVerifiyRequest as we MUST send the same client parameters. Signed-off-by: Nikos Mavrogiannopoulos --- diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c index f5d3794b1e..81bb263405 100644 --- a/lib/gnutls_handshake.c +++ b/lib/gnutls_handshake.c @@ -2172,10 +2172,17 @@ _gnutls_send_client_hello (gnutls_session_t session, int again) /* Generate random data */ - _gnutls_tls_create_random (rnd); - _gnutls_set_client_random (session, rnd); + if (!_gnutls_is_dtls (session) + || session->internals.dtls.hsk_hello_verify_requests == 0) + { + _gnutls_tls_create_random (rnd); + _gnutls_set_client_random (session, rnd); + + memcpy (&data[pos], rnd, GNUTLS_RANDOM_SIZE); + } + else + memcpy (&data[pos], session->security_parameters.client_random, GNUTLS_RANDOM_SIZE); - memcpy (&data[pos], rnd, GNUTLS_RANDOM_SIZE); pos += GNUTLS_RANDOM_SIZE; /* Copy the Session ID