aboutsummaryrefslogtreecommitdiff
path: root/src/util/crypto_hkdf.c
diff options
context:
space:
mode:
authorDavid Barksdale <amatus.amongus@gmail.com>2010-10-18 05:52:29 +0000
committerDavid Barksdale <amatus.amongus@gmail.com>2010-10-18 05:52:29 +0000
commit93326b9ca26d5dc7f4a50c76b7a84cd685af9b33 (patch)
treeac9be16421d16bb264ebb3c42ff448a0c5da74b1 /src/util/crypto_hkdf.c
parent0bdccef390726ec42400b5927d966a9066e7c243 (diff)
downloadgnunet-93326b9ca26d5dc7f4a50c76b7a84cd685af9b33.tar.gz
gnunet-93326b9ca26d5dc7f4a50c76b7a84cd685af9b33.zip
Fix logic error in HKDF and provide test case for regressions.
Diffstat (limited to 'src/util/crypto_hkdf.c')
-rw-r--r--src/util/crypto_hkdf.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/util/crypto_hkdf.c b/src/util/crypto_hkdf.c
index eb91780cb..e27f31bb8 100644
--- a/src/util/crypto_hkdf.c
+++ b/src/util/crypto_hkdf.c
@@ -246,8 +246,12 @@ GNUNET_CRYPTO_hkdf_v (void *result, size_t out_len,
246 if (d > 0) 246 if (d > 0)
247 { 247 {
248 if (t > 0) 248 if (t > 0)
249 memcpy (plain, result - k, k); 249 {
250 memset (plain + k + ctx_len, i + 1, 1); 250 memcpy (plain, result - k, k);
251 memset (plain + k + ctx_len, i + 1, 1);
252 }
253 else
254 memset (plain + k + ctx_len, 1, 1);
251 gcry_md_reset (prf); 255 gcry_md_reset (prf);
252#if DEBUG_HKDF 256#if DEBUG_HKDF
253 dump("K(t):d", plain, plain_len); 257 dump("K(t):d", plain, plain_len);