bugfixes
authorSchanzenbach, Martin <mschanzenbach@posteo.de>
Thu, 6 Feb 2020 17:38:02 +0000 (18:38 +0100)
committerSchanzenbach, Martin <mschanzenbach@posteo.de>
Thu, 6 Feb 2020 17:38:02 +0000 (18:38 +0100)
po/POTFILES.in
src/reclaim-attribute/reclaim_attestation.c
src/reclaim-attribute/reclaim_attribute.c
src/reclaim/gnunet-reclaim.c
src/reclaim/gnunet-service-reclaim.c
src/reclaim/plugin_rest_reclaim.c
src/reclaim/reclaim_api.c

index 441d0f91dcc03887a771432bc9d632bf234de535..f3376d01ba13c876d7fbf8c68592426bcb672c27 100644 (file)
@@ -264,7 +264,9 @@ src/pq/pq_prepare.c
 src/pq/pq_query_helper.c
 src/pq/pq_result_helper.c
 src/pt/gnunet-daemon-pt.c
-src/reclaim-attribute/plugin_reclaim_attribute_gnuid.c
+src/reclaim-attribute/plugin_reclaim_attestation_jwt.c
+src/reclaim-attribute/plugin_reclaim_attribute_basic.c
+src/reclaim-attribute/reclaim_attestation.c
 src/reclaim-attribute/reclaim_attribute.c
 src/reclaim/gnunet-reclaim.c
 src/reclaim/gnunet-service-reclaim.c
@@ -428,6 +430,7 @@ src/transport/transport_api_offer_hello.c
 src/util/bandwidth.c
 src/util/benchmark.c
 src/util/bio.c
+src/util/buffer.c
 src/util/client.c
 src/util/common_allocation.c
 src/util/common_endian.c
@@ -464,6 +467,7 @@ src/util/getopt.c
 src/util/getopt_helpers.c
 src/util/gnunet-config-diff.c
 src/util/gnunet-config.c
+src/util/gnunet-crypto-tvg.c
 src/util/gnunet-ecc.c
 src/util/gnunet-qr.c
 src/util/gnunet-resolver.c
