[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis] 02/03: worked on core secret encryption test
From: |
gnunet |
Subject: |
[taler-anastasis] 02/03: worked on core secret encryption test |
Date: |
Wed, 01 Apr 2020 23:36:59 +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 487c68a6a681e82a0ea29cf9fc93d5696b8b2153
Author: Dennis Neufeld <address@hidden>
AuthorDate: Wed Apr 1 19:39:39 2020 +0000
worked on core secret encryption test
---
src/include/anastasis_crypto_lib.h | 4 +--
src/util/anastasis_crypto.c | 9 ++----
src/util/test_anastasis_crypto.c | 58 ++++++++++++++++++++++++++++++++++++++
3 files changed, 62 insertions(+), 9 deletions(-)
diff --git a/src/include/anastasis_crypto_lib.h
b/src/include/anastasis_crypto_lib.h
index 2be02a7..77bb1d0 100644
--- a/src/include/anastasis_crypto_lib.h
+++ b/src/include/anastasis_crypto_lib.h
@@ -326,8 +326,7 @@ ANASTASIS_CRYPTO_policy_key_derive (
* @param policy_keys_length defines the amount of policy keys and also the
amount of encrypted master keys
* @param core_secret the user provided core secret which is secured by
anastasis
* @param core_secret_size the size of the core secret
- * @param enc_core_secret the core secret is encrypted with the generated
master key
- * @param enc_core_secret_size[out] size of the encrypted secret
+ * @param enc_core_secret[out] the core secret is encrypted with the generated
master key
* @param encrypted_master_keys[out] array of encrypted master keys which will
be safed inside the policies one encrypted
* master key is created for each policy key
*/
@@ -338,7 +337,6 @@ ANASTASIS_CRYPTO_core_secret_encrypt (
const void *core_secret,
size_t core_secret_size,
void **enc_core_secret,
- size_t *enc_core_secret_size,
struct ANASTASIS_CRYPTO_EncryptedMasterKey *encrypted_master_keys);
diff --git a/src/util/anastasis_crypto.c b/src/util/anastasis_crypto.c
index ab765ee..b42ba7e 100644
--- a/src/util/anastasis_crypto.c
+++ b/src/util/anastasis_crypto.c
@@ -546,8 +546,7 @@ ANASTASIS_CRYPTO_policy_key_derive (
* @param policy_keys_length defines the amount of policy keys and also the
amount of encrypted master keys
* @param core_secret the user provided core secret which is secured by
anastasis
* @param core_secret_size the size of the core secret
- * @param enc_core_secret the core secret is encrypted with the generated
master key
- * @param enc_core_secret_size[out] size of the encrypted secret
+ * @param enc_core_secret[out] the core secret is encrypted with the generated
master key
* @param encrypted_master_keys[out] array of encrypted master keys which will
be safed inside the policies one encrypted
* master key is created for each policy key
*/
@@ -558,14 +557,13 @@ ANASTASIS_CRYPTO_core_secret_encrypt (
const void *core_secret,
size_t core_secret_size,
void **enc_core_secret,
- 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;
- *enc_core_secret = GNUNET_malloc (*enc_core_secret_size);
+ *enc_core_secret = GNUNET_malloc (core_secret_size);
GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_STRONG,
&master_key,
sizeof (struct GNUNET_HashCode));
@@ -581,14 +579,13 @@ ANASTASIS_CRYPTO_core_secret_encrypt (
struct GNUNET_CRYPTO_SymmetricSessionKey i_sk;
struct GNUNET_CRYPTO_SymmetricInitializationVector i_iv;
- GNUNET_CRYPTO_hash_to_aes_key (&policy_keys[i].key, &i_sk, &i_iv);
GNUNET_assert (GNUNET_SYSERR !=
GNUNET_CRYPTO_symmetric_encrypt (&master_key,
sizeof (struct
GNUNET_HashCode),
&i_sk,
&i_iv,
-
&encrypted_master_keys[0]));
+
&encrypted_master_keys[i]));
}
}
diff --git a/src/util/test_anastasis_crypto.c b/src/util/test_anastasis_crypto.c
index d99ac93..0a5da10 100644
--- a/src/util/test_anastasis_crypto.c
+++ b/src/util/test_anastasis_crypto.c
@@ -185,11 +185,66 @@ test_truth (void)
}
+static int
+test_core_secret (void)
+{
+ void *enc_core_secret;
+ size_t enc_core_secret_size;
+ unsigned int policy_keys_length = 5;
+ struct ANASTASIS_CRYPTO_Salt salt;
+ struct ANASTASIS_CRYPTO_EncryptedMasterKey
+ encrypted_master_keys[policy_keys_length];
+
+ GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_WEAK,
+ &salt,
+ sizeof (struct ANASTASIS_CRYPTO_Salt));
+
+ // construction of PolicyKey-array
+ struct ANASTASIS_CRYPTO_PolicyKey policy_keys[policy_keys_length];
+ for (unsigned int i = 0; i < policy_keys_length; i++)
+ {
+ // construction of KeyShare-array
+ unsigned int keyshare_length = 5;
+ struct ANASTASIS_CRYPTO_KeyShare keyshares[keyshare_length];
+ for (unsigned int j = 0; j < keyshare_length; j++)
+ {
+ ANASTASIS_CRYPTO_key_share_create (&keyshares[j]);
+ if (j > 0)
+ GNUNET_assert (0 !=
+ GNUNET_memcmp (&keyshares[j - 1], &keyshares[j]));
+ }
+
+ // derive policy-keys
+ ANASTASIS_CRYPTO_policy_key_derive ((struct
+ ANASTASIS_CRYPTO_KeyShare *)
+ &keyshares,
+ keyshare_length,
+ &salt,
+ &policy_keys[i]);
+ if (i > 0)
+ GNUNET_assert (0 !=
+ GNUNET_memcmp (&policy_keys[i - 1], &policy_keys[i]));
+ }
+
+ // test encryption of core_secret
+ ANASTASIS_CRYPTO_core_secret_encrypt ((struct
+ ANASTASIS_CRYPTO_PolicyKey *)
+ &policy_keys,
+ policy_keys_length,
+ "TEST_CORE_SECRET",
+ strlen ("TEST_CORE_SECRET"),
+ &enc_core_secret,
+ &encrypted_master_keys);
+ return 1;
+}
+
+
int
main (int argc,
const char *const argv[])
{
GNUNET_log_setup (argv[0], "DEBUG", NULL);
+ /*
if (0 != test_recovery_document ())
return 1;
if (0 != test_user_identifier_derive ())
@@ -198,6 +253,9 @@ main (int argc,
return 1;
if (0 != test_truth ())
return 1;
+ */
+ if (0 != test_core_secret ())
+ return 1;
return 0;
--
To stop receiving notification emails like this one, please contact
address@hidden.