[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet] 13/30: move to 256-bit identifier; some cleanups
From: |
gnunet |
Subject: |
[gnunet] 13/30: move to 256-bit identifier; some cleanups |
Date: |
Thu, 13 Feb 2020 22:31:13 +0100 |
This is an automated email from the git hooks/post-receive script.
martin-schanzenbach pushed a commit to branch master
in repository gnunet.
commit 5b6bb2ce4d60635b2af950d72b45f12686fd5218
Author: Schanzenbach, Martin <address@hidden>
AuthorDate: Mon Feb 3 21:51:57 2020 +0100
move to 256-bit identifier; some cleanups
---
src/include/gnunet_reclaim_attribute_lib.h | 43 +++++++--
src/include/gnunet_reclaim_service.h | 4 +-
src/reclaim-attribute/reclaim_attribute.c | 26 +++---
src/reclaim-attribute/reclaim_attribute.h | 16 ++--
src/reclaim/gnunet-reclaim.c | 14 +--
src/reclaim/gnunet-service-reclaim.c | 91 +++++++++++-------
src/reclaim/gnunet-service-reclaim_tickets.c | 133 ++++++++++++++-------------
src/reclaim/json_reclaim.c | 19 ++--
src/reclaim/oidc_helper.c | 8 +-
src/reclaim/plugin_rest_reclaim.c | 34 +++----
src/reclaim/reclaim_api.c | 19 +++-
11 files changed, 238 insertions(+), 169 deletions(-)
diff --git a/src/include/gnunet_reclaim_attribute_lib.h
b/src/include/gnunet_reclaim_attribute_lib.h
index 004f2bd10..93b4f8a13 100644
--- a/src/include/gnunet_reclaim_attribute_lib.h
+++ b/src/include/gnunet_reclaim_attribute_lib.h
@@ -60,6 +60,37 @@ extern "C" {
*/
#define GNUNET_RECLAIM_ATTESTATION_TYPE_JWT 11
+/**
+ * We want an ID to be a 256-bit symmetric key
+ */
+#define GNUNET_RECLAIM_ID_LENGTH (256 / 8)
+
+/**
+ * A reclaim identifier
+ * FIXME maybe put this in a different namespace
+ */
+struct GNUNET_RECLAIM_Identifier
+{
+ char id[GNUNET_RECLAIM_ID_LENGTH];
+};
+
+static const struct GNUNET_RECLAIM_Identifier GNUNET_RECLAIM_ID_ZERO;
+
+#define GNUNET_RECLAIM_id_is_equal(a,b) ((0 == \
+ memcmp (a,\
+ b,\
+ sizeof (GNUNET_RECLAIM_ID_ZERO))) ?\
+ GNUNET_YES : GNUNET_NO)
+
+
+#define GNUNET_RECLAIM_id_is_zero(a) GNUNET_RECLAIM_id_is_equal(a,\
+
&GNUNET_RECLAIM_ID_ZERO)
+
+#define GNUNET_RECLAIM_id_generate(id) \
+ (GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_STRONG,\
+ id,\
+ sizeof (GNUNET_RECLAIM_ID_ZERO)))
+
/**
* An attribute.
*/
@@ -68,7 +99,7 @@ struct GNUNET_RECLAIM_ATTRIBUTE_Claim
/**
* ID
*/
- uint64_t id;
+ struct GNUNET_RECLAIM_Identifier id;
/**
* Type of Claim
@@ -106,7 +137,7 @@ struct GNUNET_RECLAIM_ATTESTATION_Claim
/**
* ID
*/
- uint64_t id;
+ struct GNUNET_RECLAIM_Identifier id;
/**
* Type/Format of Claim
@@ -114,9 +145,9 @@ struct GNUNET_RECLAIM_ATTESTATION_Claim
uint32_t type;
/**
- * Version
+ * Flag
*/
- uint32_t version;
+ uint32_t flag;
/**
* The name of the attribute. Note "name" must never be individually
@@ -145,12 +176,12 @@ struct GNUNET_RECLAIM_ATTESTATION_REFERENCE
/**
* ID
*/
- uint64_t id;
+ struct GNUNET_RECLAIM_Identifier id;
/**
* Referenced ID of Attestation
*/
- uint64_t id_attest;
+ struct GNUNET_RECLAIM_Identifier id_attest;
/**
* The name of the attribute/attestation reference value. Note "name" must
never be individually
diff --git a/src/include/gnunet_reclaim_service.h
b/src/include/gnunet_reclaim_service.h
index 214cdba69..b20809a49 100644
--- a/src/include/gnunet_reclaim_service.h
+++ b/src/include/gnunet_reclaim_service.h
@@ -77,9 +77,9 @@ struct GNUNET_RECLAIM_Ticket
struct GNUNET_CRYPTO_EcdsaPublicKey audience;
/**
- * The ticket random (NBO)
+ * The ticket random identifier
*/
- uint64_t rnd;
+ struct GNUNET_RECLAIM_Identifier rnd;
};
diff --git a/src/reclaim-attribute/reclaim_attribute.c
b/src/reclaim-attribute/reclaim_attribute.c
index 43199c108..07d8200c6 100644
--- a/src/reclaim-attribute/reclaim_attribute.c
+++ b/src/reclaim-attribute/reclaim_attribute.c
@@ -389,7 +389,7 @@ GNUNET_RECLAIM_ATTESTATION_claim_new (const char *attr_name,
+ strlen (attr_name_tmp) + 1 + data_size);
attr->type = type;
attr->data_size = data_size;
- attr->version = 0;
+ attr->flag = 0;
write_ptr = (char *) &attr[1];
GNUNET_memcpy (write_ptr, attr_name_tmp, strlen (attr_name_tmp) + 1);
attr->name = write_ptr;
@@ -797,8 +797,8 @@ GNUNET_RECLAIM_ATTRIBUTE_serialize (
attr_ser = (struct Attribute *) result;
attr_ser->attribute_type = htons (attr->type);
- attr_ser->attribute_version = htonl (attr->flag);
- attr_ser->attribute_id = GNUNET_htonll (attr->id);
+ attr_ser->attribute_flag = htonl (attr->flag);
+ attr_ser->attribute_id = attr->id;
name_len = strlen (attr->name);
attr_ser->name_len = htons (name_len);
write_ptr = (char *) &attr_ser[1];
@@ -847,8 +847,8 @@ GNUNET_RECLAIM_ATTRIBUTE_deserialize (const char *data,
size_t data_size)
attr = GNUNET_malloc (sizeof(struct GNUNET_RECLAIM_ATTRIBUTE_Claim)
+ data_len + name_len + 1);
attr->type = ntohs (attr_ser->attribute_type);
- attr->flag = ntohl (attr_ser->attribute_version);
- attr->id = GNUNET_ntohll (attr_ser->attribute_id);
+ attr->flag = ntohl (attr_ser->attribute_flag);
+ attr->id = attr_ser->attribute_id;
attr->data_size = data_len;
write_ptr = (char *) &attr[1];
@@ -895,8 +895,8 @@ GNUNET_RECLAIM_ATTESTATION_serialize (
attr_ser = (struct Attestation *) result;
attr_ser->attestation_type = htons (attr->type);
- attr_ser->attestation_version = htonl (attr->version);
- attr_ser->attestation_id = GNUNET_htonll (attr->id);
+ attr_ser->attestation_flag = htonl (attr->flag);
+ attr_ser->attestation_id = attr->id;
name_len = strlen (attr->name);
attr_ser->name_len = htons (name_len);
write_ptr = (char *) &attr_ser[1];
@@ -944,8 +944,8 @@ GNUNET_RECLAIM_ATTESTATION_deserialize (const char *data,
size_t data_size)
attr = GNUNET_malloc (sizeof(struct GNUNET_RECLAIM_ATTESTATION_Claim)
+ data_len + name_len + 1);
attr->type = ntohs (attr_ser->attestation_type);
- attr->version = ntohl (attr_ser->attestation_version);
- attr->id = GNUNET_ntohll (attr_ser->attestation_id);
+ attr->flag = ntohl (attr_ser->attestation_flag);
+ attr->id = attr_ser->attestation_id;
attr->data_size = data_len;
write_ptr = (char *) &attr[1];
@@ -991,8 +991,8 @@ GNUNET_RECLAIM_ATTESTATION_REF_serialize (
struct Attestation_Reference *attr_ser;
char *write_ptr;
attr_ser = (struct Attestation_Reference *) result;
- attr_ser->reference_id = GNUNET_htonll (attr->id);
- attr_ser->attestation_id = GNUNET_htonll (attr->id_attest);
+ attr_ser->reference_id = attr->id;
+ attr_ser->attestation_id = attr->id_attest;
name_len = strlen (attr->name);
refval_len = strlen (attr->reference_value);
attr_ser->name_len = htons (name_len);
@@ -1038,8 +1038,8 @@ GNUNET_RECLAIM_ATTESTATION_REF_deserialize (const char
*data, size_t data_size)
attr = GNUNET_malloc (sizeof(struct GNUNET_RECLAIM_ATTESTATION_REFERENCE)
+ refval_len + name_len + 2);
- attr->id = GNUNET_ntohll (attr_ser->reference_id);
- attr->id_attest = GNUNET_ntohll (attr_ser->attestation_id);
+ attr->id = attr_ser->reference_id;
+ attr->id_attest = attr_ser->attestation_id;
write_ptr = (char *) &attr[1];
GNUNET_memcpy (write_ptr, &attr_ser[1], name_len);
diff --git a/src/reclaim-attribute/reclaim_attribute.h
b/src/reclaim-attribute/reclaim_attribute.h
index 80f1e5aac..0746df48e 100644
--- a/src/reclaim-attribute/reclaim_attribute.h
+++ b/src/reclaim-attribute/reclaim_attribute.h
@@ -39,14 +39,14 @@ struct Attribute
uint32_t attribute_type;
/**
- * Attribute version
+ * Attribute flag
*/
- uint32_t attribute_version;
+ uint32_t attribute_flag;
/**
* Attribute ID
*/
- uint64_t attribute_id;
+ struct GNUNET_RECLAIM_Identifier attribute_id;
/**
* Name length
@@ -72,14 +72,14 @@ struct Attestation
uint32_t attestation_type;
/**
- * Attestation version
+ * Attestation flag
*/
- uint32_t attestation_version;
+ uint32_t attestation_flag;
/**
* Attestation ID
*/
- uint64_t attestation_id;
+ struct GNUNET_RECLAIM_Identifier attestation_id;
/**
* Name length
@@ -102,12 +102,12 @@ struct Attestation_Reference
/**
* Reference ID
*/
- uint64_t reference_id;
+ struct GNUNET_RECLAIM_Identifier reference_id;
/**
* The ID of the referenced attestation
*/
- uint64_t attestation_id;
+ struct GNUNET_RECLAIM_Identifier attestation_id;
/**
* Claim Name length
diff --git a/src/reclaim/gnunet-reclaim.c b/src/reclaim/gnunet-reclaim.c
index 5f9170f05..c3d305eb5 100644
--- a/src/reclaim/gnunet-reclaim.c
+++ b/src/reclaim/gnunet-reclaim.c
@@ -227,7 +227,7 @@ static void
process_attrs (void *cls,
const struct GNUNET_CRYPTO_EcdsaPublicKey *identity,
const struct GNUNET_RECLAIM_ATTRIBUTE_Claim *attr,
- const struct GNUNET_RECLAIM_ATTESTATION_Claim *attest,
+ const struct GNUNET_RECLAIM_ATTESTATION_Claim *attest,
const struct GNUNET_RECLAIM_ATTESTATION_REFERENCE *reference)
{
char *value_str;
@@ -249,9 +249,9 @@ process_attrs (void *cls,
attr->data,
attr->data_size);
attr_type = GNUNET_RECLAIM_ATTRIBUTE_number_to_typename (attr->type);
- id = GNUNET_STRINGS_data_to_string_alloc (&attr->id, sizeof(uint64_t));
+ id = GNUNET_STRINGS_data_to_string_alloc (&attr->id, sizeof(attr->id));
fprintf (stdout,
- "Name: %s; Value: %s (%s); Version %u; ID: %s\n",
+ "Name: %s; Value: %s (%s); Flag %u; ID: %s\n",
attr->name,
value_str,
attr_type,
@@ -289,7 +289,7 @@ ticket_iter (void *cls, const struct GNUNET_RECLAIM_Ticket
*ticket)
GNUNET_STRINGS_data_to_string_alloc (&ticket->audience,
sizeof(struct
GNUNET_CRYPTO_EcdsaPublicKey));
- ref = GNUNET_STRINGS_data_to_string_alloc (&ticket->rnd, sizeof(uint64_t));
+ ref = GNUNET_STRINGS_data_to_string_alloc (&ticket->rnd,
sizeof(ticket->rnd));
tkt =
GNUNET_STRINGS_data_to_string_alloc (ticket,
sizeof(struct GNUNET_RECLAIM_Ticket));
@@ -495,7 +495,7 @@ iter_cb (void *cls,
}
else if (attr_delete && (NULL == attr_to_delete))
{
- label = GNUNET_STRINGS_data_to_string_alloc (&attr->id, sizeof(uint64_t));
+ label = GNUNET_STRINGS_data_to_string_alloc (&attr->id, sizeof(attr->id));
if (0 == strcasecmp (attr_delete, label))
{
attr_to_delete = GNUNET_RECLAIM_ATTRIBUTE_claim_new (attr->name,
@@ -512,9 +512,9 @@ iter_cb (void *cls,
attr->data,
attr->data_size);
attr_type = GNUNET_RECLAIM_ATTRIBUTE_number_to_typename (attr->type);
- id = GNUNET_STRINGS_data_to_string_alloc (&attr->id, sizeof(uint64_t));
+ id = GNUNET_STRINGS_data_to_string_alloc (&attr->id, sizeof(attr->id));
fprintf (stdout,
- "Name: %s; Value: %s (%s); Version %u; ID: %s\n",
+ "Name: %s; Value: %s (%s); Flag %u; ID: %s\n",
attr->name,
attr_str,
attr_type,
diff --git a/src/reclaim/gnunet-service-reclaim.c
b/src/reclaim/gnunet-service-reclaim.c
index 556006af0..a00bc5730 100644
--- a/src/reclaim/gnunet-service-reclaim.c
+++ b/src/reclaim/gnunet-service-reclaim.c
@@ -968,12 +968,12 @@ attr_store_task (void *cls)
buf_size = GNUNET_RECLAIM_ATTRIBUTE_serialize_get_size (ash->claim);
buf = GNUNET_malloc (buf_size);
// Give the ash a new id if unset
- if (0 == ash->claim->id)
- ash->claim->id
- = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_STRONG, UINT64_MAX);
+ if (GNUNET_YES == GNUNET_RECLAIM_id_is_zero (&ash->claim->id))
+ GNUNET_RECLAIM_id_generate (&ash->claim->id);
GNUNET_RECLAIM_ATTRIBUTE_serialize (ash->claim, buf);
label
- = GNUNET_STRINGS_data_to_string_alloc (&ash->claim->id, sizeof(uint64_t));
+ = GNUNET_STRINGS_data_to_string_alloc (&ash->claim->id,
+ sizeof (ash->reference->id));
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Encrypting with label %s\n", label);
rd[0].data_size = buf_size;
@@ -1086,6 +1086,7 @@ attest_store_cont (void *cls, int32_t success, const char
*emsg)
cleanup_as_handle (ash);
}
+
/**
* Send a reference error response
*
@@ -1111,6 +1112,7 @@ send_ref_error (struct AttributeStoreHandle *ash)
cleanup_as_handle (ash);
}
+
/**
* Error looking up potential attestation. Abort.
*
@@ -1127,6 +1129,7 @@ attest_error (void *cls)
return;
}
+
/**
* Check for existing record before storing reference
*
@@ -1149,7 +1152,7 @@ attest_add_cb (void *cls,
buf_size = GNUNET_RECLAIM_ATTESTATION_serialize_get_size (ash->attest);
buf = GNUNET_malloc (buf_size);
GNUNET_RECLAIM_ATTESTATION_serialize (ash->attest, buf);
- if (0 == rd_count )
+ if (0 == rd_count)
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Storing new Attestation\n");
@@ -1198,6 +1201,7 @@ attest_add_cb (void *cls,
GNUNET_free (buf);
}
+
/**
* Add a new attestation
*
@@ -1210,11 +1214,10 @@ attest_store_task (void *cls)
char *label;
// Give the ash a new id if unset
- if (0 == ash->attest->id)
- ash->attest->id
- = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_STRONG, UINT64_MAX);
+ if (GNUNET_YES == GNUNET_RECLAIM_id_is_zero (&ash->attest->id))
+ GNUNET_RECLAIM_id_generate (&ash->attest->id);
label = GNUNET_STRINGS_data_to_string_alloc (&ash->attest->id,
- sizeof(uint64_t));
+ sizeof (ash->attest->id));
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Looking up existing data under label %s\n", label);
// Test for the content of the existing ID
@@ -1228,6 +1231,7 @@ attest_store_task (void *cls)
GNUNET_free (label);
}
+
/**
* Check an attestation store message
*
@@ -1249,6 +1253,7 @@ check_attestation_store_message (void *cls,
return GNUNET_OK;
}
+
/**
* Handle an attestation store message
*
@@ -1282,6 +1287,7 @@ handle_attestation_store_message (void *cls,
GNUNET_SCHEDULER_add_now (&attest_store_task, ash);
}
+
/**
* Error looking up potential reference value. Abort.
*
@@ -1298,6 +1304,7 @@ ref_error (void *cls)
return;
}
+
/**
* Error looking up potential reference value. Abort.
*
@@ -1313,6 +1320,8 @@ ref_del_error (void *cls)
GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
return;
}
+
+
/**
* Reference store result handler
*
@@ -1375,7 +1384,7 @@ ref_add_cb (void *cls,
GNUNET_RECLAIM_ATTESTATION_REF_serialize (ash->reference, buf);
struct GNUNET_RECLAIM_ATTESTATION_REFERENCE *ref;
char *data_tmp;
- if (0 == rd_count )
+ if (0 == rd_count)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to find Attestation entry for Attestation
reference\n");
@@ -1398,7 +1407,7 @@ ref_add_cb (void *cls,
ref = GNUNET_RECLAIM_ATTESTATION_REF_deserialize (data_tmp, htons (
rd[i].data_size));
rd_new[i] = rd[i];
- if ((strcmp (ash->reference->name,ref->name) == 0)&&
+ if ((strcmp (ash->reference->name,ref->name) == 0) &&
(strcmp (ash->reference->reference_value,ref->reference_value)==0) )
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -1423,6 +1432,7 @@ ref_add_cb (void *cls,
GNUNET_free (buf);
}
+
/**
* Add a new reference
*
@@ -1437,13 +1447,11 @@ reference_store_task (void *cls)
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Storing reference\n");
// Give the ash a new id if unset
- if (0 == ash->reference->id)
+ if (GNUNET_YES == GNUNET_RECLAIM_id_is_zero (&ash->reference->id))
{
- if (0 == ash->reference->id_attest)
+ if (GNUNET_YES == GNUNET_RECLAIM_id_is_zero (&ash->reference->id_attest))
{
- ash->reference->id = GNUNET_CRYPTO_random_u64 (
- GNUNET_CRYPTO_QUALITY_STRONG,
- UINT64_MAX);
+ GNUNET_RECLAIM_id_generate (&ash->reference->id);
}
else
{
@@ -1452,7 +1460,7 @@ reference_store_task (void *cls)
}
label = GNUNET_STRINGS_data_to_string_alloc (&ash->reference->id,
- sizeof(uint64_t));
+ sizeof (ash->reference->id));
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Looking up existing data under label %s\n", label);
// Test for the content of the existing ID
@@ -1467,6 +1475,7 @@ reference_store_task (void *cls)
GNUNET_free (label);
}
+
/**
* Check an attestation reference store message
*
@@ -1521,6 +1530,8 @@ handle_reference_store_message (void *cls,
GNUNET_CONTAINER_DLL_insert (idp->store_op_head, idp->store_op_tail, ash);
GNUNET_SCHEDULER_add_now (&reference_store_task, ash);
}
+
+
/**
* Send a deletion success response
*
@@ -1570,13 +1581,16 @@ ticket_iter (void *cls,
if (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR_REF != rd[i].record_type)
continue;
if (adh->claim != NULL)
- if (0 != memcmp (rd[i].data, &adh->claim->id, sizeof(uint64_t)))
+ if (GNUNET_YES != GNUNET_RECLAIM_id_is_equal (rd[i].data,
+ &adh->claim->id))
continue;
if (adh->attest != NULL)
- if (0 != memcmp (rd[i].data, &adh->attest->id, sizeof(uint64_t)))
+ if (GNUNET_YES != GNUNET_RECLAIM_id_is_equal (rd[i].data,
+ &adh->attest->id))
continue;
if (adh->reference != NULL)
- if (0 != memcmp (rd[i].data, &adh->reference->id, sizeof(uint64_t)))
+ if (GNUNET_YES != GNUNET_RECLAIM_id_is_equal (rd[i].data,
+ &adh->reference->id))
continue;
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Attribute or Attestation/Reference to delete found (%s)\n",
@@ -1671,15 +1685,18 @@ update_tickets (void *cls)
{
if (adh->claim != NULL)
if ((GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR_REF == rd[i].record_type)
- && (0 == memcmp (rd[i].data, &adh->claim->id, sizeof(uint64_t))))
+ && (GNUNET_YES == GNUNET_RECLAIM_id_is_equal (rd[i].data,
+ &adh->claim->id)))
continue;
if (adh->attest != NULL)
if ((GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR_REF == rd[i].record_type)
- && (0 == memcmp (rd[i].data, &adh->attest->id, sizeof(uint64_t))))
+ && (GNUNET_YES == GNUNET_RECLAIM_id_is_equal (rd[i].data,
+ &adh->attest->id)))
continue;
if (adh->reference != NULL)
if ((GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR_REF == rd[i].record_type)
- && (0 == memcmp (rd[i].data, &adh->reference->id, sizeof(uint64_t))))
+ && (GNUNET_YES == GNUNET_RECLAIM_id_is_equal (rd[i].data,
+ &adh->reference->id)))
continue;
rd_new[j] = rd[i];
j++;
@@ -1828,7 +1845,8 @@ handle_attribute_delete_message (void *cls,
adh->r_id = ntohl (dam->id);
adh->identity = dam->identity;
adh->label
- = GNUNET_STRINGS_data_to_string_alloc (&adh->claim->id, sizeof(uint64_t));
+ = GNUNET_STRINGS_data_to_string_alloc (&adh->claim->id,
+ sizeof(adh->claim->id));
GNUNET_SERVICE_client_continue (idp->client);
adh->client = idp;
GNUNET_CONTAINER_DLL_insert (idp->delete_op_head, idp->delete_op_tail, adh);
@@ -1841,6 +1859,7 @@ handle_attribute_delete_message (void *cls,
adh);
}
+
/**
* Attestation deleted callback
*
@@ -1867,6 +1886,7 @@ attest_delete_cont (void *cls, int32_t success, const
char *emsg)
GNUNET_SCHEDULER_add_now (&start_ticket_update, adh);
}
+
/**
* Check attestation delete message format
*
@@ -1916,7 +1936,8 @@ handle_attestation_delete_message (void *cls,
adh->r_id = ntohl (dam->id);
adh->identity = dam->identity;
adh->label
- = GNUNET_STRINGS_data_to_string_alloc (&adh->attest->id, sizeof(uint64_t));
+ = GNUNET_STRINGS_data_to_string_alloc (&adh->attest->id,
+ sizeof(adh->attest->id));
GNUNET_SERVICE_client_continue (idp->client);
adh->client = idp;
GNUNET_CONTAINER_DLL_insert (idp->delete_op_head, idp->delete_op_tail, adh);
@@ -1930,7 +1951,6 @@ handle_attestation_delete_message (void *cls,
}
-
/**
* Reference deleted callback
*
@@ -1954,12 +1974,13 @@ reference_delete_cont (void *cls, int32_t success,
const char *emsg)
return;
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Updating tickets...\n");
- //GNUNET_SCHEDULER_add_now (&start_ticket_update, adh);
+ // GNUNET_SCHEDULER_add_now (&start_ticket_update, adh);
send_delete_response (adh, GNUNET_OK);
cleanup_adh (adh);
return;
}
+
static void
ref_del_cb (void *cls,
const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
@@ -1974,7 +1995,7 @@ ref_del_cb (void *cls,
struct GNUNET_RECLAIM_ATTESTATION_REFERENCE *ref;
size_t attr_len;
- if (0 == rd_count )
+ if (0 == rd_count)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to find Attestation entry for Attestation
reference\n");
@@ -1999,7 +2020,7 @@ ref_del_cb (void *cls,
GNUNET_memcpy (data_tmp, rd[i].data, rd[i].data_size);
attr_len = htons (rd[i].data_size);
ref = GNUNET_RECLAIM_ATTESTATION_REF_deserialize (data_tmp, attr_len);
- if (NULL == ref )
+ if (NULL == ref)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unable to parse attestation reference from %s\n",
@@ -2008,7 +2029,7 @@ ref_del_cb (void *cls,
j += 1;
continue;
}
- if ((strcmp (adh->reference->name,ref->name) == 0)&&
+ if ((strcmp (adh->reference->name,ref->name) == 0) &&
(strcmp (adh->reference->reference_value,ref->reference_value)==0) )
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -2030,6 +2051,7 @@ ref_del_cb (void *cls,
adh);
}
+
/**
* Check an attestation reference delete message
*
@@ -2051,6 +2073,7 @@ check_reference_delete_message (void *cls,
return GNUNET_OK;
}
+
/**
* Handle reference deletion
*
@@ -2077,7 +2100,7 @@ handle_reference_delete_message (void *cls,
adh->identity = dam->identity;
adh->label
= GNUNET_STRINGS_data_to_string_alloc (&adh->reference->id,
- sizeof(uint64_t));
+ sizeof(adh->reference->id));
GNUNET_SERVICE_client_continue (idp->client);
adh->client = idp;
GNUNET_CONTAINER_DLL_insert (idp->delete_op_head, idp->delete_op_tail, adh);
@@ -2091,7 +2114,6 @@ handle_reference_delete_message (void *cls,
}
-
/*************************************************
* Attrubute iteration
*************************************************/
@@ -2190,7 +2212,7 @@ attr_iter_cb (void *cls,
return;
}
- if (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR == rd[i].record_type )
+ if (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR == rd[i].record_type)
{
struct AttributeResultMessage *arm;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found attribute under: %s\n",
@@ -2209,7 +2231,7 @@ attr_iter_cb (void *cls,
}
else
{
- if (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTEST_ATTR == rd[i].record_type )
+ if (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTEST_ATTR == rd[i].record_type)
{
struct AttributeResultMessage *arm;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found attestation under: %s\n",
@@ -2250,6 +2272,7 @@ attr_iter_cb (void *cls,
}
}
+
/**
* Iterate over zone to get attributes
*
diff --git a/src/reclaim/gnunet-service-reclaim_tickets.c
b/src/reclaim/gnunet-service-reclaim_tickets.c
index b022225b8..bdb9e6dd9 100644
--- a/src/reclaim/gnunet-service-reclaim_tickets.c
+++ b/src/reclaim/gnunet-service-reclaim_tickets.c
@@ -236,12 +236,12 @@ struct RevokedAttributeEntry
/**
* Old ID of the attribute
*/
- uint64_t old_id;
+ struct GNUNET_RECLAIM_Identifier old_id;
/**
* New ID of the attribute
*/
- uint64_t new_id;
+ struct GNUNET_RECLAIM_Identifier new_id;
};
@@ -435,7 +435,7 @@ process_tickets (void *cls)
continue;
for (ae = rvk->attrs_head; NULL != ae; ae = ae->next)
{
- if (0 != memcmp (rd[i].data, &ae->old_id, sizeof(uint64_t)))
+ if (0 != memcmp (rd[i].data, &ae->old_id, sizeof(ae->old_id)))
continue;
rd[i].data = &ae->new_id;
}
@@ -497,7 +497,7 @@ rvk_ticket_update (void *cls,
continue;
for (ae = rvk->attrs_head; NULL != ae; ae = ae->next)
{
- if (0 != memcmp (rd[i].data, &ae->old_id, sizeof(uint64_t)))
+ if (0 != memcmp (rd[i].data, &ae->old_id, sizeof(ae->old_id)))
continue;
has_changed = GNUNET_YES;
break;
@@ -532,9 +532,6 @@ rvk_ns_iter_err (void *cls)
struct RECLAIM_TICKETS_RevokeHandle *rvk = cls;
rvk->ns_it = NULL;
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Namestore error on revocation (id=%" PRIu64 "\n",
- rvk->move_attr->old_id);
rvk->cb (rvk->cb_cls, GNUNET_SYSERR);
cleanup_rvk (rvk);
}
@@ -551,9 +548,6 @@ rvk_ns_err (void *cls)
struct RECLAIM_TICKETS_RevokeHandle *rvk = cls;
rvk->ns_qe = NULL;
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Namestore error on revocation (id=%" PRIu64 "\n",
- rvk->move_attr->old_id);
rvk->cb (rvk->cb_cls, GNUNET_SYSERR);
cleanup_rvk (rvk);
}
@@ -636,7 +630,7 @@ move_attr_finished (void *cls, int32_t success, const char
*emsg)
return;
}
label = GNUNET_STRINGS_data_to_string_alloc (&rvk->move_attr->old_id,
- sizeof(uint64_t));
+ sizeof(rvk->move_attr->old_id));
GNUNET_assert (NULL != label);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Removing attribute %s\n", label);
rvk->ns_qe = GNUNET_NAMESTORE_records_store (nsh,
@@ -685,67 +679,80 @@ rvk_move_attr_cb (void *cls,
GNUNET_SCHEDULER_add_now (&move_attrs_cont, rvk);
return;
}
- rvk->move_attr->new_id =GNUNET_CRYPTO_random_u64
(GNUNET_CRYPTO_QUALITY_STRONG, UINT64_MAX);
- new_label=NULL;
- attr_data=NULL;
- //new_rd = *rd;
+ GNUNET_RECLAIM_id_generate (&rvk->move_attr->new_id);
+ new_label = NULL;
+ attr_data = NULL;
+ // new_rd = *rd;
for (int i = 0; i < rd_count; i++)
{
if (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR == rd[i].record_type)
{
/** find a new place for this attribute **/
struct GNUNET_RECLAIM_ATTRIBUTE_Claim *claim;
- claim = GNUNET_RECLAIM_ATTRIBUTE_deserialize (rd[i].data,
rd[i].data_size);
+ claim = GNUNET_RECLAIM_ATTRIBUTE_deserialize (rd[i].data,
+ rd[i].data_size);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Attribute to update: Name=%s, ID=%" PRIu64 "\n",
- claim->name,
- claim->id);
+ "Attribute to update: Name=%s\n",
+ claim->name);
claim->id = rvk->move_attr->new_id;
new_rd[i].data_size = GNUNET_RECLAIM_ATTRIBUTE_serialize_get_size
(claim);
attr_data = GNUNET_malloc (rd[i].data_size);
- new_rd[i].data_size = GNUNET_RECLAIM_ATTRIBUTE_serialize (claim,
attr_data);
+ new_rd[i].data_size = GNUNET_RECLAIM_ATTRIBUTE_serialize (claim,
+ attr_data);
new_rd[i].data = attr_data;
new_rd[i].record_type = rd[i].record_type;
new_rd[i].flags = rd[i].flags;
new_rd[i].expiration_time = rd[i].expiration_time;
new_label = GNUNET_STRINGS_data_to_string_alloc (&rvk->move_attr->new_id,
- sizeof(uint64_t));
+ sizeof (rvk->move_attr->
+ new_id));
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Adding attribute %s\n", new_label);
GNUNET_free (claim);
- } else if (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTEST_ATTR == rd[i].record_type)
+ }
+ else if (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTEST_ATTR == rd[i].record_type)
{
struct GNUNET_RECLAIM_ATTESTATION_Claim *attest;
- attest=GNUNET_RECLAIM_ATTESTATION_deserialize(rd[i].data,
rd[i].data_size);
+ attest = GNUNET_RECLAIM_ATTESTATION_deserialize (rd[i].data,
+ rd[i].data_size);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Attestation to update: Name=%s, ID=%" PRIu64 "\n",
- attest->name,
- attest->id);
+ "Attestation to update: Name=%s\n",
+ attest->name);
attest->id = rvk->move_attr->new_id;
- new_rd[i].data_size = GNUNET_RECLAIM_ATTESTATION_serialize_get_size
(attest);
+ new_rd[i].data_size = GNUNET_RECLAIM_ATTESTATION_serialize_get_size (
+ attest);
attr_data = GNUNET_malloc (rd[i].data_size);
- new_rd[i].data_size = GNUNET_RECLAIM_ATTESTATION_serialize (attest,
attr_data);
+ new_rd[i].data_size = GNUNET_RECLAIM_ATTESTATION_serialize (attest,
+ attr_data);
new_rd[i].data = attr_data;
new_rd[i].record_type = rd[i].record_type;
new_rd[i].flags = rd[i].flags;
new_rd[i].expiration_time = rd[i].expiration_time;
- new_label = GNUNET_STRINGS_data_to_string_alloc
(&rvk->move_attr->new_id, sizeof(uint64_t));
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Adding attestation %s\n",
new_label);
+ new_label = GNUNET_STRINGS_data_to_string_alloc (&rvk->move_attr->new_id,
+ sizeof (rvk->move_attr->
+ new_id));
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Adding attestation %s\n",
+ new_label);
GNUNET_free (attest);
- } else if (GNUNET_GNSRECORD_TYPE_RECLAIM_REFERENCE == rd[i].record_type)
+ }
+ else if (GNUNET_GNSRECORD_TYPE_RECLAIM_REFERENCE == rd[i].record_type)
{
struct GNUNET_RECLAIM_ATTESTATION_REFERENCE *reference;
- reference=GNUNET_RECLAIM_ATTESTATION_REF_deserialize(rd[i].data,
rd[i].data_size);
+ reference = GNUNET_RECLAIM_ATTESTATION_REF_deserialize (rd[i].data,
+ rd[i].data_size);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Reference to update: Name=%s, ID=%" PRIu64 "\n",
- reference->name,
- reference->id);
+ "Reference to update: Name=%s\n",
+ reference->name);
reference->id = rvk->move_attr->new_id;
reference->id_attest = rvk->move_attr->new_id;
- new_rd[i].data_size = GNUNET_RECLAIM_ATTESTATION_REF_serialize_get_size
(reference);
+ new_rd[i].data_size = GNUNET_RECLAIM_ATTESTATION_REF_serialize_get_size (
+ reference);
attr_data = GNUNET_malloc (rd[i].data_size);
- new_rd[i].data_size = GNUNET_RECLAIM_ATTESTATION_REF_serialize
(reference, attr_data);
+ new_rd[i].data_size = GNUNET_RECLAIM_ATTESTATION_REF_serialize
(reference,
+
attr_data);
new_rd[i].data = attr_data;
- new_label = GNUNET_STRINGS_data_to_string_alloc
(&rvk->move_attr->new_id, sizeof(uint64_t));
+ new_label = GNUNET_STRINGS_data_to_string_alloc (&rvk->move_attr->new_id,
+ sizeof (rvk->move_attr->
+ new_id));
new_rd[i].record_type = rd[i].record_type;
new_rd[i].flags = rd[i].flags;
new_rd[i].expiration_time = rd[i].expiration_time;
@@ -754,12 +761,12 @@ rvk_move_attr_cb (void *cls,
}
}
rvk->ns_qe = GNUNET_NAMESTORE_records_store (nsh,
- &rvk->identity,
- new_label,
- rd_count,
- new_rd,
- &move_attr_finished,
- rvk);
+ &rvk->identity,
+ new_label,
+ rd_count,
+ new_rd,
+ &move_attr_finished,
+ rvk);
GNUNET_free (new_label);
GNUNET_free (attr_data);
}
@@ -793,7 +800,7 @@ move_attrs (struct RECLAIM_TICKETS_RevokeHandle *rvk)
return;
}
label = GNUNET_STRINGS_data_to_string_alloc (&rvk->move_attr->old_id,
- sizeof(uint64_t));
+ sizeof
(rvk->move_attr->old_id));
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Moving claim %s\n", label);
rvk->ns_qe = GNUNET_NAMESTORE_records_lookup (nsh,
@@ -876,7 +883,7 @@ revoke_attrs_cb (void *cls,
if (GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR_REF != rd[i].record_type)
continue;
le = GNUNET_new (struct RevokedAttributeEntry);
- le->old_id = *((uint64_t *) rd[i].data);
+ le->old_id = *((struct GNUNET_RECLAIM_Identifier *) rd[i].data);
GNUNET_CONTAINER_DLL_insert (rvk->attrs_head, rvk->attrs_tail, le);
rvk->ticket_attrs++;
}
@@ -934,7 +941,8 @@ RECLAIM_TICKETS_revoke (const struct GNUNET_RECLAIM_Ticket
*ticket,
rvk->ticket = *ticket;
GNUNET_CRYPTO_ecdsa_key_get_public (&rvk->identity, &rvk->ticket.identity);
/** Get shared attributes **/
- label = GNUNET_STRINGS_data_to_string_alloc (&ticket->rnd, sizeof(uint64_t));
+ label = GNUNET_STRINGS_data_to_string_alloc (&ticket->rnd,
+ sizeof(ticket->rnd));
GNUNET_assert (NULL != label);
rvk->ns_qe = GNUNET_NAMESTORE_records_lookup (nsh,
identity,
@@ -1231,7 +1239,8 @@ RECLAIM_TICKETS_consume (const struct
GNUNET_CRYPTO_EcdsaPrivateKey *id,
cth->cb = cb;
cth->cb_cls = cb_cls;
label =
- GNUNET_STRINGS_data_to_string_alloc (&cth->ticket.rnd, sizeof(uint64_t));
+ GNUNET_STRINGS_data_to_string_alloc (&cth->ticket.rnd,
+ sizeof(cth->ticket.rnd));
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Looking for AuthZ info under %s\n",
label);
@@ -1393,7 +1402,8 @@ issue_ticket (struct TicketIssueHandle *ih)
GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION | GNUNET_GNSRECORD_RF_PRIVATE;
label =
- GNUNET_STRINGS_data_to_string_alloc (&ih->ticket.rnd, sizeof(uint64_t));
+ GNUNET_STRINGS_data_to_string_alloc (&ih->ticket.rnd,
+ sizeof(ih->ticket.rnd));
// Publish record
ih->ns_qe = GNUNET_NAMESTORE_records_store (nsh,
&ih->identity,
@@ -1488,29 +1498,21 @@ filter_tickets_cb (void *cls,
// cmp attr_ref id with requested attr id
if (NULL !=le->claim)
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- " %" PRIu64 "\n %" PRIu64 "\n",
- *((uint64_t *) rd[i].data),
- le->claim->id);
- if (0 == memcmp (rd[i].data, &le->claim->id, sizeof(uint64_t)))
+ if (0 == memcmp (rd[i].data, &le->claim->id, sizeof(le->claim->id)))
found_attrs_cnt++;
}
else if (NULL !=le->attest)
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- " %" PRIu64 "\n %" PRIu64 "\n",
- *((uint64_t *) rd[i].data),
- le->attest->id);
- if (0 == memcmp (rd[i].data, &le->attest->id, sizeof(uint64_t)))
+ if (0 == memcmp (rd[i].data,
+ &le->attest->id,
+ sizeof(le->attest->id)))
found_attrs_cnt++;
}
else if (NULL != le->reference)
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- " %" PRIu64 "\n %" PRIu64 "\n",
- *((uint64_t *) rd[i].data),
- le->reference->id);
- if (0 == memcmp (rd[i].data, &le->reference->id, sizeof(uint64_t)))
+ if (0 == memcmp (rd[i].data,
+ &le->reference->id,
+ sizeof(le->reference->id)))
found_attrs_cnt++;
}
@@ -1547,8 +1549,7 @@ filter_tickets_finished_cb (void *cls)
struct TicketIssueHandle *tih = cls;
GNUNET_CRYPTO_ecdsa_key_get_public (&tih->identity, &tih->ticket.identity);
- tih->ticket.rnd =
- GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_STRONG, UINT64_MAX);
+ GNUNET_RECLAIM_id_generate (&tih->ticket.rnd);
issue_ticket (tih);
}
diff --git a/src/reclaim/json_reclaim.c b/src/reclaim/json_reclaim.c
index a464a9088..6ac60a704 100644
--- a/src/reclaim/json_reclaim.c
+++ b/src/reclaim/json_reclaim.c
@@ -94,12 +94,12 @@ parse_attr (void *cls, json_t *root, struct
GNUNET_JSON_Specification *spec)
}
attr = GNUNET_RECLAIM_ATTRIBUTE_claim_new (name_str, type, data, data_size);
if ((NULL == id_str) || (0 == strlen (id_str)))
- attr->id = 0;
+ memset (&attr->id, 0, sizeof (attr->id));
else
GNUNET_STRINGS_string_to_data (id_str,
strlen (id_str),
&attr->id,
- sizeof(uint64_t));
+ sizeof(attr->id));
*(struct GNUNET_RECLAIM_ATTRIBUTE_Claim **) spec->ptr = attr;
return GNUNET_OK;
@@ -192,7 +192,7 @@ parse_ticket (void *cls, json_t *root, struct
GNUNET_JSON_Specification *spec)
if (GNUNET_OK != GNUNET_STRINGS_string_to_data (rnd_str,
strlen (rnd_str),
&ticket->rnd,
- sizeof(uint64_t)))
+ sizeof(ticket->rnd)))
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Rnd invalid\n");
GNUNET_free (ticket);
@@ -327,12 +327,12 @@ parse_attest (void *cls, json_t *root, struct
GNUNET_JSON_Specification *spec)
}
attr = GNUNET_RECLAIM_ATTESTATION_claim_new (name_str, type, data,
data_size);
if ((NULL == id_str) || (0 == strlen (id_str)))
- attr->id = 0;
+ memset (&attr->id, 0, sizeof (attr->id));
else
GNUNET_STRINGS_string_to_data (id_str,
strlen (id_str),
&attr->id,
- sizeof(uint64_t));
+ sizeof(attr->id));
*(struct GNUNET_RECLAIM_ATTESTATION_Claim **) spec->ptr = attr;
return GNUNET_OK;
@@ -425,16 +425,15 @@ parse_attest_ref (void *cls, json_t *root, struct
}
attr = GNUNET_RECLAIM_ATTESTATION_reference_new (name_str, ref_val_str);
-
- attr->id = 0;
+ memset (&attr->id, 0, sizeof (attr->id));
if ((NULL == ref_id_str) || (0 == strlen (ref_id_str)))
- attr->id_attest = 0;
+ memset (&attr->id_attest, 0, sizeof (attr->id_attest));
else
GNUNET_STRINGS_string_to_data (ref_id_str,
strlen (ref_id_str),
&attr->id_attest,
- sizeof(uint64_t));
+ sizeof(attr->id_attest));
*(struct GNUNET_RECLAIM_ATTESTATION_REFERENCE **) spec->ptr = attr;
return GNUNET_OK;
@@ -480,4 +479,4 @@ GNUNET_RECLAIM_JSON_spec_claim_attest_ref (struct
*attr = NULL;
return ret;
-}
\ No newline at end of file
+}
diff --git a/src/reclaim/oidc_helper.c b/src/reclaim/oidc_helper.c
index 2ce462854..1d23003ab 100644
--- a/src/reclaim/oidc_helper.c
+++ b/src/reclaim/oidc_helper.c
@@ -146,7 +146,7 @@ OIDC_id_token_new (const struct
GNUNET_CRYPTO_EcdsaPublicKey *aud_key,
json_t *aggr_names;
json_t *aggr_sources;
json_t *aggr_sources_jwt;
- uint64_t attest_arr[GNUNET_RECLAIM_ATTRIBUTE_list_count_attest (attrs)];
+ struct GNUNET_RECLAIM_Identifier
attest_arr[GNUNET_RECLAIM_ATTRIBUTE_list_count_attest (attrs)];
// iat REQUIRED time now
time_now = GNUNET_TIME_absolute_get ();
@@ -216,7 +216,8 @@ OIDC_id_token_new (const struct
GNUNET_CRYPTO_EcdsaPublicKey *aud_key,
int j = 0;
while (j<i)
{
- if (attest_arr[j] == le->reference->id_attest)
+ if (GNUNET_YES == GNUNET_RECLAIM_id_is_equal (&attest_arr[j],
+
&le->reference->id_attest))
break;
j++;
}
@@ -245,7 +246,8 @@ OIDC_id_token_new (const struct
GNUNET_CRYPTO_EcdsaPublicKey *aud_key,
int j = 0;
while (j<i)
{
- if (attest_arr[j] == le->attest->id)
+ if (GNUNET_YES == GNUNET_RECLAIM_id_is_equal (&attest_arr[j],
+ &le->attest->id))
break;
j++;
}
diff --git a/src/reclaim/plugin_rest_reclaim.c
b/src/reclaim/plugin_rest_reclaim.c
index dcda75b65..9a6af6bcf 100644
--- a/src/reclaim/plugin_rest_reclaim.c
+++ b/src/reclaim/plugin_rest_reclaim.c
@@ -428,7 +428,7 @@ ticket_collect (void *cls, const struct
GNUNET_RECLAIM_Ticket *ticket)
char *tmp;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Adding ticket\n");
- tmp = GNUNET_STRINGS_data_to_string_alloc (&ticket->rnd, sizeof(uint64_t));
+ tmp = GNUNET_STRINGS_data_to_string_alloc (&ticket->rnd,
sizeof(ticket->rnd));
json_resource = json_object ();
GNUNET_free (tmp);
json_array_append (handle->resp_object, json_resource);
@@ -447,7 +447,7 @@ ticket_collect (void *cls, const struct
GNUNET_RECLAIM_Ticket *ticket)
value = json_string (tmp);
json_object_set_new (json_resource, "audience", value);
GNUNET_free (tmp);
- tmp = GNUNET_STRINGS_data_to_string_alloc (&ticket->rnd, sizeof(uint64_t));
+ tmp = GNUNET_STRINGS_data_to_string_alloc (&ticket->rnd,
sizeof(ticket->rnd));
value = json_string (tmp);
json_object_set_new (json_resource, "rnd", value);
GNUNET_free (tmp);
@@ -521,7 +521,7 @@ add_attestation_ref_cont (struct GNUNET_REST_RequestHandle
*con_handle,
/**
* New ID for attribute
*/
- if (0 == attribute->id)
+ if (GNUNET_YES == GNUNET_RECLAIM_id_is_zero (&attribute->id))
attribute->id = attribute->id_attest;
handle->idp = GNUNET_RECLAIM_connect (cfg);
exp = GNUNET_TIME_UNIT_HOURS;
@@ -692,9 +692,8 @@ add_attestation_cont (struct GNUNET_REST_RequestHandle
*con_handle,
/**
* New ID for attribute
*/
- if (0 == attribute->id)
- attribute->id =
- GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_STRONG, UINT64_MAX);
+ if (GNUNET_YES == GNUNET_RECLAIM_id_is_zero (&attribute->id))
+ GNUNET_RECLAIM_id_generate (&attribute->id);
handle->idp = GNUNET_RECLAIM_connect (cfg);
exp = GNUNET_TIME_UNIT_HOURS;
handle->idp_op = GNUNET_RECLAIM_attestation_store (handle->idp,
@@ -740,9 +739,9 @@ ref_collect (void *cls,
json_object_set_new (attr_obj, "ref_value", json_string (
reference->reference_value));
id_str = GNUNET_STRINGS_data_to_string_alloc (&reference->id,
- sizeof(uint64_t));
+ sizeof(reference->id));
id_attest_str = GNUNET_STRINGS_data_to_string_alloc (&reference->id_attest,
- sizeof(uint64_t));
+
sizeof(reference->id_attest));
json_object_set_new (attr_obj, "id", json_string (id_str));
json_object_set_new (attr_obj, "ref_id", json_string (id_attest_str));
json_array_append (handle->resp_object, attr_obj);
@@ -856,7 +855,7 @@ attest_collect (void *cls,
json_object_set_new (attr_obj, "name", json_string (attest->name));
type = GNUNET_RECLAIM_ATTESTATION_number_to_typename (attest->type);
json_object_set_new (attr_obj, "type", json_string (type));
- id_str = GNUNET_STRINGS_data_to_string_alloc (&attest->id, sizeof(uint64_t));
+ id_str = GNUNET_STRINGS_data_to_string_alloc (&attest->id,
sizeof(attest->id));
json_object_set_new (attr_obj, "id", json_string (id_str));
json_array_append (handle->resp_object, attr_obj);
json_decref (attr_obj);
@@ -1017,7 +1016,7 @@ delete_attestation_ref_cont (struct
GNUNET_REST_RequestHandle *con_handle,
GNUNET_SCHEDULER_add_now (&do_error, handle);
return;
}
- GNUNET_STRINGS_string_to_data (id, strlen (id), &attr->id, sizeof(uint64_t));
+ GNUNET_STRINGS_string_to_data (id, strlen (id), &attr->id, sizeof(attr->id));
handle->idp = GNUNET_RECLAIM_connect (cfg);
handle->idp_op = GNUNET_RECLAIM_attestation_reference_delete (handle->idp,
@@ -1100,7 +1099,7 @@ delete_attestation_cont (struct GNUNET_REST_RequestHandle
*con_handle,
priv_key = GNUNET_IDENTITY_ego_get_private_key (ego_entry->ego);
handle->idp = GNUNET_RECLAIM_connect (cfg);
memset (&attr, 0, sizeof(struct GNUNET_RECLAIM_ATTESTATION_Claim));
- GNUNET_STRINGS_string_to_data (id, strlen (id), &attr.id, sizeof(uint64_t));
+ GNUNET_STRINGS_string_to_data (id, strlen (id), &attr.id, sizeof(attr.id));
attr.name = "";
handle->idp_op = GNUNET_RECLAIM_attestation_delete (handle->idp,
priv_key,
@@ -1230,9 +1229,8 @@ add_attribute_cont (struct GNUNET_REST_RequestHandle
*con_handle,
/**
* New ID for attribute
*/
- if (0 == attribute->id)
- attribute->id =
- GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_STRONG, UINT64_MAX);
+ if (GNUNET_YES == GNUNET_RECLAIM_id_is_zero (&attribute->id))
+ GNUNET_RECLAIM_id_generate (&attribute->id);
handle->idp = GNUNET_RECLAIM_connect (cfg);
exp = GNUNET_TIME_UNIT_HOURS;
handle->idp_op = GNUNET_RECLAIM_attribute_store (handle->idp,
@@ -1366,7 +1364,8 @@ attr_collect (void *cls,
json_object_set_new (attr_obj, "flag", json_string ("1"));
type = GNUNET_RECLAIM_ATTRIBUTE_number_to_typename (attr2->type);
json_object_set_new (attr_obj, "type", json_string (type));
- id_str = GNUNET_STRINGS_data_to_string_alloc (&attr2->id,
sizeof(uint64_t));
+ id_str = GNUNET_STRINGS_data_to_string_alloc (&attr2->id,
+ sizeof(attr2->id));
json_object_set_new (attr_obj, "id", json_string (id_str));
json_array_append (handle->resp_object, attr_obj);
json_decref (attr_obj);
@@ -1396,7 +1395,8 @@ attr_collect (void *cls,
json_object_set_new (attr_obj, "flag", json_string (flag_str));
type = GNUNET_RECLAIM_ATTRIBUTE_number_to_typename (attr->type);
json_object_set_new (attr_obj, "type", json_string (type));
- id_str = GNUNET_STRINGS_data_to_string_alloc (&attr->id, sizeof(uint64_t));
+ id_str = GNUNET_STRINGS_data_to_string_alloc (&attr->id,
+ sizeof(attr->id));
json_object_set_new (attr_obj, "id", json_string (id_str));
json_array_append (handle->resp_object, attr_obj);
json_decref (attr_obj);
@@ -1515,7 +1515,7 @@ delete_attribute_cont (struct GNUNET_REST_RequestHandle
*con_handle,
priv_key = GNUNET_IDENTITY_ego_get_private_key (ego_entry->ego);
handle->idp = GNUNET_RECLAIM_connect (cfg);
memset (&attr, 0, sizeof(struct GNUNET_RECLAIM_ATTRIBUTE_Claim));
- GNUNET_STRINGS_string_to_data (id, strlen (id), &attr.id, sizeof(uint64_t));
+ GNUNET_STRINGS_string_to_data (id, strlen (id), &attr.id, sizeof(attr.id));
attr.name = "";
handle->idp_op = GNUNET_RECLAIM_attribute_delete (handle->idp,
priv_key,
diff --git a/src/reclaim/reclaim_api.c b/src/reclaim/reclaim_api.c
index 847abb58a..5a3bee218 100644
--- a/src/reclaim/reclaim_api.c
+++ b/src/reclaim/reclaim_api.c
@@ -511,13 +511,17 @@ handle_consume_ticket_result (void *cls,
{
for (le = attrs->list_head; NULL != le; le = le->next)
{
- if (le->reference != NULL && le->attest == NULL)
+ if ((le->reference != NULL) && (le->attest == NULL))
{
for (le2 = attrs->list_head; NULL != le2; le2 = le2->next)
{
- if (le2->attest != NULL && le2->attest->id ==
le->reference->id_attest)
+ if ((le2->attest != NULL) &&
+ (0 == memcmp (&le2->attest->id,
+ &le->reference->id_attest,
+ sizeof (le2->attest->id))))
{
- op->ar_cb (op->cls, &msg->identity, le->claim, le2->attest,
le->reference);
+ op->ar_cb (op->cls, &msg->identity, le->claim, le2->attest,
+ le->reference);
break;
}
@@ -637,6 +641,7 @@ handle_attribute_result (void *cls, const struct
AttributeResultMessage *msg)
GNUNET_assert (0);
}
+
/**
* Handle an incoming message of type
* #GNUNET_MESSAGE_TYPE_RECLAIM_ATTESTATION_RESULT
@@ -736,6 +741,7 @@ handle_attestation_result (void *cls, const struct
AttributeResultMessage *msg)
GNUNET_assert (0);
}
+
/**
* Handle an incoming message of type
* #GNUNET_MESSAGE_TYPE_RECLAIM_REFERENCE_RESULT
@@ -762,6 +768,7 @@ check_reference_result (void *cls, const struct
ReferenceResultMessage *msg)
return GNUNET_OK;
}
+
/**
* Handle an incoming message of type
* #GNUNET_MESSAGE_TYPE_RECLAIM_REFERENCE_RESULT
@@ -841,6 +848,7 @@ handle_reference_result (void *cls, const struct
ReferenceResultMessage *msg)
GNUNET_assert (0);
}
+
/**
* Handle an incoming message of type
* #GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT
@@ -1150,6 +1158,7 @@ GNUNET_RECLAIM_attribute_delete (
return op;
}
+
/**
* Store an attestation. If the attestation is already present,
* it is replaced with the new attestation.
@@ -1197,6 +1206,7 @@ GNUNET_RECLAIM_attestation_store (
return op;
}
+
/**
* Delete an attestation. Tickets used to share this attestation are updated
* accordingly.
@@ -1240,6 +1250,7 @@ GNUNET_RECLAIM_attestation_delete (
return op;
}
+
/**
* Store an attestation reference. If the reference is already present,
* it is replaced with the new reference.
@@ -1286,6 +1297,7 @@ GNUNET_RECLAIM_attestation_reference_store (
return op;
}
+
/**
* Delete an attestation reference. Tickets used to share this reference are
updated
* accordingly.
@@ -1330,6 +1342,7 @@ GNUNET_RECLAIM_attestation_reference_delete (
return op;
}
+
/**
* List all attributes for a local identity.
* This MUST lock the `struct GNUNET_RECLAIM_Handle`
--
To stop receiving notification emails like this one, please contact
address@hidden.
- [gnunet] 07/30: bugfixes, (continued)
- [gnunet] 07/30: bugfixes, gnunet, 2020/02/13
- [gnunet] 16/30: add attestation API to CLI, gnunet, 2020/02/13
- [gnunet] 11/30: consolidate reclaim attribute lib, gnunet, 2020/02/13
- [gnunet] 27/30: Merge branch 'master' into schanzen/reclaim_256bit, gnunet, 2020/02/13
- [gnunet] 21/30: add base64url encoding to util (RFC7515), gnunet, 2020/02/13
- [gnunet] 12/30: add expiration, gnunet, 2020/02/13
- [gnunet] 29/30: Merge branch 'master' into schanzen/reclaim_256bit, gnunet, 2020/02/13
- [gnunet] 19/30: bugfixes, gnunet, 2020/02/13
- [gnunet] 17/30: bugfixes, gnunet, 2020/02/13
- [gnunet] 15/30: add attestation API, gnunet, 2020/02/13
- [gnunet] 13/30: move to 256-bit identifier; some cleanups,
gnunet <=
- [gnunet] 18/30: towards better API, gnunet, 2020/02/13
- [gnunet] 25/30: Merge branch 'schanzen/reclaim_256bit' of ssh://gnunet.org/gnunet into schanzen/reclaim_256bit, gnunet, 2020/02/13
- [gnunet] 20/30: more bugfixes and REST API change, gnunet, 2020/02/13
- [gnunet] 26/30: Merge branch 'master' into schanzen/reclaim_256bit, gnunet, 2020/02/13
- [gnunet] 02/30: Refactoring reclaim attestations, gnunet, 2020/02/13
- [gnunet] 28/30: Merge branch 'master' into schanzen/reclaim_256bit, gnunet, 2020/02/13
- [gnunet] 30/30: Merge branch 'master' into schanzen/reclaim_256bit, gnunet, 2020/02/13
- [gnunet] 22/30: bugfixes; CLI improvements, gnunet, 2020/02/13
- [gnunet] 24/30: add expiration, gnunet, 2020/02/13
- [gnunet] 23/30: consolidate reclaim attribute lib, gnunet, 2020/02/13