index fd08b9b12213df870137ba80fe755f386aaae948..961c6ede48c6c7221c5d6d64e6e2b6b0ad668a69 100644 (file)
@@ -388,7 +388,7 @@ GNUNET_RECLAIM_attestation_list_destroy (
   struct GNUNET_RECLAIM_AttestationListEntry *ale;
   struct GNUNET_RECLAIM_AttestationListEntry *tmp_ale;
 
-  for (ale = al->list_head; NULL != ale; ale = ale->next)
+  for (ale = al->list_head; NULL != ale;)
   {
     if (NULL != ale->attestation)
       GNUNET_free (ale->attestation);
index 936f9cb75495e69c885b1937b4c268d1ac0dbd21..0e3fae849a5a616a484cb547f93209461cc13222 100644 (file)
@@ -423,7 +423,7 @@ GNUNET_RECLAIM_attribute_list_destroy (
   struct GNUNET_RECLAIM_AttributeListEntry *ale;
   struct GNUNET_RECLAIM_AttributeListEntry *tmp_ale;
 
-  for (ale = al->list_head; NULL != ale; ale = ale->next)
+  for (ale = al->list_head; NULL != ale;)
   {
     if (NULL != ale->attribute)
       GNUNET_free (ale->attribute);
index 0170ceff203e6b2095313d7ff7b03dd45e46814f..121f2b9639841d2c1fd0e10b9454342a2b03ef0f 100644 (file)
@@ -627,8 +627,10 @@ attest_iter_cb (void *cls,
                 const struct GNUNET_RECLAIM_AttributeList *attrs)
 {
   char *attest_str;
+  char *attr_str;
   char *id;
   const char *attest_type;
+  struct GNUNET_RECLAIM_AttributeListEntry *ale;
 
   if (GNUNET_YES == GNUNET_RECLAIM_id_is_equal (&attestation,
                                                 &attest->id))
@@ -647,6 +649,21 @@ attest_iter_cb (void *cls,
              attest_type,
              attest->flag,
              id);
+    if (NULL != attrs)
+    {
+      fprintf (stdout,
+               "\t Attributes:\n");
+      for (ale = attrs->list_head; NULL != ale; ale = ale->next)
+      {
+        attr_str = GNUNET_RECLAIM_attribute_value_to_string (ale->attribute->type,
+                                                             ale->attribute->data,
+                                                             ale->attribute->data_size);
+
+        fprintf (stdout,
+                 "\t %s: %s\n", ale->attribute->name, attr_str);
+        GNUNET_free (attr_str);
+      }
+    }
     GNUNET_free (id);
   }
   GNUNET_RECLAIM_get_attestations_next (attest_iterator);
index 99831172b55ff18b57c9eb726512777b2d7d4887..eb8727f8fc69d7a65ffb2db4bffbfd9566bee76b 100644 (file)
@@ -1859,6 +1859,7 @@ attest_iter_finished (void *cls)
   env = GNUNET_MQ_msg (arm, GNUNET_MESSAGE_TYPE_RECLAIM_ATTESTATION_RESULT);
   arm->id = htonl (ai->request_id);
   arm->attestation_len = htons (0);
+  arm->attributes_len = htons (0);
   GNUNET_MQ_send (ai->client->mq, env);
   GNUNET_CONTAINER_DLL_remove (ai->client->attest_iter_head,
                                ai->client->attest_iter_tail,
@@ -1900,10 +1901,11 @@ attest_iter_cb (void *cls,
 {
   struct Iterator *ai = cls;
   struct GNUNET_MQ_Envelope *env;
+  struct AttestationResultMessage *arm;
   struct GNUNET_RECLAIM_AttributeList *attrs;
   struct GNUNET_RECLAIM_Attestation *att;
   char *data_tmp;
-  char *attrs_size;
+  size_t attrs_size;
 
   if ((rd_count != 1) ||
       (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTESTATION != rd->record_type))
@@ -1915,8 +1917,6 @@ attest_iter_cb (void *cls,
                                                 rd->data_size);
   attrs = GNUNET_RECLAIM_attestation_get_attributes (att);
   attrs_size = GNUNET_RECLAIM_attribute_list_serialize_get_size (attrs);
-
-  struct AttestationResultMessage *arm;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found attestation under: %s\n",
               label);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -1926,6 +1926,7 @@ attest_iter_cb (void *cls,
                              GNUNET_MESSAGE_TYPE_RECLAIM_ATTESTATION_RESULT);
   arm->id = htonl (ai->request_id);
   arm->attestation_len = htons (rd->data_size);
+  arm->attributes_len = htons (attrs_size);
   GNUNET_CRYPTO_ecdsa_key_get_public (zone, &arm->identity);
   data_tmp = (char *) &arm[1];
   GNUNET_memcpy (data_tmp, rd->data, rd->data_size);
index cddee9b54531cab8d69f082b99b12ae149065aa9..cd163e8a45349ceb31a34aa67cc59bec9e58d127 100644 (file)
@@ -275,7 +275,8 @@ cleanup_handle (struct RequestHandle *handle)
     GNUNET_free (handle->url);
   if (NULL != handle->emsg)
     GNUNET_free (handle->emsg);
-  GNUNET_RECLAIM_attribute_list_destroy (handle->attr_list);
+  if (NULL != handle->attr_list)
+    GNUNET_RECLAIM_attribute_list_destroy (handle->attr_list);
   for (ego_entry = handle->ego_head; NULL != ego_entry;)
   {
     ego_tmp = ego_entry;
@@ -1029,6 +1030,7 @@ attr_collect (void *cls,
   json_array_append (handle->resp_object, attr_obj);
   json_decref (attr_obj);
   GNUNET_free (tmp_value);
+  GNUNET_RECLAIM_get_attributes_next (handle->attr_it);
 }
 
 
index afab333206a038ab85987a3e7340e37e1f122549..5f52aa57b2a2a9b4e10ea9684b9f45fd90e2be3d 100644 (file)
@@ -632,7 +632,7 @@ handle_consume_ticket_result (void *cls,
                                               &ale->attestation->id))
               {
                 op->atr_cb (op->cls, &msg->identity,
-                           le->attribute, ale->attestation);
+                            le->attribute, ale->attestation);
                 break;
               }
 
@@ -641,11 +641,13 @@ handle_consume_ticket_result (void *cls,
           else     // No attestations
           {
             op->atr_cb (op->cls, &msg->identity,
-                       le->attribute, NULL);
+                        le->attribute, NULL);
           }
         }
-        GNUNET_RECLAIM_attribute_list_destroy (attrs);
-        GNUNET_RECLAIM_attestation_list_destroy (attests);
+        if (NULL != attrs)
+          GNUNET_RECLAIM_attribute_list_destroy (attrs);
+        if (NULL != attests)
+          GNUNET_RECLAIM_attestation_list_destroy (attests);
         attrs = NULL;
         attests = NULL;
       }
@@ -775,10 +777,13 @@ check_attestation_result (void *cls, const struct AttestationResultMessage *msg)
 {
   size_t msg_len;
   size_t attr_len;
+  size_t attest_len;
 
   msg_len = ntohs (msg->header.size);
-  attr_len = ntohs (msg->attestation_len);
-  if (msg_len != sizeof(struct AttestationResultMessage) + attr_len)
+  attest_len = ntohs (msg->attestation_len);
+  attr_len = ntohs (msg->attributes_len);
+  if (msg_len != sizeof(struct AttestationResultMessage)
+      + attr_len + attest_len)
   {
     GNUNET_break (0);
     return GNUNET_SYSERR;
@@ -851,6 +856,7 @@ handle_attestation_result (void *cls, const struct
     att = GNUNET_RECLAIM_attestation_deserialize ((char *) &msg[1], att_len);
     char *read_ptr = ((char *) &msg[1]) + att_len;
     attrs = GNUNET_RECLAIM_attribute_list_deserialize (read_ptr, attrs_len);
+
     if (NULL != it)
     {
       if (NULL != it->proc)
@@ -862,7 +868,8 @@ handle_attestation_result (void *cls, const struct
         op->at_cb (op->cls, &msg->identity, att, attrs);
     }
     GNUNET_free (att);
-    GNUNET_RECLAIM_attribute_list_destroy (attrs);
+    if (NULL != attrs)
+      GNUNET_RECLAIM_attribute_list_destroy (attrs);
     return;
   }
   GNUNET_assert (0);
@@ -1429,7 +1436,8 @@ GNUNET_RECLAIM_get_attestations_start (
   ait->identity = *identity;
   GNUNET_CONTAINER_DLL_insert_tail (h->ait_head, h->ait_tail, ait);
   env =
-    GNUNET_MQ_msg (msg, GNUNET_MESSAGE_TYPE_RECLAIM_ATTESTATION_ITERATION_START);
+    GNUNET_MQ_msg (msg,
+                   GNUNET_MESSAGE_TYPE_RECLAIM_ATTESTATION_ITERATION_START);
   msg->id = htonl (rid);
   msg->identity = *identity;
   if (NULL == h->mq)
@@ -1447,7 +1455,8 @@ GNUNET_RECLAIM_get_attestations_start (
  * @param it the iterator
  */
 void
-GNUNET_RECLAIM_get_attestations_next (struct GNUNET_RECLAIM_AttestationIterator *ait)
+GNUNET_RECLAIM_get_attestations_next (struct
+                                      GNUNET_RECLAIM_AttestationIterator *ait)
 {
   struct GNUNET_RECLAIM_Handle *h = ait->h;
   struct AttestationIterationNextMessage *msg;
@@ -1468,7 +1477,8 @@ GNUNET_RECLAIM_get_attestations_next (struct GNUNET_RECLAIM_AttestationIterator
  * @param it the iterator
  */
 void
-GNUNET_RECLAIM_get_attestations_stop (struct GNUNET_RECLAIM_AttestationIterator *ait)
+GNUNET_RECLAIM_get_attestations_stop (struct
+                                      GNUNET_RECLAIM_AttestationIterator *ait)
 {
   struct GNUNET_RECLAIM_Handle *h = ait->h;
   struct GNUNET_MQ_Envelope *env;
@@ -1477,7 +1487,8 @@ GNUNET_RECLAIM_get_attestations_stop (struct GNUNET_RECLAIM_AttestationIterator
   if (NULL != h->mq)
   {
     env =
-      GNUNET_MQ_msg (msg, GNUNET_MESSAGE_TYPE_RECLAIM_ATTESTATION_ITERATION_STOP);
+      GNUNET_MQ_msg (msg,
+                     GNUNET_MESSAGE_TYPE_RECLAIM_ATTESTATION_ITERATION_STOP);
     msg->id = htonl (ait->r_id);
     GNUNET_MQ_send (h->mq, env);
   }
@@ -1485,7 +1496,6 @@ GNUNET_RECLAIM_get_attestations_stop (struct GNUNET_RECLAIM_AttestationIterator
 }
 
 
-
 /**
  * Issues a ticket to another relying party. The identity may use
  * @GNUNET_RECLAIM_ticket_consume to consume the ticket