minor changes for address conversion
[oweals/gnunet.git] / src / util / perf_crypto_hash.c
index affd4a2d5f561d9109dbca331fcaacfd780c365f..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
@@ -24,9 +24,9 @@
  * @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
 
 
 static void
@@ -42,6 +42,26 @@ perfHash ()
 }
 
 
 }
 
 
+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);
+}
+
+
 int
 main (int argc, char *argv[])
 {
 int
 main (int argc, char *argv[])
 {
@@ -56,6 +76,15 @@ main (int argc, char *argv[])
           64 * 1024 / (1 +
                       GNUNET_TIME_absolute_get_duration
                       (start).rel_value_us / 1000LL), "kb/ms");
           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;
 }