aboutsummaryrefslogtreecommitdiff
path: root/src/util/crypto_hkdf.c
diff options
context:
space:
mode:
authorNils Durner <durner@gnunet.org>2010-06-29 21:30:42 +0000
committerNils Durner <durner@gnunet.org>2010-06-29 21:30:42 +0000
commit773edae5e9c44583c3750ca46f8e556fa76cc561 (patch)
tree803080e0cd195ef8b7b7a7bfa9b5412e603f2a26 /src/util/crypto_hkdf.c
parentb75b85a326001501db0ef4bac2b719a85ac04230 (diff)
downloadgnunet-773edae5e9c44583c3750ca46f8e556fa76cc561.tar.gz
gnunet-773edae5e9c44583c3750ca46f8e556fa76cc561.zip
minor
Diffstat (limited to 'src/util/crypto_hkdf.c')
-rw-r--r--src/util/crypto_hkdf.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/util/crypto_hkdf.c b/src/util/crypto_hkdf.c
index 1d0deeacb..3ee6ae3db 100644
--- a/src/util/crypto_hkdf.c
+++ b/src/util/crypto_hkdf.c
@@ -22,8 +22,8 @@
22 22
23/** 23/**
24 * @file src/util/crypto_hkdf.c 24 * @file src/util/crypto_hkdf.c
25 * @brief Hash-based KDF as defined in draft-krawczyk-hkdf-01 25 * @brief Hash-based KDF as defined in RFC 5869
26 * @see http://tools.ietf.org/html/draft-krawczyk-hkdf-01 26 * @see http://www.rfc-editor.org/rfc/rfc5869.txt
27 * @author Nils Durner 27 * @author Nils Durner
28 */ 28 */
29 29
@@ -82,7 +82,7 @@ static void dump(void *p, unsigned int l)
82 printf("\n"); 82 printf("\n");
83 for (i = 0; i < l; i++) 83 for (i = 0; i < l; i++)
84 { 84 {
85 printf("%2x", ((char *) p)[i]); 85 printf("%2x", (int) ((unsigned char *) p)[i]);
86 } 86 }
87 printf("\n"); 87 printf("\n");
88} 88}
@@ -142,7 +142,8 @@ dump(prk, xtr_len);
142 { 142 {
143 memset (plain + k + ctx_len, 0, 4); 143 memset (plain + k + ctx_len, 0, 4);
144 gcry_md_reset (prf); 144 gcry_md_reset (prf);
145 hc = doHMAC (prf, prk, k, plain, plain_len); 145dump(plain, plain_len);
146 hc = doHMAC (prf, prk, xtr_len, plain, plain_len);
146 if (hc == NULL) 147 if (hc == NULL)
147 goto hkdf_error; 148 goto hkdf_error;
148 memcpy (result, hc, k); 149 memcpy (result, hc, k);
@@ -155,7 +156,8 @@ dump(prk, xtr_len);
155 memcpy (plain, result - k, k); 156 memcpy (plain, result - k, k);
156 memcpy (plain + k + ctx_len, &i, 4); 157 memcpy (plain + k + ctx_len, &i, 4);
157 gcry_md_reset (prf); 158 gcry_md_reset (prf);
158 hc = doHMAC (prf, prk, k, plain, plain_len); 159dump(plain, plain_len);
160 hc = doHMAC (prf, prk, xtr_len, plain, plain_len);
159 if (hc == NULL) 161 if (hc == NULL)
160 goto hkdf_error; 162 goto hkdf_error;
161 memcpy (result, hc, k); 163 memcpy (result, hc, k);
@@ -170,11 +172,13 @@ dump(prk, xtr_len);
170 memcpy (plain, result - k, k); 172 memcpy (plain, result - k, k);
171 memcpy (plain + k + ctx_len, &i, 4); 173 memcpy (plain + k + ctx_len, &i, 4);
172 gcry_md_reset (prf); 174 gcry_md_reset (prf);
173 hc = doHMAC (prf, prk, k, plain, plain_len); 175dump(plain, plain_len);
176 hc = doHMAC (prf, prk, xtr_len, plain, plain_len);
174 if (hc == NULL) 177 if (hc == NULL)
175 goto hkdf_error; 178 goto hkdf_error;
176 memcpy (result, hc, d); 179 memcpy (result, hc, d);
177 } 180 }
181dump(result - k, out_len);
178 182
179 ret = GNUNET_YES; 183 ret = GNUNET_YES;
180 goto hkdf_ok; 184 goto hkdf_ok;