gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] branch master updated (7c97842 -> 13c45fc)


From: gnunet
Subject: [taler-anastasis] branch master updated (7c97842 -> 13c45fc)
Date: Wed, 17 Jun 2020 12:47:29 +0200

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

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

    from 7c97842  worked on cli assembler 'answer'
     new 7efae46  worked on assembler cli command 'answer'
     new 13c45fc  worked on assembler cli command 'answer'

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/cli/anastasis-cli-assembler.c | 124 +++++++++++++++++++++-----------------
 src/cli/anastasis-cli-splitter.c  |  17 +++---
 src/include/anastasis.h           |   1 -
 src/lib/anastasis.c               |  55 ++++++++++++++---
 src/lib/test_anastasis_api.conf   |   4 +-
 src/util/anastasis_crypto.c       |  10 +++
 6 files changed, 137 insertions(+), 74 deletions(-)

diff --git a/src/cli/anastasis-cli-assembler.c 
b/src/cli/anastasis-cli-assembler.c
index eff360a..794c5fb 100644
--- a/src/cli/anastasis-cli-assembler.c
+++ b/src/cli/anastasis-cli-assembler.c
@@ -175,10 +175,60 @@ struct RecoverSecretState
    * The /salt GET operation handle.
    */
   struct ANASTASIS_SaltOperation *so;
+};
 
+/**
+ * State for a "challenge answer" CMD.
+ */
+struct ChallengeState
+{
+  /**
+   * Reference to the challenge we are solving
+   */
+  struct ANASTASIS_Challenge *c;
+
+  /**
+   * Expected status code.
+   */
+  unsigned int http_status;
+
+  /**
+   * Answer to the challenge we are solving
+   */
+  const void *answer;
+
+  /**
+   * Size of the answer we are solving
+   */
+  size_t answer_size;
+
+  /**
+   * Referenece to the recovery process
+   */
+  const char *challenge_ref;
+
+  /**
+   * Index of the challenge we are solving
+   */
+  unsigned int challenge_index;
 };
 
 
+static void
+challenge_answer_cb (void *af_cls,
+                     enum TALER_ErrorCode ec)
+{
+  struct ChallengeState *cs = af_cls;
+  if (ec != MHD_HTTP_OK)
+  {
+    printf ("Failed truth#%u\n", cs->challenge_index);
+    return;
+  }
+  printf ("Success truth#%u\n", cs->challenge_index);
+  challenges[cs->challenge_index].solved = 1;
+}
+
+
 /**
  * @brief Read the character from stdin and activate the selected task
  *
@@ -319,6 +369,7 @@ read_keyboard_command (void *cls)
                     buffer,
                     strlen ("answer")))
   {
+    struct ChallengeState *cs = GNUNET_new (struct ChallengeState);
     char *token_start = &buffer[strlen ("answer ")];
     char *token = strtok (token_start, " ");
 
@@ -334,6 +385,10 @@ read_keyboard_command (void *cls)
     }
     truth_index = (int) token[strlen ("truth#")] - 48;
 
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "At %s:%d truth index is %u\n", __FILE__, __LINE__,
+                truth_index);
+
     if (0 == strcmp (challenges[truth_index].method, "question"))
       token = strtok (NULL, "\"");
 
@@ -344,19 +399,19 @@ read_keyboard_command (void *cls)
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "At %s:%d challenge answer is %s\n", __FILE__, __LINE__,
                 challenge_answer);
-    struct GNUNET_HashCode hash_answer;
-    GNUNET_CRYPTO_hash (challenge_answer,
-                        strlen (challenge_answer),
-                        &hash_answer);
 
-    /**
+    cs->http_status = MHD_HTTP_OK;
+    cs->answer = challenge_answer;
+    cs->answer_size = strlen (challenge_answer);
+    cs->challenge_index = truth_index;
+
     ANASTASIS_challenge_answer (ctx,
                                 challenges[truth_index].challenge,
-                                &hash_answer,
-                                sizeof (struct GNUNET_HashCode),
-                                challenge_answer_cb,
+                                cs->answer,
+                                cs->answer_size,
+                                &challenge_answer_cb,
                                 cs);
-    */
+
     start_read_keyboard ();
     GNUNET_free (buffer);
     buffer = NULL;
