summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2013-04-27 10:52:55 +0300
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-04-27 10:52:55 +0300
commit73ec74c2ae166b5d8d2bc71022aa08258644b0a8 (patch)
tree8d71cf1c91d84e902c7236d2b24a67db93a7abfa
parent6f0ecbf401b4a764ecb0f1e77e1cffccc441f8ba (diff)
downloadgnutls-73ec74c2ae166b5d8d2bc71022aa08258644b0a8.tar.gz
eliminate the reset ability from hashes
-rw-r--r--lib/accelerated/x86/sha-padlock.c10
-rw-r--r--lib/crypto-backend.h1
-rw-r--r--lib/gnutls_cipher_int.c2
-rw-r--r--lib/gnutls_hash_int.c28
-rw-r--r--lib/gnutls_hash_int.h15
-rw-r--r--lib/nettle/mac.c11
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,