tolerate additional IPv4 address now available for gnunet.org
[oweals/gnunet.git] / src / util / crypto_hkdf.c
index fa2bd1a69aaca40d35dc58ef510c4dc9621d9e9b..5ed22269f7cba98eaac6ae53fee8da17b16e0de7 100644 (file)
@@ -36,7 +36,7 @@
  * - Matthias Wachs (08.10.2010)
  */
 
-#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
+#define LOG(kind,...) GNUNET_log_from (kind, "util-crypto-hkdf", __VA_ARGS__)
 
 /**
  * Set this to 0 if you compile this code outside of GNUnet.
@@ -53,6 +53,7 @@
 #if GNUNET_BUILD
 #include "platform.h"
 #include "gnunet_crypto_lib.h"
+#include "benchmark.h"
 #else
 #define GNUNET_NO 0
 #define GNUNET_YES 1
@@ -102,7 +103,7 @@ getPRK (gcry_md_hd_t mac, const void *xts, size_t xts_len, const void *skm,
   ret = doHMAC (mac, xts, xts_len, skm, skm_len);
   if (ret == NULL)
     return GNUNET_SYSERR;
-  memcpy (prk, ret, gcry_md_get_algo_dlen (gcry_md_get_algo (mac)));
+  GNUNET_memcpy (prk, ret, gcry_md_get_algo_dlen (gcry_md_get_algo (mac)));
 
   return GNUNET_YES;
 }
@@ -155,6 +156,8 @@ GNUNET_CRYPTO_hkdf_v (void *result, size_t out_len, int xtr_algo, int prf_algo,
   size_t ctx_len;
   va_list args;
 
+  BENCHMARK_START (hkdf);
+
   if (0 == k)
     return GNUNET_SYSERR;
   if (GPG_ERR_NO_ERROR !=
@@ -198,7 +201,7 @@ GNUNET_CRYPTO_hkdf_v (void *result, size_t out_len, int xtr_algo, int prf_algo,
       size_t len;
 
       len = va_arg (args, size_t);
-      memcpy (dst, ctx, len);
+      GNUNET_memcpy (dst, ctx, len);
       dst += len;
     }
     va_end (args);
@@ -212,14 +215,14 @@ GNUNET_CRYPTO_hkdf_v (void *result, size_t out_len, int xtr_algo, int prf_algo,
       hc = doHMAC (prf, prk, xtr_len, &plain[k], ctx_len + 1);
       if (hc == NULL)
         goto hkdf_error;
-      memcpy (result, hc, k);
+      GNUNET_memcpy (result, hc, k);
       result += k;
     }
 
     /* K(i+1) */
     for (i = 1; i < t; i++)
     {
-      memcpy (plain, result - k, k);
+      GNUNET_memcpy (plain, result - k, k);
       memset (plain + k + ctx_len, i + 1, 1);
       gcry_md_reset (prf);
 #if DEBUG_HKDF
@@ -228,7 +231,7 @@ GNUNET_CRYPTO_hkdf_v (void *result, size_t out_len, int xtr_algo, int prf_algo,
       hc = doHMAC (prf, prk, xtr_len, plain, plain_len);
       if (hc == NULL)
         goto hkdf_error;
-      memcpy (result, hc, k);
+      GNUNET_memcpy (result, hc, k);
       result += k;
     }
 
@@ -237,7 +240,7 @@ GNUNET_CRYPTO_hkdf_v (void *result, size_t out_len, int xtr_algo, int prf_algo,
     {
       if (t > 0)
       {
-        memcpy (plain, result - k, k);
+        GNUNET_memcpy (plain, result - k, k);
         i++;
       }
       memset (plain + k + ctx_len, i, 1);
@@ -251,7 +254,7 @@ GNUNET_CRYPTO_hkdf_v (void *result, size_t out_len, int xtr_algo, int prf_algo,
         hc = doHMAC (prf, prk, xtr_len, plain + k, plain_len - k);
       if (hc == NULL)
         goto hkdf_error;
-      memcpy (result, hc, d);
+      GNUNET_memcpy (result, hc, d);
     }
 #if DEBUG_HKDF
     dump ("result", result - k, out_len);
@@ -265,6 +268,7 @@ hkdf_error:
 hkdf_ok:
   gcry_md_close (xtr);
   gcry_md_close (prf);
+  BENCHMARK_END (hkdf);
   return ret;
 }