@@ -496,63 +551,22 @@ policy_lookup_cb (void *cls,
   return;
 }
 
+
 static void
 core_secret_cb (void *cls,
                 const void *secret,
                 size_t secret_size)
 {
-  // FIXME
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "At %s:%d arrived at core secret cb \n", __FILE__, __LINE__);
   struct RecoverSecretState *rss = cls;
+  printf ("Secret was: \"%s\" Size: %lu b\n",
+          (char *) secret,
+          secret_size);
+
   return;
 }
 
-/**
- * State for a "challenge answer" CMD.
- */
-struct ChallengeState
-{
-  /**
-   * The interpreter state.
-   */
-  struct TALER_TESTING_Interpreter *is;
-  /**
-   * Reference to the challenge we are solving
-   */
-  struct ANASTASIS_Challenge *c;
-  /**
-   * Expected status code.
-   */
-  unsigned int http_status;
-  /**
-   * Answer to the challenge we are solving
-   */
-  const void *answer;
-  /**
-   * Size of the answer we are solving
-   */
-  size_t answer_size;
-  /**
-   * Referenece to the recovery process
-   */
-  const char *challenge_ref;
-  /**
-   * Index of the challenge we are solving
-   */
-  unsigned int challenge_index;
-};
-
-static void
-challenge_answer_cb (void *af_cls,
-                     enum TALER_ErrorCode ec)
-{
-  struct ChallengeState *cs = af_cls;
-  if (ec != MHD_HTTP_OK)
-  {
-    GNUNET_break (0);
-  }
-}
 
 /**
  * Function called with the results of a #ANASTASIS_salt().
diff --git a/src/cli/anastasis-cli-splitter.c b/src/cli/anastasis-cli-splitter.c
index ab8c7fe..0fa7b7e 100644
--- a/src/cli/anastasis-cli-splitter.c
+++ b/src/cli/anastasis-cli-splitter.c
@@ -488,7 +488,7 @@ secret_share_result_cb (void *cls,
       return;
     }
   }
-  printf ("Thank you for using Anastasis");
+  printf ("Thank you for using Anastasis\n");
   keyboard_task = NULL;
   start_read_keyboard ();
   return;
@@ -871,12 +871,8 @@ read_keyboard_command (void *cls)
                         tus->secret_answer);
             tus->instructions = tus->secret_question;
             tus->mime_type = "text/plain";
-            struct GNUNET_HashCode truth_data;
-            GNUNET_CRYPTO_hash (tus->secret_answer,
-                                strlen (tus->secret_answer),
-                                &truth_data);
-            tus->truth_data = &truth_data;
-            tus->truth_data_size = sizeof (truth_data);
+            tus->truth_data = tus->secret_answer;
+            tus->truth_data_size = strlen (tus->secret_answer);
           }
           if (0 == strcmp ("sms", tus->method))
           {
@@ -1093,11 +1089,16 @@ read_keyboard_command (void *cls)
         char *token = strtok (token_start, "\"");
         sss->core_secret = GNUNET_malloc (strlen (token) + 1);
         sss->core_secret_size = strlen (token) + 1;
-        GNUNET_strlcpy (sss->core_secret,
+        GNUNET_strlcpy ((char *) sss->core_secret,
                         token,
                         sss->core_secret_size);
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                    "At %s:%d core secret is %s\n", __FILE__, __LINE__,
+                    (char *) sss->core_secret);
         sss->http_status = MHD_HTTP_NO_CONTENT;
       }
+
+      // FIXME: avoid uploading recovery document like this
       if (characters == strlen ("publish"))
       {
         sss->core_secret = "test_payment";
diff --git a/src/include/anastasis.h b/src/include/anastasis.h
index f57fde7..164f95f 100644
--- a/src/include/anastasis.h
+++ b/src/include/anastasis.h
@@ -87,7 +87,6 @@ struct ANASTASIS_RecoveryInformation
   struct ANASTASIS_CRYPTO_SaltP salt;
 
   unsigned int version;     // actual version obtained
-
 };
 
 /**
diff --git a/src/lib/anastasis.c b/src/lib/anastasis.c
index ade28ba..6f8c637 100644
--- a/src/lib/anastasis.c
+++ b/src/lib/anastasis.c
@@ -384,7 +384,7 @@ keyshare_lookup_cb (void *cls,
         {
           key_shares[l] = *c->recovery->solved_challenges[m].key_share;
           GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                      "At %s:%d keyshare added %s-%llu at position %x b\n",
+                      "At %s:%d keyshare added %s-%llu b at position %x\n",
                       __FILE__, __LINE__,
                       TALER_B2S (&key_shares[l]),
                       (unsigned long long) sizeof (c->key_share),
@@ -403,12 +403,27 @@ keyshare_lookup_cb (void *cls,
                 TALER_B2S (&policy_key),
                 (unsigned long long) sizeof (policy_key));
 
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "At %s:%d encrypted core secret is %s-%llu b\n", __FILE__,
+                __LINE__,
+                TALER_b2s (c->recovery->enc_core_secret,
+                           c->recovery->enc_core_secret_size),
+                (unsigned long long) c->recovery->enc_core_secret_size);
+
     ANASTASIS_CRYPTO_core_secret_recover (&c->recovery->ri->dps[success].emk,
                                           policy_key,
                                           c->recovery->enc_core_secret,
                                           c->recovery->enc_core_secret_size,
                                           &core_secret,
                                           &core_secret_size);
+
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "At %s:%d decrypted core secret is %s-%llu b\n", __FILE__,
+                __LINE__,
+                TALER_b2s (core_secret,
+                           core_secret_size),
+                (unsigned long long) core_secret_size);
+
     c->recovery->csc (c->recovery->csc_cls,
                       core_secret,
                       core_secret_size);
@@ -437,7 +452,9 @@ ANASTASIS_challenge_answer (struct GNUNET_CURL_Context *ctx,
   c->af = af;
   c->ctx = ctx;
   c->af_cls = af_cls;
-
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "At %s:%d challenge answer is %s\n", __FILE__, __LINE__,
+              (char *) answer);
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "At %s:%d challenge %s-%llu is solved with url %s \n", __FILE__,
@@ -579,15 +596,15 @@ policy_lookup_cb (void *cls,
               "Recovery_document after json_loadb  %s\n",
               json_dumps (recovery_document, JSON_COMPACT));
 
-
+  const char *enc_core_secret;
   GNUNET_assert (0 ==
                  json_unpack ((json_t *) recovery_document,
                               "{s:o,"   /* policies */
                               " s:o,"   /* decryption policies */
