From 2de6e2211c31d2911c7d1dc6d445a41fd9ae3429 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 9 Jan 2014 13:58:37 +0000 Subject: adding benchmark logic for HKDF --- src/util/crypto_kdf.c | 1 + src/util/perf_crypto_hash.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) (limited to 'src') diff --git a/src/util/crypto_kdf.c b/src/util/crypto_kdf.c index 9424c2350..17d95b2e0 100644 --- a/src/util/crypto_kdf.c +++ b/src/util/crypto_kdf.c @@ -63,6 +63,7 @@ GNUNET_CRYPTO_kdf_v (void *result, size_t out_len, const void *xts, xts, xts_len, skm, skm_len, argp); } + /** * @brief Derive key * @param result buffer for the derived key, allocated by caller diff --git a/src/util/perf_crypto_hash.c b/src/util/perf_crypto_hash.c index 5261c711b..6a63b543f 100644 --- a/src/util/perf_crypto_hash.c +++ b/src/util/perf_crypto_hash.c @@ -26,6 +26,7 @@ #include "platform.h" #include "gnunet_util_lib.h" #include +#include 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; } -- cgit v1.2.3