diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-04-27 10:52:55 +0300 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-04-27 10:52:55 +0300 |
commit | 73ec74c2ae166b5d8d2bc71022aa08258644b0a8 (patch) | |
tree | 8d71cf1c91d84e902c7236d2b24a67db93a7abfa | |
parent | 6f0ecbf401b4a764ecb0f1e77e1cffccc441f8ba (diff) | |
download | gnutls-73ec74c2ae166b5d8d2bc71022aa08258644b0a8.tar.gz |
eliminate the reset ability from hashes
-rw-r--r-- | lib/accelerated/x86/sha-padlock.c | 10 | ||||
-rw-r--r-- | lib/crypto-backend.h | 1 | ||||
-rw-r--r-- | lib/gnutls_cipher_int.c | 2 | ||||
-rw-r--r-- | lib/gnutls_hash_int.c | 28 | ||||
-rw-r--r-- | lib/gnutls_hash_int.h | 15 | ||||
-rw-r--r-- | lib/nettle/mac.c | 11 |
6 files changed, 7 insertions, 60 deletions
diff --git a/lib/accelerated/x86/sha-padlock.c b/lib/accelerated/x86/sha-padlock.c index 204593c0b8..91a1a8fab1 100644 --- a/lib/accelerated/x86/sha-padlock.c +++ b/lib/accelerated/x86/sha-padlock.c @@ -312,15 +312,6 @@ wrap_padlock_hash_output (void *src_ctx, void *digest, size_t digestsize) return 0; } -static void -wrap_padlock_hash_reset (void *src_ctx) -{ - struct padlock_hash_ctx *ctx; - ctx = src_ctx; - - _ctx_init(ctx->algo, ctx->ctx_ptr); -} - int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo, const void* text, size_t text_size, void* digest) @@ -384,7 +375,6 @@ const gnutls_crypto_digest_st sha_padlock_struct = { const gnutls_crypto_digest_st sha_padlock_nano_struct = { .init = wrap_padlock_hash_init, .hash = wrap_padlock_hash_update, - .reset = wrap_padlock_hash_reset, .output = wrap_padlock_hash_output, .deinit = wrap_padlock_hash_deinit, .fast = wrap_padlock_hash_fast, diff --git a/lib/crypto-backend.h b/lib/crypto-backend.h index eba691badb..53e71f62a8 100644 --- a/lib/crypto-backend.h +++ b/lib/crypto-backend.h @@ -66,7 +66,6 @@ typedef struct { int (*init) (gnutls_digest_algorithm_t, void **ctx); - void (*reset) (void *ctx); int (*hash) (void *ctx, const void *src, size_t srcsize); int (*output) (void *src_ctx, void *digest, size_t digestsize); void (*deinit) (void *ctx); diff --git a/lib/gnutls_cipher_int.c b/lib/gnutls_cipher_int.c index d56bf0a4ff..ebb79e56c6 100644 --- a/lib/gnutls_cipher_int.c +++ b/lib/gnutls_cipher_int.c @@ -277,8 +277,6 @@ int ret; ret = _gnutls_mac_output_ssl3 (&handle->mac.dig, tag); if (ret < 0) return gnutls_assert_val(ret); - - _gnutls_mac_reset_ssl3 (&handle->mac.dig); } else { diff --git a/lib/gnutls_hash_int.c b/lib/gnutls_hash_int.c index 2621ec4256..5715e80da2 100644 --- a/lib/gnutls_hash_int.c +++ b/lib/gnutls_hash_int.c @@ -76,7 +76,6 @@ _gnutls_hash_init (digest_hd_st * dig, gnutls_digest_algorithm_t algorithm) } dig->hash = cc->hash; - dig->reset = cc->reset; dig->output = cc->output; dig->deinit = cc->deinit; @@ -91,7 +90,6 @@ _gnutls_hash_init (digest_hd_st * dig, gnutls_digest_algorithm_t algorithm) } dig->hash = _gnutls_digest_ops.hash; - dig->reset = _gnutls_digest_ops.reset; dig->output = _gnutls_digest_ops.output; dig->deinit = _gnutls_digest_ops.deinit; @@ -323,25 +321,6 @@ _gnutls_mac_init_ssl3 (digest_hd_st * ret, gnutls_mac_algorithm_t algorithm, return 0; } -void -_gnutls_mac_reset_ssl3 (digest_hd_st * handle) -{ - uint8_t ipad[48]; - int padsize; - - padsize = get_padsize (handle->algorithm); - - memset (ipad, 0x36, padsize); - - _gnutls_hash_reset(handle); - - if (handle->keysize > 0) - _gnutls_hash (handle, handle->key, handle->keysize); - _gnutls_hash (handle, ipad, padsize); - - return; -} - int _gnutls_mac_output_ssl3 (digest_hd_st * handle, void *digest) { @@ -377,6 +356,13 @@ _gnutls_mac_output_ssl3 (digest_hd_st * handle, void *digest) _gnutls_hash_deinit (&td, digest); + /* reset handle */ + memset (opad, 0x36, padsize); + + if (handle->keysize > 0) + _gnutls_hash (handle, handle->key, handle->keysize); + _gnutls_hash (handle, opad, padsize); + return 0; } diff --git a/lib/gnutls_hash_int.h b/lib/gnutls_hash_int.h index c83c01d87e..78d6133f5b 100644 --- a/lib/gnutls_hash_int.h +++ b/lib/gnutls_hash_int.h @@ -38,7 +38,6 @@ extern gnutls_crypto_digest_st _gnutls_digest_ops; typedef int (*hash_func) (void *handle, const void *text, size_t size); typedef int (*nonce_func) (void *handle, const void *text, size_t size); -typedef void (*reset_func) (void *ctx); typedef int (*output_func) (void *src_ctx, void *digest, size_t digestsize); typedef void (*deinit_func) (void *handle); @@ -46,7 +45,6 @@ typedef struct { gnutls_digest_algorithm_t algorithm; hash_func hash; - reset_func reset; output_func output; deinit_func deinit; @@ -138,17 +136,6 @@ _gnutls_hash_output (digest_hd_st * handle, void *digest) } } -inline static void -_gnutls_hash_reset (digest_hd_st * handle) -{ - if (handle->handle == NULL) - { - return; - } - - handle->reset (handle->handle); -} - void _gnutls_hash_deinit (digest_hd_st * handle, void *digest); @@ -169,8 +156,6 @@ int _gnutls_ssl3_hash_md5 (const void *first, int first_len, const void *second, int second_len, int ret_len, uint8_t * ret); -void _gnutls_mac_reset_ssl3 (digest_hd_st * handle); - int _gnutls_mac_deinit_ssl3_handshake (digest_hd_st * handle, void *digest, uint8_t * key, uint32_t key_size); diff --git a/lib/nettle/mac.c b/lib/nettle/mac.c index 9e95c2a1ad..3dfa81dd51 100644 --- a/lib/nettle/mac.c +++ b/lib/nettle/mac.c @@ -428,16 +428,6 @@ wrap_nettle_hash_output (void *src_ctx, void *digest, size_t digestsize) return 0; } -static void -wrap_nettle_hash_reset (void *src_ctx) -{ - struct nettle_hash_ctx *ctx; - ctx = src_ctx; - - _ctx_init(ctx->algo, ctx->ctx_ptr); -} - - gnutls_crypto_mac_st _gnutls_mac_ops = { .init = wrap_nettle_mac_init, .setkey = wrap_nettle_mac_set_key, @@ -452,7 +442,6 @@ gnutls_crypto_mac_st _gnutls_mac_ops = { gnutls_crypto_digest_st _gnutls_digest_ops = { .init = wrap_nettle_hash_init, .hash = wrap_nettle_hash_update, - .reset = wrap_nettle_hash_reset, .output = wrap_nettle_hash_output, .deinit = wrap_nettle_hash_deinit, .fast = wrap_nettle_hash_fast, |