-                              " s:o}",   /* encrypted core secret */
+                              " s:s}",   /* encrypted core secret */
                               "policies", &dec_policies,
                               "escrow_methods", &esc_methods,
-                              "core_secret", &r->enc_core_secret));
+                              "core_secret", &enc_core_secret));
 
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -601,6 +618,18 @@ policy_lookup_cb (void *cls,
   r->ri->dps_len = json_array_size (dec_policies);
   r->ri->dps = GNUNET_new_array (r->ri->dps_len, struct
                                  ANASTASIS_DecryptionPolicy);
+  r->enc_core_secret_size = strlen (enc_core_secret);
+  GNUNET_STRINGS_string_to_data (enc_core_secret,
+                                 strlen (enc_core_secret),
+                                 r->enc_core_secret,
+                                 strlen (enc_core_secret));
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "At %s:%d encrypted core secret is %s-%llu b\n", __FILE__,
+              __LINE__,
+              TALER_b2s (r->enc_core_secret,
+                         r->enc_core_secret_size),
+              (unsigned long long) r->enc_core_secret_size);
+
   r->solved_challenges = GNUNET_new_array (r->ri->cs_len,
                                            struct ANASTASIS_Challenge);
 
@@ -675,7 +704,7 @@ policy_lookup_cb (void *cls,
                                 " s:s,"         /* policy uuids  */
                                 " s:s,"         /* policy salt */
                                 " s:i}",        /* policy uuids length */
-                                "master_key",&enc_master_key,
+                                "master_key", &enc_master_key,
                                 "uuids",&uuids,
                                 "salt", &salt,
                                 "uuids_length", &r->ri->dps[j].uuids_length));
