diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2011-09-08 17:55:29 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2011-09-08 17:55:29 +0200 |
commit | 8c1f6e123b1e6aa852c2a823008e3dbf5ef0dd6b (patch) | |
tree | 418a17a072672046cd32f44dd5a04e9f3f313ec7 /lib | |
parent | d0873ee0cb075836c874d44984bb80c7b0b9b602 (diff) | |
download | gnutls-8c1f6e123b1e6aa852c2a823008e3dbf5ef0dd6b.tar.gz |
converted quick data hashes to _gnutls_hash_fast and the hmac equivalent.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gnutls_handshake.c | 25 | ||||
-rw-r--r-- | lib/gnutls_sig.c | 22 | ||||
-rw-r--r-- | lib/gnutls_srp.c | 5 | ||||
-rw-r--r-- | lib/gnutls_state.c | 10 | ||||
-rw-r--r-- | lib/gnutls_ui.c | 12 | ||||
-rw-r--r-- | lib/nettle/mac.c | 2 |
6 files changed, 21 insertions, 55 deletions
diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c index 9617ac9dc8..5a4b4624c8 100644 --- a/lib/gnutls_handshake.c +++ b/lib/gnutls_handshake.c @@ -250,10 +250,8 @@ _gnutls_finished (gnutls_session_t session, int type, void *ret, int sending) { const int siz = TLS_MSG_LEN; opaque concat[MAX_HASH_SIZE + 16 /*MD5 */ ]; - size_t hash_len = 20 + 16; + size_t hash_len; const char *mesg; - digest_hd_st td_md5; - digest_hd_st td_sha; int rc, len; if (sending) @@ -263,33 +261,24 @@ _gnutls_finished (gnutls_session_t session, int type, void *ret, int sending) if (!_gnutls_version_has_selectable_prf (gnutls_protocol_get_version(session))) { - rc = _gnutls_hash_init (&td_sha, GNUTLS_DIG_SHA1); + rc = _gnutls_hash_fast( GNUTLS_DIG_SHA1, session->internals.handshake_hash_buffer.data, len, &concat[16]); if (rc < 0) return gnutls_assert_val(rc); - rc = _gnutls_hash_init (&td_md5, GNUTLS_DIG_MD5); + rc = _gnutls_hash_fast( GNUTLS_DIG_MD5, session->internals.handshake_hash_buffer.data, len, concat); if (rc < 0) - { - _gnutls_hash_deinit (&td_sha, NULL); - return gnutls_assert_val(rc); - } - _gnutls_hash(&td_sha, session->internals.handshake_hash_buffer.data, len); - _gnutls_hash(&td_md5, session->internals.handshake_hash_buffer.data, len); - - _gnutls_hash_deinit (&td_md5, concat); - _gnutls_hash_deinit (&td_sha, &concat[16]); + return gnutls_assert_val(rc); + + hash_len = 20 + 16; } else { int algorithm = _gnutls_cipher_suite_get_prf(&session->security_parameters.current_cipher_suite); - rc = _gnutls_hash_init (&td_sha, algorithm); + rc = _gnutls_hash_fast( algorithm, session->internals.handshake_hash_buffer.data, len, concat); if (rc < 0) return gnutls_assert_val(rc); - _gnutls_hash(&td_sha, session->internals.handshake_hash_buffer.data, len); - - _gnutls_hash_deinit (&td_sha, concat); hash_len = _gnutls_hash_get_algo_len (algorithm); } diff --git a/lib/gnutls_sig.c b/lib/gnutls_sig.c index 98cfb7857e..c906676411 100644 --- a/lib/gnutls_sig.c +++ b/lib/gnutls_sig.c @@ -431,14 +431,12 @@ _gnutls_handshake_verify_cert_vrfy12 (gnutls_session_t session, hash_algo = _gnutls_sign_get_hash_algorithm(sign_algo); - ret = _gnutls_hash_init(&td, hash_algo); + ret = _gnutls_hash_fast(hash_algo, session->internals.handshake_hash_buffer.data, + session->internals.handshake_hash_buffer_prev_len, + concat); if (ret < 0) return gnutls_assert_val(ret); - _gnutls_hash(&td, session->internals.handshake_hash_buffer.data, session->internals.handshake_hash_buffer_prev_len); - - _gnutls_hash_deinit (&td, concat); - dconcat.data = concat; dconcat.size = _gnutls_hash_get_algo_len (hash_algo); @@ -559,7 +557,6 @@ _gnutls_handshake_sign_cert_vrfy12 (gnutls_session_t session, gnutls_datum_t dconcat; int ret; opaque concat[MAX_SIG_SIZE]; - digest_hd_st td; gnutls_sign_algorithm_t sign_algo; gnutls_digest_algorithm_t hash_algo; @@ -577,16 +574,11 @@ _gnutls_handshake_sign_cert_vrfy12 (gnutls_session_t session, gnutls_sign_algorithm_get_name (sign_algo), gnutls_mac_get_name (hash_algo)); - ret = _gnutls_hash_init (&td, hash_algo); + ret = _gnutls_hash_fast (hash_algo, session->internals.handshake_hash_buffer.data, + session->internals.handshake_hash_buffer.length, + concat); if (ret < 0) - { - gnutls_assert (); - return ret; - } - - _gnutls_hash(&td, session->internals.handshake_hash_buffer.data, session->internals.handshake_hash_buffer.length); - - _gnutls_hash_deinit (&td, concat); + return gnutls_assert_val(ret); dconcat.data = concat; dconcat.size = _gnutls_hash_get_algo_len (hash_algo); diff --git a/lib/gnutls_srp.c b/lib/gnutls_srp.c index 6df501a760..4509834f09 100644 --- a/lib/gnutls_srp.c +++ b/lib/gnutls_srp.c @@ -172,7 +172,6 @@ _gnutls_calc_srp_u (bigint_t A, bigint_t B, bigint_t n) size_t b_size, a_size; opaque *holder, hd[MAX_HASH_SIZE]; size_t holder_size, hash_size, n_size; - digest_hd_st td; int ret; bigint_t res; @@ -197,15 +196,13 @@ _gnutls_calc_srp_u (bigint_t A, bigint_t B, bigint_t n) _gnutls_mpi_print (A, &holder[n_size - a_size], &a_size); _gnutls_mpi_print (B, &holder[n_size + n_size - b_size], &b_size); - ret = _gnutls_hash_init (&td, GNUTLS_MAC_SHA1); + ret = _gnutls_hash_fast (GNUTLS_MAC_SHA1, holder, holder_size, hd); if (ret < 0) { gnutls_free (holder); gnutls_assert (); return NULL; } - _gnutls_hash (&td, holder, holder_size); - _gnutls_hash_deinit (&td, hd); /* convert the bytes of hd to integer */ diff --git a/lib/gnutls_state.c b/lib/gnutls_state.c index e1b3ac58ac..5fb782a8d7 100644 --- a/lib/gnutls_state.c +++ b/lib/gnutls_state.c @@ -794,15 +794,9 @@ _gnutls_cal_PRF_A (gnutls_mac_algorithm_t algorithm, digest_hd_st td1; int ret; - ret = _gnutls_hmac_init (&td1, algorithm, secret, secret_size); + ret = _gnutls_hmac_fast (algorithm, secret, secret_size, seed, seed_size, result); if (ret < 0) - { - gnutls_assert (); - return ret; - } - - _gnutls_hmac (&td1, seed, seed_size); - _gnutls_hmac_deinit (&td1, result); + return gnutls_assert_val(ret); return 0; } diff --git a/lib/gnutls_ui.c b/lib/gnutls_ui.c index 6aed5758d9..e05dd4d47b 100644 --- a/lib/gnutls_ui.c +++ b/lib/gnutls_ui.c @@ -557,6 +557,7 @@ gnutls_fingerprint (gnutls_digest_algorithm_t algo, size_t * result_size) { digest_hd_st td; + int ret; int hash_len = _gnutls_hash_get_algo_len (HASH2MAC (algo)); if (hash_len < 0 || (unsigned) hash_len > *result_size || result == NULL) @@ -568,16 +569,9 @@ gnutls_fingerprint (gnutls_digest_algorithm_t algo, if (result) { - int ret = _gnutls_hash_init (&td, HASH2MAC (algo)); + ret = _gnutls_hash_fast( algo, data->data, data->size, result); if (ret < 0) - { - gnutls_assert (); - return ret; - } - - _gnutls_hash (&td, data->data, data->size); - - _gnutls_hash_deinit (&td, result); + return gnutls_assert_val(ret); } return 0; diff --git a/lib/nettle/mac.c b/lib/nettle/mac.c index 479b693c03..3be974acac 100644 --- a/lib/nettle/mac.c +++ b/lib/nettle/mac.c @@ -74,7 +74,7 @@ struct nettle_hmac_ctx digest_func digest; set_key_func setkey; -/* FIXME: Nettle doesn't have a reset function for +/* Note: Nettle doesn't have a reset function for * hmac so we need to manually reset a context, by * calling set_key(). For that reason we need to * store the hmac key here. |