diff options
Diffstat (limited to 'src/util/crypto_hkdf.c')
-rw-r--r-- | src/util/crypto_hkdf.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/util/crypto_hkdf.c b/src/util/crypto_hkdf.c index d97f516fe..0654b51f6 100644 --- a/src/util/crypto_hkdf.c +++ b/src/util/crypto_hkdf.c | |||
@@ -71,8 +71,8 @@ | |||
71 | * @return HMAC, freed by caller via gcry_md_close/_reset | 71 | * @return HMAC, freed by caller via gcry_md_close/_reset |
72 | */ | 72 | */ |
73 | static const void * | 73 | static const void * |
74 | doHMAC (gcry_md_hd_t mac, | 74 | doHMAC (gcry_md_hd_t mac, const void *key, size_t key_len, const void *buf, |
75 | const void *key, size_t key_len, const void *buf, size_t buf_len) | 75 | size_t buf_len) |
76 | { | 76 | { |
77 | gcry_md_setkey (mac, key, key_len); | 77 | gcry_md_setkey (mac, key, key_len); |
78 | gcry_md_write (mac, buf, buf_len); | 78 | gcry_md_write (mac, buf, buf_len); |
@@ -91,9 +91,8 @@ doHMAC (gcry_md_hd_t mac, | |||
91 | * @return GNUNET_YES on success | 91 | * @return GNUNET_YES on success |
92 | */ | 92 | */ |
93 | static int | 93 | static int |
94 | getPRK (gcry_md_hd_t mac, | 94 | getPRK (gcry_md_hd_t mac, const void *xts, size_t xts_len, const void *skm, |
95 | const void *xts, size_t xts_len, | 95 | size_t skm_len, void *prk) |
96 | const void *skm, size_t skm_len, void *prk) | ||
97 | { | 96 | { |
98 | const void *ret; | 97 | const void *ret; |
99 | 98 | ||
@@ -136,10 +135,9 @@ dump (const char *src, const void *p, unsigned int l) | |||
136 | * @return GNUNET_YES on success | 135 | * @return GNUNET_YES on success |
137 | */ | 136 | */ |
138 | int | 137 | int |
139 | GNUNET_CRYPTO_hkdf_v (void *result, size_t out_len, | 138 | GNUNET_CRYPTO_hkdf_v (void *result, size_t out_len, int xtr_algo, int prf_algo, |
140 | int xtr_algo, int prf_algo, | 139 | const void *xts, size_t xts_len, const void *skm, |
141 | const void *xts, size_t xts_len, | 140 | size_t skm_len, va_list argp) |
142 | const void *skm, size_t skm_len, va_list argp) | ||
143 | { | 141 | { |
144 | const void *hc; | 142 | const void *hc; |
145 | unsigned long i, t, d; | 143 | unsigned long i, t, d; |
@@ -280,17 +278,17 @@ hkdf_ok: | |||
280 | * @return GNUNET_YES on success | 278 | * @return GNUNET_YES on success |
281 | */ | 279 | */ |
282 | int | 280 | int |
283 | GNUNET_CRYPTO_hkdf (void *result, size_t out_len, | 281 | GNUNET_CRYPTO_hkdf (void *result, size_t out_len, int xtr_algo, int prf_algo, |
284 | int xtr_algo, int prf_algo, | 282 | const void *xts, size_t xts_len, const void *skm, |
285 | const void *xts, size_t xts_len, | 283 | size_t skm_len, ...) |
286 | const void *skm, size_t skm_len, ...) | ||
287 | { | 284 | { |
288 | va_list argp; | 285 | va_list argp; |
289 | int ret; | 286 | int ret; |
290 | 287 | ||
291 | va_start (argp, skm_len); | 288 | va_start (argp, skm_len); |
292 | ret = GNUNET_CRYPTO_hkdf_v (result, out_len, xtr_algo, prf_algo, xts, | 289 | ret = |
293 | xts_len, skm, skm_len, argp); | 290 | GNUNET_CRYPTO_hkdf_v (result, out_len, xtr_algo, prf_algo, xts, xts_len, |
291 | skm, skm_len, argp); | ||
294 | va_end (argp); | 292 | va_end (argp); |
295 | 293 | ||
296 | return ret; | 294 | return ret; |