Copyright years
[oweals/gnunet.git] / src / util / crypto_kdf.c
index 785603c8c7a8d33f9827ed8e1b02a7818bb99a17..242fbf29690f8bfa386630e5f5740a241f6be221 100644 (file)
@@ -1,10 +1,10 @@
 /*
      This file is part of GNUnet.
 /*
      This file is part of GNUnet.
-     (C) 2010 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2010 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
 */
 
 /**
 #include "platform.h"
 #include "gnunet_crypto_lib.h"
 
 #include "platform.h"
 #include "gnunet_crypto_lib.h"
 
+#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
+
 /**
  * @brief Derive key
  * @param result buffer for the derived key, allocated by caller
  * @param out_len desired length of the derived key
  * @param xts salt
 /**
  * @brief Derive key
  * @param result buffer for the derived key, allocated by caller
  * @param out_len desired length of the derived key
  * @param xts salt
- * @param xts_len length of xts
+ * @param xts_len length of @a xts
  * @param skm source key material
  * @param skm source key material
- * @param skm_len length of skm
+ * @param skm_len length of @a skm
  * @param argp va_list of void * & size_t pairs for context chunks
  * @param argp va_list of void * & size_t pairs for context chunks
- * @return GNUNET_YES on success
+ * @return #GNUNET_YES on success
  */
 int
  */
 int
-GNUNET_CRYPTO_kdf_v (void *result, const unsigned long long out_len,
-    const void *xts, const size_t xts_len, const void *skm,
-    const size_t skm_len, va_list argp)
+GNUNET_CRYPTO_kdf_v (void *result, size_t out_len, const void *xts,
+                     size_t xts_len, const void *skm, size_t skm_len,
+                     va_list argp)
 {
   /*
 {
   /*
-   "Finally, we point out to a particularly advantageous instantiation using
-    HMAC-SHA512 as XTR and HMAC-SHA256 in PRF* (in which case the output from SHA-512 is
-    truncated to 256 bits). This makes sense in two ways: First, the extraction part is where we need a
-    stronger hash function due to the unconventional demand from the hash function in the extraction
-    setting. Second, as shown in Section 6, using HMAC with a truncated output as an extractor
-    allows to prove the security of HKDF under considerably weaker assumptions on the underlying
-    hash function."
-
-   http://eprint.iacr.org/2010/264
+   "Finally, we point out to a particularly advantageous instantiation using
+   * HMAC-SHA512 as XTR and HMAC-SHA256 in PRF* (in which case the output from SHA-512 is
+   * truncated to 256 bits). This makes sense in two ways: First, the extraction part is where we need a
+   * stronger hash function due to the unconventional demand from the hash function in the extraction
+   * setting. Second, as shown in Section 6, using HMAC with a truncated output as an extractor
+   * allows to prove the security of HKDF under considerably weaker assumptions on the underlying
+   * hash function."
+   *
+   http://eprint.iacr.org/2010/264
    */
 
   return GNUNET_CRYPTO_hkdf_v (result, out_len, GCRY_MD_SHA512, GCRY_MD_SHA256,
    */
 
   return GNUNET_CRYPTO_hkdf_v (result, out_len, GCRY_MD_SHA512, GCRY_MD_SHA256,
-      xts, xts_len, skm, skm_len, argp);
+                               xts, xts_len, skm, skm_len, argp);
 }
 
 }
 
+
 /**
  * @brief Derive key
  * @param result buffer for the derived key, allocated by caller
  * @param out_len desired length of the derived key
  * @param xts salt
 /**
  * @brief Derive key
  * @param result buffer for the derived key, allocated by caller
  * @param out_len desired length of the derived key
  * @param xts salt
- * @param xts_len length of xts
+ * @param xts_len length of @a xts
  * @param skm source key material
  * @param skm source key material
- * @param skm_len length of skm
+ * @param skm_len length of @a skm
  * @param ... void * & size_t pairs for context chunks
  * @param ... void * & size_t pairs for context chunks
- * @return GNUNET_YES on success
+ * @return #GNUNET_YES on success
  */
 int
  */
 int
-GNUNET_CRYPTO_kdf (void *result, const unsigned long long out_len,
-    const void *xts, const size_t xts_len, const void *skm,
-    const size_t skm_len, ...)
+GNUNET_CRYPTO_kdf (void *result, size_t out_len, const void *xts,
+                   size_t xts_len, const void *skm, size_t skm_len, ...)
 {
   va_list argp;
   int ret;
 
 {
   va_list argp;
   int ret;
 
-  va_start(argp, skm_len);
+  va_start (argp, skm_len);
   ret = GNUNET_CRYPTO_kdf_v (result, out_len, xts, xts_len, skm, skm_len, argp);
   ret = GNUNET_CRYPTO_kdf_v (result, out_len, xts, xts_len, skm, skm_len, argp);
-  va_end(argp);
+  va_end (argp);
 
   return ret;
 }
 
   return ret;
 }