gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [taler-anastasis] branch master updated (13c45fc -> 0981886)
Date: Wed, 17 Jun 2020 19:34:51 +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 13c45fc  worked on assembler cli command 'answer'
     new 99235ad  fixed core secret assembling - cli
     new fc65358  fix recovery document upload without previoushash problem
     new 0981886  challenge array fix

The 3 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/backend/anastasis-httpd_policy_upload.c |  5 ++++-
 src/cli/anastasis-cli-assembler.c           | 33 ++++++++++++++++++-----------
 src/lib/anastasis.c                         | 16 ++++++++------
 src/lib/anastasis_api_keyshare_lookup.c     |  2 +-
 4 files changed, 36 insertions(+), 20 deletions(-)

diff --git a/src/backend/anastasis-httpd_policy_upload.c 
b/src/backend/anastasis-httpd_policy_upload.c
index f721498..5c29894 100644
--- a/src/backend/anastasis-httpd_policy_upload.c
+++ b/src/backend/anastasis-httpd_policy_upload.c
@@ -884,16 +884,19 @@ AH_handler_policy_post (struct MHD_Connection *connection,
         MHD_destroy_response (resp);
         return ret;
       }
+      /**
+       * FIXME: useful?
       if (0 != GNUNET_memcmp (&hc,
                               &puc->old_policy_upload_hash))
       {
-        /* Refuse upload: if-none-match failed! */
+        // Refuse upload: if-none-match failed!
         GNUNET_log (GNUNET_ERROR_TYPE_INFO,
                     "Conflict detected, returning existing recovery 
document\n");
         return AH_return_policy (connection,
                                  &accountPubP,
                                  MHD_HTTP_CONFLICT);
       }
+      */
     }
     /* check if the client insists on paying */
     {
diff --git a/src/cli/anastasis-cli-assembler.c 
b/src/cli/anastasis-cli-assembler.c
index 794c5fb..1fcf69e 100644
--- a/src/cli/anastasis-cli-assembler.c
+++ b/src/cli/anastasis-cli-assembler.c
@@ -35,11 +35,6 @@
  */
 static char *import_id;
 
-/**
- * Currency
- */
-static char *currency;
-
 /**
  * Global option '--import' to import json containing recovery document.
  */
@@ -316,10 +311,15 @@ read_keyboard_command (void *cls)
                      strlen ("policies")))
       && (characters == strlen ("policies")))
   {
+    // FIXME: Currency, maybe from config file?
+    char *currency = challenges[0].currency;
+    GNUNET_assert (NULL != currency);
+
     for (unsigned int i = 0; i < policies_length; i++)
     {
       // Calculate costs
       struct TALER_Amount cost;
+
       GNUNET_assert (GNUNET_OK == TALER_amount_get_zero (currency,
                                                          &cost));
       for (unsigned int j = 0; j < policies[i].uuids_length; j++)
@@ -487,10 +487,7 @@ config_cb (void *cls,
   }
 
   cs->cost = *question_cost;
-  if (NULL == currency)
-  {
-    currency = conf_currency;
-  }
+  cs->currency = conf_currency;
 }
 
 
@@ -521,9 +518,21 @@ challenge_cb (void *cls,
     return;
   }
   ci->cost = &cs->cost;
-  GNUNET_array_append (challenges,
-                       challenges_length,
-                       *ci);
+  ci->currency = cs->currency;
+
+  unsigned int contains = 0;
+  for (unsigned int i = 0; i < challenges_length; i++)
+  {
+    if (0 == uuid_compare (challenges[i].uuid, ci->uuid))
+    {
+      contains = 1;
+      break;
+    }
+  }
+  if (0 == contains)
+    GNUNET_array_append (challenges,
+                         challenges_length,
+                         *ci);
 }
 
 
diff --git a/src/lib/anastasis.c b/src/lib/anastasis.c
index 6f8c637..094505a 100644
--- a/src/lib/anastasis.c
+++ b/src/lib/anastasis.c
@@ -601,10 +601,12 @@ policy_lookup_cb (void *cls,
                  json_unpack ((json_t *) recovery_document,
                               "{s:o,"   /* policies */
                               " s:o,"   /* decryption policies */
-                              " s:s}",   /* encrypted core secret */
+                              " s:s,"   /* encrypted core secret */
+                              " s:I}",/* core secret size */
                               "policies", &dec_policies,
                               "escrow_methods", &esc_methods,
-                              "core_secret", &enc_core_secret));
+                              "core_secret", &enc_core_secret,
+                              "core_secret_size", &r->enc_core_secret_size));
 
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -618,11 +620,11 @@ 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);
+  r->enc_core_secret = GNUNET_malloc (r->enc_core_secret_size);
   GNUNET_STRINGS_string_to_data (enc_core_secret,
                                  strlen (enc_core_secret),
                                  r->enc_core_secret,
-                                 strlen (enc_core_secret));
+                                 r->enc_core_secret_size);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "At %s:%d encrypted core secret is %s-%llu b\n", __FILE__,
               __LINE__,
@@ -1924,11 +1926,13 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx,
   recovery_document = json_pack (
     "{s:o," /* policies */
     " s:o," /* decryption policies */
-    " s:o}", /* encrypted core secret */
+    " s:o," /* encrypted core secret */
+    " s:I}",/* core secret size */
     "policies", dec_policies,
     "escrow_methods", esc_methods,
     "core_secret", GNUNET_JSON_from_data (encrypted_core_secret,
-                                          core_secret_size));
+                                          core_secret_size),
+    "core_secret_size", (json_int_t) core_secret_size);
   GNUNET_assert (NULL != recovery_document);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "recovery document json before upload: %s\n",
diff --git a/src/lib/anastasis_api_keyshare_lookup.c 
b/src/lib/anastasis_api_keyshare_lookup.c
index 2dcaf4b..aac19e9 100644
--- a/src/lib/anastasis_api_keyshare_lookup.c
+++ b/src/lib/anastasis_api_keyshare_lookup.c
@@ -129,7 +129,7 @@ handle_keyshare_lookup_finished (void *cls,
       kdd.encrypted_key_share = data;
       kdd.encrypted_keyshare_size = data_size;
       kslo->cb (kslo->cb_cls,
-                response_code,
+                (unsigned int) response_code,
                 &kdd);
       kslo->cb = NULL;
       ANASTASIS_keyshare_lookup_cancel (kslo);

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