gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] branch master updated: worked on core secret encryptio


From: gnunet
Subject: [taler-anastasis] branch master updated: worked on core secret encryption
Date: Mon, 30 Mar 2020 09:22:20 +0200

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

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

The following commit(s) were added to refs/heads/master by this push:
     new 004cde0  worked on core secret encryption
004cde0 is described below

commit 004cde04294df9771ec8302242cc8a56bdcbdec4
Author: Dennis Neufeld <address@hidden>
AuthorDate: Mon Mar 30 07:22:15 2020 +0000

    worked on core secret encryption
---
 src/util/anastasis_crypto.c | 38 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 36 insertions(+), 2 deletions(-)

diff --git a/src/util/anastasis_crypto.c b/src/util/anastasis_crypto.c
index cf786a8..da7ba7e 100644
--- a/src/util/anastasis_crypto.c
+++ b/src/util/anastasis_crypto.c
@@ -470,7 +470,7 @@ ANASTASIS_CRYPTO_policy_key_derive (
     GNUNET_CRYPTO_hash (&key_shares[i],
                         sizeof (struct ANASTASIS_CRYPTO_KeyShare),
                         &ks);
-    if (i = 0)
+    if (i == 0)
       b = ks;
     else
     {
@@ -479,6 +479,7 @@ ANASTASIS_CRYPTO_policy_key_derive (
                               &p);
     }
   }
+  // FIXME: SCRYPT or simple hash?
   GNUNET_assert (0 ==
                  gcry_kdf_derive (&p,
                                   sizeof (struct GNUNET_HashCode),
@@ -517,7 +518,40 @@ ANASTASIS_CRYPTO_core_secret_encrypt (
   size_t *enc_core_secret_size,
   struct ANASTASIS_CRYPTO_EncryptedMasterKey *encrypted_master_keys)
 {
-
+  struct GNUNET_CRYPTO_SymmetricSessionKey sk;
+  struct GNUNET_CRYPTO_SymmetricInitializationVector iv;
+  struct GNUNET_HashCode master_key;
+  GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_STRONG,
+                              &master_key,
+                              sizeof (struct GNUNET_HashCode));
+  GNUNET_CRYPTO_hash_to_aes_key (&master_key, &sk, &iv);
+  if (-1 == GNUNET_CRYPTO_symmetric_encrypt (core_secret,
+                                             core_secret_size,
+                                             &sk,
+                                             &iv,
+                                             *enc_core_secret))
+    ;
+
+  for (unsigned int i = 0; i < policy_keys_length; i++)
+  {
+    struct GNUNET_CRYPTO_SymmetricSessionKey i_sk;
+    struct GNUNET_CRYPTO_SymmetricInitializationVector i_iv;
+    struct GNUNET_HashCode hashed_policy_key;
+
+    GNUNET_CRYPTO_hash (&policy_keys[i],
+                        sizeof (struct ANASTASIS_CRYPTO_PolicyKey),
+                        &hashed_policy_key);
+    GNUNET_CRYPTO_hash_to_aes_key (&hashed_policy_key, &i_sk, &i_iv);
+    if (-1 == GNUNET_CRYPTO_symmetric_encrypt (&master_key,
+                                               sizeof (struct GNUNET_HashCode),
+                                               &i_sk,
+                                               &i_iv,
+                                               &encrypted_master_keys[0]))
+      ;
+    {
+      GNUNET_break (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]