@@ -1668,8 +1697,6 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx,
   unsigned int pss_length = ANASTASIS_get_num_urls (policies,
                                                     policies_len);
   struct PolicyStoreState *pss[pss_length];
-  // struct GNUNET_HashCode current_etags[pss_length];
-  // enum TALER_ErrorCode ecs[pss_length];
   struct ANASTASIS_CRYPTO_EncryptedMasterKeyP
     encrypted_master_keys[policies_len];
   struct ANASTASIS_CRYPTO_PolicyKeyP policy_keys[policies_len];
@@ -1716,12 +1743,24 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx,
     policy_keys[i] = policies[i]->policy_key;
   }
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "At %s:%d core secret is %s-%llu b\n", __FILE__, __LINE__,
+              TALER_b2s (core_secret,
+                         core_secret_size),
+              (unsigned long long) core_secret_size);
+
   ANASTASIS_CRYPTO_core_secret_encrypt (policy_keys,
                                         policies_len,
                                         core_secret,
                                         core_secret_size,
                                         &encrypted_core_secret,
                                         encrypted_master_keys);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "At %s:%d encrypted core secret is %s-%llu b\n", __FILE__,
+              __LINE__,
+              TALER_b2s (encrypted_core_secret,
+                         core_secret_size),
+              (unsigned long long) core_secret_size);
 
   dec_policies = json_array ();
   esc_methods = json_array ();
diff --git a/src/lib/test_anastasis_api.conf b/src/lib/test_anastasis_api.conf
index 560b005..32935e7 100644
--- a/src/lib/test_anastasis_api.conf
+++ b/src/lib/test_anastasis_api.conf
@@ -37,8 +37,8 @@ DB = postgres
 PAYMENT_BACKEND_URL = http://localhost:8080/
 
 # Annual fee we charge.
-ANNUAL_FEE = EUR:4.99
-#ANNUAL_FEE = EUR:0
+#ANNUAL_FEE = EUR:4.99
+ANNUAL_FEE = EUR:0
 
 # Cost of authentication by question
 QUESTION_COST = EUR:0
diff --git a/src/util/anastasis_crypto.c b/src/util/anastasis_crypto.c
index 6a8ab14..7626987 100644
--- a/src/util/anastasis_crypto.c
+++ b/src/util/anastasis_crypto.c
@@ -716,11 +716,21 @@ ANASTASIS_CRYPTO_core_secret_recover (
   GNUNET_CRYPTO_hash_to_aes_key (&master_key,
                                  &core_sk,
                                  &core_iv);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "At %s:%d encrypted core secret is %s-%llu b\n", __FILE__,
+              __LINE__,
+              TALER_b2s (encrypted_core_secret, encrypted_core_secret_size),
+              (unsigned long long) encrypted_core_secret_size);
   *core_secret_size = GNUNET_CRYPTO_symmetric_decrypt (encrypted_core_secret,
                                                        
encrypted_core_secret_size,
                                                        &core_sk,
                                                        &core_iv,
                                                        *core_secret);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "At %s:%d decrypted core secret is %s-%llu b\n", __FILE__,
+              __LINE__,
+              TALER_b2s (*core_secret, *core_secret_size),
+              (unsigned long long) *core_secret_size);
   GNUNET_assert (GNUNET_SYSERR != *core_secret_size);
 }
 

-- 
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]