summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2015-11-13 16:41:31 +0100
committerNikos Mavrogiannopoulos <nmav@redhat.com>2015-11-13 16:41:31 +0100
commit03049f8e7a02b19695464ce026bab947831df803 (patch)
treeafd03737ed0f2c980795975e9be4f3d2446f63c6
parent86cfae5389d80d516adeea6b13f98baae536369e (diff)
downloadgnutls-03049f8e7a02b19695464ce026bab947831df803.tar.gz
Revert "deinitialize all handshake keys when handshake is over"
This reverts commit 0e370b7b34c96f7929f9070ad8287c6cf52e7901.
-rw-r--r--lib/gnutls_state.c52
1 files changed, 24 insertions, 28 deletions
diff --git a/lib/gnutls_state.c b/lib/gnutls_state.c
index fe03dbdb34..f5e81054dc 100644
--- a/lib/gnutls_state.c
+++ b/lib/gnutls_state.c
@@ -222,33 +222,6 @@ _gnutls_session_cert_type_supported(gnutls_session_t session,
return GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE;
}
-static void deinit_keys(gnutls_session_t session)
-{
- gnutls_pk_params_release(&session->key.ecdh_params);
- gnutls_pk_params_release(&session->key.dh_params);
- zrelease_temp_mpi_key(&session->key.ecdh_x);
- zrelease_temp_mpi_key(&session->key.ecdh_y);
-
- zrelease_temp_mpi_key(&session->key.client_Y);
-
- /* SRP */
- zrelease_temp_mpi_key(&session->key.srp_p);
- zrelease_temp_mpi_key(&session->key.srp_g);
- zrelease_temp_mpi_key(&session->key.srp_key);
-
- zrelease_temp_mpi_key(&session->key.u);
- zrelease_temp_mpi_key(&session->key.a);
- zrelease_temp_mpi_key(&session->key.x);
- zrelease_temp_mpi_key(&session->key.A);
- zrelease_temp_mpi_key(&session->key.B);
- zrelease_temp_mpi_key(&session->key.b);
-
- /* RSA */
- zrelease_temp_mpi_key(&session->key.rsa[0]);
- zrelease_temp_mpi_key(&session->key.rsa[1]);
-
- _gnutls_free_temp_key_datum(&session->key.key);
-}
/* this function deinitializes all the internal parameters stored
* in a session struct.
@@ -298,7 +271,6 @@ void _gnutls_handshake_internal_state_clear(gnutls_session_t session)
_gnutls_handshake_internal_state_init(session);
deinit_internal_params(session);
- deinit_keys(session);
_gnutls_epoch_gc(session);
@@ -502,6 +474,30 @@ void gnutls_deinit(gnutls_session_t session)
gnutls_credentials_clear(session);
_gnutls_selected_certs_deinit(session);
+ gnutls_pk_params_release(&session->key.ecdh_params);
+ gnutls_pk_params_release(&session->key.dh_params);
+ zrelease_temp_mpi_key(&session->key.ecdh_x);
+ zrelease_temp_mpi_key(&session->key.ecdh_y);
+
+ zrelease_temp_mpi_key(&session->key.client_Y);
+
+ zrelease_temp_mpi_key(&session->key.srp_p);
+ zrelease_temp_mpi_key(&session->key.srp_g);
+ zrelease_temp_mpi_key(&session->key.srp_key);
+
+ zrelease_temp_mpi_key(&session->key.u);
+ zrelease_temp_mpi_key(&session->key.a);
+ zrelease_temp_mpi_key(&session->key.x);
+ zrelease_temp_mpi_key(&session->key.A);
+ zrelease_temp_mpi_key(&session->key.B);
+ zrelease_temp_mpi_key(&session->key.b);
+
+ /* RSA */
+ zrelease_temp_mpi_key(&session->key.rsa[0]);
+ zrelease_temp_mpi_key(&session->key.rsa[1]);
+
+ _gnutls_free_temp_key_datum(&session->key.key);
+
gnutls_free(session);
}