diff options
Diffstat (limited to 'lib/tls13/key_update.c')
-rw-r--r-- | lib/tls13/key_update.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/tls13/key_update.c b/lib/tls13/key_update.c index 9bbfca15e3..d9c495efdc 100644 --- a/lib/tls13/key_update.c +++ b/lib/tls13/key_update.c @@ -44,7 +44,13 @@ static int update_keys(gnutls_session_t session, hs_stage_t stage) if (ret < 0) return gnutls_assert_val(ret); - ret = _tls13_connection_state_init(session, stage); + /* If we send a key update during early start, only update our + * write keys */ + if (session->internals.recv_state == RECV_STATE_EARLY_START) { + ret = _tls13_write_connection_state_init(session, stage); + } else { + ret = _tls13_connection_state_init(session, stage); + } if (ret < 0) return gnutls_assert_val(ret); |