minor changes for address conversion
[oweals/gnunet.git] / src / util / perf_crypto_hash.c
index 8cf7f8748795fe9e33e89fd733d524dd44e5c1b2..6a63b543f6adfe558f772e3d275db3356e142e4d 100644 (file)
@@ -4,7 +4,7 @@
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
  * @brief measure performance of hash function
  */
 #include "platform.h"
  * @brief measure performance of hash function
  */
 #include "platform.h"
-#include "gnunet_common.h"
 #include "gnunet_util_lib.h"
 #include <gauger.h>
 #include "gnunet_util_lib.h"
 #include <gauger.h>
+#include <gcrypt.h>
 
 
 static void
 perfHash ()
 {
 
 
 static void
 perfHash ()
 {
-  struct GNUNET_HashCode hc1;
-  struct GNUNET_HashCode hc2;
-  struct GNUNET_HashCode hc3;
-  int i;
-  char *buf;
+  struct GNUNET_HashCode hc;
+  unsigned int i;
+  char buf[64 * 1024];
 
 
-  buf = GNUNET_malloc (1024 * 64);
-  memset (buf, 1, 1024 * 64);
-  GNUNET_CRYPTO_hash ("foo", 3, &hc1);
+  memset (buf, 1, sizeof (buf));
   for (i = 0; i < 1024; i++)
   for (i = 0; i < 1024; i++)
-  {
-    GNUNET_CRYPTO_hash (&hc1, sizeof (struct GNUNET_HashCode), &hc2);
-    GNUNET_CRYPTO_hash (&hc2, sizeof (struct GNUNET_HashCode), &hc1);
-    GNUNET_CRYPTO_hash (buf, 1024 * 64, &hc3);
-  }
-  GNUNET_free (buf);
+    GNUNET_CRYPTO_hash (buf, sizeof (buf), &hc);
+}
+
+
+static void
+perfHKDF ()
+{
+  unsigned int i;
+  char res[128];
+  char buf[128];
+  char skm[64];
+
+  memset (buf, 1, sizeof (buf));
+  memset (skm, 2, sizeof (skm));
+  for (i = 0; i < 1024; i++)
+    GNUNET_CRYPTO_hkdf (res, sizeof (res),
+                        GCRY_MD_SHA512, GCRY_MD_SHA256,
+                        buf, sizeof (buf),
+                        skm, sizeof (skm),
+                        "test", (size_t) 4,
+                        NULL, 0);
 }
 
 
 }
 
 
@@ -62,9 +73,18 @@ main (int argc, char *argv[])
           GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (start),
                                                  GNUNET_YES));
   GAUGER ("UTIL", "Cryptographic hashing",
           GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (start),
                                                  GNUNET_YES));
   GAUGER ("UTIL", "Cryptographic hashing",
-          1024 * 64 * 1024 / (1 +
-                              GNUNET_TIME_absolute_get_duration
-                              (start).rel_value), "kb/s");
+          64 * 1024 / (1 +
+                      GNUNET_TIME_absolute_get_duration
+                      (start).rel_value_us / 1000LL), "kb/ms");
+  start = GNUNET_TIME_absolute_get ();
+  perfHKDF ();
+  printf ("HKDF perf took %s\n",
+          GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (start),
+                                                 GNUNET_YES));
+  GAUGER ("UTIL", "Cryptographic HKDF",
+          64 * 1024 / (1 +
+                      GNUNET_TIME_absolute_get_duration
+                      (start).rel_value_us / 1000LL), "kb/ms");
   return 0;
 }
 
   return 0;
 }