minor changes for address conversion
[oweals/gnunet.git] / src / util / perf_crypto_hash.c
index 746b33ecaa053bc36d3348ee30208717067a870a..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_crypto_lib.h"
-#include "gnunet_time_lib.h"
+#include "gnunet_util_lib.h"
 #include <gauger.h>
 #include <gauger.h>
+#include <gcrypt.h>
+
 
 static void
 perfHash ()
 {
 
 static void
 perfHash ()
 {
-  GNUNET_HashCode hc1;
-  GNUNET_HashCode hc2;
-  GNUNET_HashCode hc3;
-  int i;
-  char *buf;
+  struct GNUNET_HashCode hc;
+  unsigned int i;
+  char buf[64 * 1024];
+
+  memset (buf, 1, sizeof (buf));
+  for (i = 0; i < 1024; i++)
+    GNUNET_CRYPTO_hash (buf, sizeof (buf), &hc);
+}
+
+
+static void
+perfHKDF ()
+{
+  unsigned int i;
+  char res[128];
+  char buf[128];
+  char skm[64];
 
 
-  buf = GNUNET_malloc (1024 * 64);
-  memset (buf, 1, 1024 * 64);
-  GNUNET_CRYPTO_hash ("foo", 3, &hc1);
+  memset (buf, 1, sizeof (buf));
+  memset (skm, 2, sizeof (skm));
   for (i = 0; i < 1024; i++)
   for (i = 0; i < 1024; i++)
-    {
-      GNUNET_CRYPTO_hash (&hc1, sizeof (GNUNET_HashCode), &hc2);
-      GNUNET_CRYPTO_hash (&hc2, sizeof (GNUNET_HashCode), &hc1);
-      GNUNET_CRYPTO_hash (buf, 1024 * 64, &hc3);
-    }
-  GNUNET_free (buf);
+    GNUNET_CRYPTO_hkdf (res, sizeof (res),
+                        GCRY_MD_SHA512, GCRY_MD_SHA256,
+                        buf, sizeof (buf),
+                        skm, sizeof (skm),
+                        "test", (size_t) 4,
+                        NULL, 0);
 }
 
 }
 
+
 int
 main (int argc, char *argv[])
 {
 int
 main (int argc, char *argv[])
 {
@@ -57,14 +69,23 @@ main (int argc, char *argv[])
 
   start = GNUNET_TIME_absolute_get ();
   perfHash ();
 
   start = GNUNET_TIME_absolute_get ();
   perfHash ();
-  printf ("Hash perf took %llu ms\n",
-         (unsigned long long)
-         GNUNET_TIME_absolute_get_duration (start).rel_value);
+  printf ("Hash perf took %s\n",
+          GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (start),
+                                                 GNUNET_YES));
   GAUGER ("UTIL", "Cryptographic hashing",
   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;
 }
 
-/* end of hashperf.c */
+/* end of perf_crypto_hash.c */