diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-10-06 11:16:17 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-11-15 15:41:36 +0100 |
commit | 0c321950a0eaf1cbacf3771e68578db3909a255f (patch) | |
tree | 1c7aa454f475f7d0d992709fbb904ba9c1e227ea | |
parent | 04ba4db72d9c9c846cecfc2b0958eaf7df1fd54d (diff) | |
download | gnutls-0c321950a0eaf1cbacf3771e68578db3909a255f.tar.gz |
handshake: treat reply to HRR as a reply to hello verify request
That is, re-use the client random value on the client hello which
is a reply to a hello retry request.
Relates #299
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r-- | lib/handshake.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/handshake.c b/lib/handshake.c index d12e80e676..3746296d44 100644 --- a/lib/handshake.c +++ b/lib/handshake.c @@ -1868,9 +1868,8 @@ static int send_client_hello(gnutls_session_t session, int again) /* Generate random data */ - if (!IS_DTLS(session) - || session->internals.dtls.hsk_hello_verify_requests == - 0) { + if (!(session->internals.hsk_flags & HSK_HRR_RECEIVED) && + !(IS_DTLS(session) && session->internals.dtls.hsk_hello_verify_requests == 0)) { ret = _gnutls_gen_client_random(session); if (ret < 0) return gnutls_assert_val(ret); |