gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] branch master updated: make KDF conform to RFC 5869


From: gnunet
Subject: [gnunet] branch master updated: make KDF conform to RFC 5869
Date: Tue, 19 Oct 2021 13:56:02 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new 2e2abc61d make KDF conform to RFC 5869
2e2abc61d is described below

commit 2e2abc61db54f3a25fcb261e2d93277673770d70
Author: Florian Dold <florian@dold.me>
AuthorDate: Tue Oct 19 13:55:28 2021 +0200

    make KDF conform to RFC 5869
---
 src/util/crypto_hkdf.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/util/crypto_hkdf.c b/src/util/crypto_hkdf.c
index 7270b87b6..ba3626e1a 100644
--- a/src/util/crypto_hkdf.c
+++ b/src/util/crypto_hkdf.c
@@ -103,11 +103,29 @@ getPRK (gcry_md_hd_t mac, const void *xts, size_t 
xts_len, const void *skm,
         size_t skm_len, void *prk)
 {
   const void *ret;
+  size_t dlen;
 
-  ret = doHMAC (mac, xts, xts_len, skm, skm_len);
+  dlen = gcry_md_get_algo_dlen (gcry_md_get_algo (mac));
+
+  /* sanity check to bound stack allocation */
+  GNUNET_assert (dlen <= 512);
+
+  /* From RFC 5869:
+   * salt - optional salt value (a non-secret random value);
+   * if not provided, it is set to a string of HashLen zeros. */
+
+  if (xts_len == 0)
+  {
+    char zero_salt[dlen] = { 0 };
+    ret = doHMAC (mac, zero_salt, dlen, skm, skm_len);
+  }
+  else
+  {
+    ret = doHMAC (mac, xts, xts_len, skm, skm_len);
+  }
   if (ret == NULL)
     return GNUNET_SYSERR;
-  GNUNET_memcpy (prk, ret, gcry_md_get_algo_dlen (gcry_md_get_algo (mac)));
+  GNUNET_memcpy (prk, ret, dlen);
 
   return GNUNET_YES;
 }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]