* - Matthias Wachs (08.10.2010)
*/
-#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
+#define LOG(kind,...) GNUNET_log_from (kind, "util-crypto-hkdf", __VA_ARGS__)
/**
* Set this to 0 if you compile this code outside of GNUnet.
#if GNUNET_BUILD
#include "platform.h"
#include "gnunet_crypto_lib.h"
+#include "benchmark.h"
#else
#define GNUNET_NO 0
#define GNUNET_YES 1
ret = doHMAC (mac, xts, xts_len, skm, skm_len);
if (ret == NULL)
return GNUNET_SYSERR;
- memcpy (prk, ret, gcry_md_get_algo_dlen (gcry_md_get_algo (mac)));
+ GNUNET_memcpy (prk, ret, gcry_md_get_algo_dlen (gcry_md_get_algo (mac)));
return GNUNET_YES;
}
size_t ctx_len;
va_list args;
+ BENCHMARK_START (hkdf);
+
if (0 == k)
return GNUNET_SYSERR;
if (GPG_ERR_NO_ERROR !=
size_t len;
len = va_arg (args, size_t);
- memcpy (dst, ctx, len);
+ GNUNET_memcpy (dst, ctx, len);
dst += len;
}
va_end (args);
hc = doHMAC (prf, prk, xtr_len, &plain[k], ctx_len + 1);
if (hc == NULL)
goto hkdf_error;
- memcpy (result, hc, k);
+ GNUNET_memcpy (result, hc, k);
result += k;
}
/* K(i+1) */
for (i = 1; i < t; i++)
{
- memcpy (plain, result - k, k);
+ GNUNET_memcpy (plain, result - k, k);
memset (plain + k + ctx_len, i + 1, 1);
gcry_md_reset (prf);
#if DEBUG_HKDF
hc = doHMAC (prf, prk, xtr_len, plain, plain_len);
if (hc == NULL)
goto hkdf_error;
- memcpy (result, hc, k);
+ GNUNET_memcpy (result, hc, k);
result += k;
}
{
if (t > 0)
{
- memcpy (plain, result - k, k);
+ GNUNET_memcpy (plain, result - k, k);
i++;
}
memset (plain + k + ctx_len, i, 1);
hc = doHMAC (prf, prk, xtr_len, plain + k, plain_len - k);
if (hc == NULL)
goto hkdf_error;
- memcpy (result, hc, d);
+ GNUNET_memcpy (result, hc, d);
}
#if DEBUG_HKDF
dump ("result", result - k, out_len);
hkdf_ok:
gcry_md_close (xtr);
gcry_md_close (prf);
+ BENCHMARK_END (hkdf);
return ret;
}