]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
eliminate the reset ability from hashes
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 27 Apr 2013 07:52:55 +0000 (10:52 +0300)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 27 Apr 2013 07:52:55 +0000 (10:52 +0300)
lib/accelerated/x86/sha-padlock.c
lib/crypto-backend.h
lib/gnutls_cipher_int.c
lib/gnutls_hash_int.c
lib/gnutls_hash_int.h
lib/nettle/mac.c

index 204593c0b8724c5f80ad2d3d4d73b0bda1ead296..91a1a8fab16f01f43c6ec7418eb85128e8940f6b 100644 (file)
@@ -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,
index eba691badbb826ae591f2a6a534fcf2025d359c0..53e71f62a891e54c77cf6ad51c5c61def10c92e7 100644 (file)
@@ -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);
index d56bf0a4ffcc368ebcdb02bcdb88c1457c2944b6..ebb79e56c65e5fc653c714f76b42da586feb871d 100644 (file)
@@ -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
         {
index 2621ec4256022283e401681145b439fe6a577463..5715e80da25eaeb9f32a7616943fe39ec661b875 100644 (file)
@@ -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;
 }
 
index c83c01d87eb406aa6ebe4df178106203f388c969..78d6133f5b6448627c3c5186333ddf3ec2443f7a 100644 (file)
@@ -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);
 
index 9e95c2a1ad9b5f09f1d1621cee59f80bf14b3c30..3dfa81dd514d24c0927e4b1ff9fbf062950ad3e5 100644 (file)
@@ -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,