gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] 05/09: modified policy key derivation


From: gnunet
Subject: [taler-anastasis] 05/09: modified policy key derivation
Date: Wed, 01 Apr 2020 10:12:28 +0200

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

dennis-neufeld pushed a commit to branch master
in repository anastasis.

commit dd12182baf6abc6efd48765c58528c4af8e45505
Author: Dennis Neufeld <address@hidden>
AuthorDate: Wed Apr 1 07:34:44 2020 +0000

    modified policy key derivation
---
 src/include/anastasis_crypto_lib.h |  2 ++
 src/util/anastasis_crypto.c        | 39 +++++++++++---------------------------
 2 files changed, 13 insertions(+), 28 deletions(-)

diff --git a/src/include/anastasis_crypto_lib.h 
b/src/include/anastasis_crypto_lib.h
index fb4b5b0..8175155 100644
--- a/src/include/anastasis_crypto_lib.h
+++ b/src/include/anastasis_crypto_lib.h
@@ -272,12 +272,14 @@ ANASTASIS_CRYPTO_key_share_create (
  *
  * @param key_shares list of key shares which are combined
  * @param keyshare_length amount of key shares inside the array
+ * @param salt salt value
  * @param policy_key reference to the created key
  */
 void
 ANASTASIS_CRYPTO_policy_key_derive (
   const struct ANASTASIS_CRYPTO_KeyShare *key_shares,
   unsigned int keyshare_length,
+  const struct ANASTASIS_CRYPTO_Salt *salt,
   struct ANASTASIS_CRYPTO_PolicyKey *policy_key);
 
 
diff --git a/src/util/anastasis_crypto.c b/src/util/anastasis_crypto.c
index 779978c..d39af29 100644
--- a/src/util/anastasis_crypto.c
+++ b/src/util/anastasis_crypto.c
@@ -509,42 +509,25 @@ ANASTASIS_CRYPTO_key_share_create (
  *
  * @param key_shares list of key shares which are combined
  * @param keyshare_length amount of key shares inside the array
+ * @param salt salt value
  * @param policy_key reference to the created key
  */
 void
 ANASTASIS_CRYPTO_policy_key_derive (
   const struct ANASTASIS_CRYPTO_KeyShare *key_shares,
   unsigned int keyshare_length,
+  const struct ANASTASIS_CRYPTO_Salt *salt,
   struct ANASTASIS_CRYPTO_PolicyKey *policy_key)
 {
-  struct GNUNET_HashCode p;
-  struct GNUNET_HashCode b;
-  for (unsigned int i = 0; i < keyshare_length; i++)
-  {
-    struct GNUNET_HashCode ks;
-    GNUNET_CRYPTO_hash (&key_shares[i],
-                        sizeof (struct ANASTASIS_CRYPTO_KeyShare),
-                        &ks);
-    if (i == 0)
-      b = ks;
-    else
-    {
-      GNUNET_CRYPTO_hash_xor (&ks,
-                              &b,
-                              &p);
-    }
-  }
-  // FIXME: SCRYPT or simple hash?
-  GNUNET_assert (0 ==
-                 gcry_kdf_derive (&p,
-                                  sizeof (struct GNUNET_HashCode),
-                                  GCRY_KDF_SCRYPT,
-                                  1, // subalgo
-                                  "policykey",
-                                  strlen ("policykey"),
-                                  1000, // iterations
-                                  sizeof (struct ANASTASIS_CRYPTO_PolicyKey),
-                                  policy_key));
+  GNUNET_CRYPTO_hkdf (policy_key,
+                      sizeof (*policy_key),
+                      GCRY_MD_SHA512,
+                      GCRY_MD_SHA256,
+                      key_shares,
+                      keyshare_length * sizeof (*key_shares),
+                      salt,
+                      sizeof (*salt),
+                      NULL, 0);
 }
 
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

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