aboutsummaryrefslogtreecommitdiff
path: root/src/util/crypto_hkdf.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-10-07 20:04:54 +0000
committerChristian Grothoff <christian@grothoff.org>2010-10-07 20:04:54 +0000
commit0ff0854fcadc3c84f5f5125610306fadcf202649 (patch)
tree8a499e4b5415d11b0d95e9371881c533cf0cd8ae /src/util/crypto_hkdf.c
parentfaf7ea3640432864044108d16c311f72e4a0826d (diff)
downloadgnunet-0ff0854fcadc3c84f5f5125610306fadcf202649.tar.gz
gnunet-0ff0854fcadc3c84f5f5125610306fadcf202649.zip
small fixes and style issues
Diffstat (limited to 'src/util/crypto_hkdf.c')
-rw-r--r--src/util/crypto_hkdf.c37
1 files changed, 25 insertions, 12 deletions
diff --git a/src/util/crypto_hkdf.c b/src/util/crypto_hkdf.c
index 00750554f..64437571e 100644
--- a/src/util/crypto_hkdf.c
+++ b/src/util/crypto_hkdf.c
@@ -44,8 +44,9 @@
44 * @return HMAC, freed by caller via gcry_md_close/_reset 44 * @return HMAC, freed by caller via gcry_md_close/_reset
45 */ 45 */
46static void * 46static void *
47doHMAC (gcry_md_hd_t mac, const void *key, const size_t key_len, 47doHMAC (gcry_md_hd_t mac,
48 const void *buf, const size_t buf_len) 48 const void *key, size_t key_len,
49 const void *buf, size_t buf_len)
49{ 50{
50 gcry_md_setkey (mac, key, key_len); 51 gcry_md_setkey (mac, key, key_len);
51 gcry_md_write (mac, buf, buf_len); 52 gcry_md_write (mac, buf, buf_len);
@@ -64,8 +65,10 @@ doHMAC (gcry_md_hd_t mac, const void *key, const size_t key_len,
64 * @return GNUNET_YES on success 65 * @return GNUNET_YES on success
65 */ 66 */
66static int 67static int
67getPRK (gcry_md_hd_t mac, const void *xts, const unsigned long long xts_len, 68getPRK (gcry_md_hd_t mac,
68 const void *skm, const unsigned long long skm_len, void *prk) 69 const void *xts, unsigned long long xts_len, /* FIXME: size_t? */
70 const void *skm, unsigned long long skm_len,
71 void *prk)
69{ 72{
70 void *ret; 73 void *ret;
71 74
@@ -77,20 +80,25 @@ getPRK (gcry_md_hd_t mac, const void *xts, const unsigned long long xts_len,
77 return GNUNET_YES; 80 return GNUNET_YES;
78} 81}
79 82
83
80#if DEBUG_HKDF 84#if DEBUG_HKDF
81static void dump(char *src, void *p, unsigned int l) 85static void
86dump(const char *src,
87 const void *p,
88 unsigned int l)
82{ 89{
83 unsigned int i; 90 unsigned int i;
84 91
85 printf("\n%s: ", src); 92 printf("\n%s: ", src);
86 for (i = 0; i < l; i++) 93 for (i = 0; i < l; i++)
87 { 94 {
88 printf("%2x", (int) ((unsigned char *) p)[i]); 95 printf("%2x", (int) ((const unsigned char *) p)[i]);
89 } 96 }
90 printf("\n"); 97 printf("\n");
91} 98}
92#endif 99#endif
93 100
101
94/** 102/**
95 * @brief Derive key 103 * @brief Derive key
96 * @param result buffer for the derived key, allocated by caller 104 * @param result buffer for the derived key, allocated by caller
@@ -105,9 +113,11 @@ static void dump(char *src, void *p, unsigned int l)
105 * @return GNUNET_YES on success 113 * @return GNUNET_YES on success
106 */ 114 */
107int 115int
108GNUNET_CRYPTO_hkdf_v (void *result, const unsigned long long out_len, 116GNUNET_CRYPTO_hkdf_v (void *result, unsigned long long out_len,
109 int xtr_algo, int prf_algo, const void *xts, const size_t xts_len, 117 int xtr_algo, int prf_algo,
110 const void *skm, const size_t skm_len, va_list argp) 118 const void *xts, size_t xts_len,
119 const void *skm, size_t skm_len,
120 va_list argp)
111{ 121{
112 void *prk, *hc, *plain; 122 void *prk, *hc, *plain;
113 unsigned long long plain_len; 123 unsigned long long plain_len;
@@ -243,6 +253,7 @@ hkdf_ok:
243 return ret; 253 return ret;
244} 254}
245 255
256
246/** 257/**
247 * @brief Derive key 258 * @brief Derive key
248 * @param result buffer for the derived key, allocated by caller 259 * @param result buffer for the derived key, allocated by caller
@@ -258,9 +269,11 @@ hkdf_ok:
258 * @return GNUNET_YES on success 269 * @return GNUNET_YES on success
259 */ 270 */
260int 271int
261GNUNET_CRYPTO_hkdf (void *result, const unsigned long long out_len, 272GNUNET_CRYPTO_hkdf (void *result, unsigned long long out_len,
262 int xtr_algo, int prf_algo, const void *xts, const size_t xts_len, 273 int xtr_algo, int prf_algo,
263 const void *skm, const size_t skm_len, ...) 274 const void *xts, size_t xts_len,
275 const void *skm, size_t skm_len,
276 ...)
264{ 277{
265 va_list argp; 278 va_list argp;
266 int ret; 279 int ret;