gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] 05/08: modified salt api


From: gnunet
Subject: [taler-anastasis] 05/08: modified salt api
Date: Sun, 26 Apr 2020 21:33:48 +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 6d328935d018a611699260b5da3d1a5e15566709
Author: Dennis Neufeld <address@hidden>
AuthorDate: Sat Apr 25 15:29:28 2020 +0000

    modified salt api
---
 src/backend/anastasis-httpd_salt.c | 20 +++++++++++++++++---
 src/include/anastasis_crypto_lib.h |  4 ++--
 src/lib/anastasis_api_salt.c       | 23 +++++++++++++----------
 src/util/anastasis_crypto.c        |  7 +++----
 src/util/test_anastasis_crypto.c   | 14 +++++++++++---
 5 files changed, 46 insertions(+), 22 deletions(-)

diff --git a/src/backend/anastasis-httpd_salt.c 
b/src/backend/anastasis-httpd_salt.c
index 7b27b7f..e2c43c2 100644
--- a/src/backend/anastasis-httpd_salt.c
+++ b/src/backend/anastasis-httpd_salt.c
@@ -38,12 +38,26 @@ AH_handler_salt (struct MHD_Connection *connection,
                  const char *url,
                  void **con_cls)
 {
+  struct ANASTASIS_CRYPTO_Salt salt;
+
+  if (GNUNET_OK ==
+      GNUNET_CRYPTO_hash_from_string2 (AH_server_salt,
+                                       strlen (AH_server_salt),
+                                       &salt.salt))
+  {
+    GNUNET_break (0);
+    return TALER_MHD_reply_with_error (connection,
+                                       MHD_HTTP_INTERNAL_SERVER_ERROR,
+                                       TALER_EC_SERVER_JSON_INVALID,
+                                       "server_salt");
+  }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Server Salt: %s\n",
-              (char *) AH_server_salt);
+              "At %s:%d Server Salt is %s-%llu b\n", __FILE__, __LINE__,
+              TALER_B2S (&salt),
+              (unsigned long long) sizeof (salt));
   return TALER_MHD_reply_json_pack (connection,
                                     MHD_HTTP_OK,
                                     "{s:s}",
                                     "server_salt",
-                                    (char *) AH_server_salt);
+                                    GNUNET_JSON_from_data_auto (&salt));
 }
\ No newline at end of file
diff --git a/src/include/anastasis_crypto_lib.h 
b/src/include/anastasis_crypto_lib.h
index 28ada22..44018e4 100644
--- a/src/include/anastasis_crypto_lib.h
+++ b/src/include/anastasis_crypto_lib.h
@@ -53,11 +53,11 @@ struct ANASTASIS_CRYPTO_TruthKey
 
 
 /**
- * Specifies a Salt value, should be 32 Byte large.
+ * Specifies a Salt value as a hash.
 */
 struct ANASTASIS_CRYPTO_Salt
 {
-  const char *salt;
+  struct GNUNET_HashCode salt;
 };
 
 
diff --git a/src/lib/anastasis_api_salt.c b/src/lib/anastasis_api_salt.c
index f21ee59..eac5e9e 100644
--- a/src/lib/anastasis_api_salt.c
+++ b/src/lib/anastasis_api_salt.c
@@ -56,21 +56,24 @@ handle_salt_finished (void *cls,
   case MHD_HTTP_OK:
     {
       struct GNUNET_JSON_Specification spec[] = {
-        GNUNET_JSON_spec_string ("server_salt", &so->salt.salt),
+        GNUNET_JSON_spec_fixed_auto ("server_salt", &so->salt),
         GNUNET_JSON_spec_end ()
       };
 
-      GNUNET_assert (GNUNET_OK ==
-                     GNUNET_JSON_parse (json,
-                                        spec,
-                                        NULL, NULL));
+      if (GNUNET_OK !=
+          GNUNET_JSON_parse (json,
+                             spec,
+                             NULL, NULL))
+      {
+        GNUNET_break (0);
+        return;
+      }
 
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                  "Salt json from download: %s\n\n",
-                  json_dumps (json, JSON_COMPACT));
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                  "Salt from download: %s\n\n",
-                  so->salt.salt);
+                  "At %s:%d Server Salt from Download is %s-%llu b\n", 
__FILE__,
+                  __LINE__,
+                  TALER_B2S (&so->salt),
+                  (unsigned long long) sizeof (so->salt));
       so->cb (so->cb_cls,
               response_code,
               &so->salt);
diff --git a/src/util/anastasis_crypto.c b/src/util/anastasis_crypto.c
index 841704e..338dd4f 100644
--- a/src/util/anastasis_crypto.c
+++ b/src/util/anastasis_crypto.c
@@ -329,11 +329,10 @@ ANASTASIS_CRYPTO_user_identifier_derive (
                        strlen (json_enc),
                        GCRY_KDF_SCRYPT,
                        1, // subalgo
-                       server_salt->salt,
-                       strlen (server_salt->salt),
+                       server_salt,
+                       sizeof (*server_salt),
                        SCRYPT_ITERATION, // iterations
-                       sizeof (struct
-                               ANASTASIS_CRYPTO_UserIdentifier),
+                       sizeof (struct ANASTASIS_CRYPTO_UserIdentifier),
                        id))
   {
     GNUNET_break (0);
diff --git a/src/util/test_anastasis_crypto.c b/src/util/test_anastasis_crypto.c
index dc6eeff..ab81c3f 100644
--- a/src/util/test_anastasis_crypto.c
+++ b/src/util/test_anastasis_crypto.c
@@ -43,7 +43,9 @@ test_user_identifier_derive (void)
   struct ANASTASIS_CRYPTO_UserIdentifier id_3;
   struct ANASTASIS_CRYPTO_Salt salt;
 
-  salt.salt = "Server Salt";
+  GNUNET_CRYPTO_hash_from_string2 ("Server Salt",
+                                   strlen ("Server Salt"),
+                                   &salt.salt);
 
   // sample data 1
   id_data_1 = json_object ();
@@ -99,7 +101,10 @@ test_recovery_document (void)
 
   json_t *id_data = json_object ();
   const char *test = "TEST_ERD";
-  salt.salt = "Server Salt";
+
+  GNUNET_CRYPTO_hash_from_string2 ("Server Salt",
+                                   strlen ("Server Salt"),
+                                   &salt.salt);
 
   json_object_set_new (id_data, "arg1", json_string ("ID_DATA"));
   ANASTASIS_CRYPTO_user_identifier_derive (id_data,
@@ -309,7 +314,10 @@ test_public_key_derive ()
   struct ANASTASIS_CRYPTO_Salt server_salt;
 
   json_t *id_data = json_object ();
-  server_salt.salt = "Server Salt";
+
+  GNUNET_CRYPTO_hash_from_string2 ("Server Salt",
+                                   strlen ("Server Salt"),
+                                   &server_salt.salt);
 
   json_object_set_new (id_data, "arg1", json_string ("ID_DATA"));
   ANASTASIS_CRYPTO_user_identifier_derive (id_data,

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



reply via email to

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