- Allocate buffer large enough to contain UNIX_PATH_MAX size pathnames in case of...
[oweals/gnunet.git] / src / util / perf_crypto_hash.c
index 5261c711be58a0b20b0e5b9cb81926e46f2ae2a6..6a63b543f6adfe558f772e3d275db3356e142e4d 100644 (file)
@@ -26,6 +26,7 @@
 #include "platform.h"
 #include "gnunet_util_lib.h"
 #include <gauger.h>
+#include <gcrypt.h>
 
 
 static void
@@ -41,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[])
 {
@@ -55,6 +76,15 @@ main (int argc, char *argv[])
           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;
 }