summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2022-12-20 03:18:13 +0000
committerDaiki Ueno <ueno@gnu.org>2022-12-20 03:18:13 +0000
commit8da0016927e858798e6a720d5cf0fc7418f21f54 (patch)
treea61a794c2dae258ae6830768afb630251466bf4f
parent358bbdd17dbcf34800a3b9b7bb9e50bd314a0085 (diff)
parent6531dafba1175f6101296957deb95891ed05e57b (diff)
downloadgnutls-8da0016927e858798e6a720d5cf0fc7418f21f54.tar.gz
Merge branch 'master' into 'master'
fix obtain credential type based on the key exchange type failï¼›fix log print key mac size error See merge request gnutls/gnutls!1670
-rw-r--r--lib/algorithms/kx.c8
-rw-r--r--lib/auth/ecdhe.c10
-rw-r--r--lib/constate.c4
3 files changed, 13 insertions, 9 deletions
diff --git a/lib/algorithms/kx.c b/lib/algorithms/kx.c
index 2591ec193a..d2a24409d5 100644
--- a/lib/algorithms/kx.c
+++ b/lib/algorithms/kx.c
@@ -298,11 +298,11 @@ _gnutls_map_kx_get_cred(gnutls_kx_algorithm_t algorithm, int server)
{
gnutls_credentials_type_t ret = -1;
if (server) {
- GNUTLS_KX_MAP_LOOP(if (p->algorithm == algorithm) ret =
- p->server_type);
+ GNUTLS_KX_MAP_LOOP(if (p->algorithm == algorithm) {ret =
+ p->server_type; break;});
} else {
- GNUTLS_KX_MAP_LOOP(if (p->algorithm == algorithm) ret =
- p->client_type);
+ GNUTLS_KX_MAP_LOOP(if (p->algorithm == algorithm) {ret =
+ p->client_type; break;});
}
return ret;
diff --git a/lib/auth/ecdhe.c b/lib/auth/ecdhe.c
index 9f53b1b053..a045d306dc 100644
--- a/lib/auth/ecdhe.c
+++ b/lib/auth/ecdhe.c
@@ -193,8 +193,10 @@ int _gnutls_proc_ecdh_common_client_kx(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
- if (data_size != 0)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ if (data_size != 0) {
+ ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ goto cleanup;
+ }
/* generate pre-shared key */
ret = calc_ecdh_key(session, psk_key, ecurve);
@@ -202,8 +204,10 @@ int _gnutls_proc_ecdh_common_client_kx(gnutls_session_t session,
gnutls_assert();
goto cleanup;
}
-
cleanup:
+ _gnutls_mpi_release(&session->key.proto.tls12.ecdh.x);
+ _gnutls_mpi_release(&session->key.proto.tls12.ecdh.y);
+ _gnutls_free_datum(&session->key.proto.tls12.ecdh.raw);
gnutls_pk_params_clear(&session->key.proto.tls12.ecdh.params);
return ret;
}
diff --git a/lib/constate.c b/lib/constate.c
index b1925f6939..fbb047509f 100644
--- a/lib/constate.c
+++ b/lib/constate.c
@@ -126,13 +126,13 @@ _gnutls_set_keys(gnutls_session_t session, record_parameters_st * params,
pos += hash_size;
_gnutls_hard_log("INT: CLIENT MAC KEY [%d]: %s\n",
- key_size,
+ client_write->mac_key_size,
_gnutls_bin2hex(client_write->mac_key,
hash_size,
buf, sizeof(buf), NULL));
_gnutls_hard_log("INT: SERVER MAC KEY [%d]: %s\n",
- key_size,
+ server_write->mac_key_size,
_gnutls_bin2hex(server_write->mac_key,
hash_size,
buf, sizeof(buf), NULL));