From cdb1d028a4aaf61531e6e7d9d9a8759d5956daa9 Mon Sep 17 00:00:00 2001 From: Ander Juaristi Date: Sat, 16 Dec 2017 12:58:39 +0100 Subject: Merge from upstream Signed-off-by: Ander Juaristi --- lib/ext/pre_shared_key.c | 6 +----- lib/handshake.c | 3 ++- lib/secrets.c | 7 +++---- lib/tls13/finished.c | 4 ++-- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/lib/ext/pre_shared_key.c b/lib/ext/pre_shared_key.c index 36df5d7099..8056882af1 100644 --- a/lib/ext/pre_shared_key.c +++ b/lib/ext/pre_shared_key.c @@ -40,10 +40,6 @@ compute_binder_key(const mac_entry_st *prf, char label[] = "ext_binder"; size_t label_len = strlen(label); uint8_t tmp_key[MAX_HASH_SIZE]; - size_t tmp_key_len = _gnutls_mac_get_algo_len(prf); - - if (tmp_key_len == 0) - return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR); /* Compute HKDF-Extract(0, psk) */ /* TODO try to use the existing functions here */ @@ -58,7 +54,7 @@ compute_binder_key(const mac_entry_st *prf, ret = _tls13_derive_secret2(prf, label, label_len, NULL, 0, - tmp_key, tmp_key_len, + tmp_key, out); if (ret < 0) return ret; diff --git a/lib/handshake.c b/lib/handshake.c index 5658f9af4f..b9bbea8156 100644 --- a/lib/handshake.c +++ b/lib/handshake.c @@ -1780,7 +1780,8 @@ read_server_hello(gnutls_session_t session, } ret = _tls13_derive_secret(session, DERIVED_LABEL, sizeof(DERIVED_LABEL)-1, - NULL, 0, session->key.temp_secret); + NULL, 0, session->key.proto.tls13.temp_secret, + session->key.proto.tls13.temp_secret); if (ret < 0) gnutls_assert(); } diff --git a/lib/secrets.c b/lib/secrets.c index 5ca6ad3f89..374e1bf1eb 100644 --- a/lib/secrets.c +++ b/lib/secrets.c @@ -83,7 +83,7 @@ int _tls13_derive_secret2(const mac_entry_st *prf, if (ret < 0) return gnutls_assert_val(ret); - return _tls13_expand_secret2(prf, label, label_size, digest, digest_size, secret, out_size, out); + return _tls13_expand_secret2(prf, label, label_size, digest, digest_size, secret, digest_size, out); } /* Derive-Secret(Secret, Label, Messages) */ @@ -96,9 +96,8 @@ int _tls13_derive_secret(gnutls_session_t session, if (unlikely(session->security_parameters.prf == NULL)) return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR); - return _tls13_derive_secret2(session->security_parameters.prf, label, label_size, msg, msg_size, - session->key.temp_secret, - session->key.temp_secret_size, + return _tls13_derive_secret2(session->security_parameters.prf, label, label_size, tbh, tbh_size, + secret, out); } diff --git a/lib/tls13/finished.c b/lib/tls13/finished.c index 873ebfb255..c28d24a19d 100644 --- a/lib/tls13/finished.c +++ b/lib/tls13/finished.c @@ -77,9 +77,9 @@ int _gnutls13_recv_finished(gnutls_session_t session) hash_size = session->security_parameters.prf->output_size; if (session->security_parameters.entity == GNUTLS_CLIENT) - base_key = session->key.hs_skey; + base_key = session->key.proto.tls13.hs_skey; else - base_key = session->key.hs_ckey; + base_key = session->key.proto.tls13.hs_ckey; ret = _gnutls13_compute_finished(session->security_parameters.prf, base_key, hash_size, -- cgit v1.2.1