minor changes for address conversion
[oweals/gnunet.git] / src / util / perf_crypto_hash.c
index d883776b48b5270e6b2fda80228f8a01345a0f78..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
-     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
  * @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 <gcrypt.h>
+
 
 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++)
-  {
-    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[])
 {
@@ -57,14 +69,23 @@ main (int argc, char *argv[])
 
   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",
-          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;
 }
 
-/* end of hashperf.c */
+/* end of perf_crypto_hash.c */