[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnunet] 133/171: -fixes
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnunet] 133/171: -fixes |
Date: |
Thu, 04 Jan 2018 16:10:41 +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 bada12fb79c54aa1151e86b0284e8b6f38fd020c
Author: Schanzenbach, Martin <address@hidden>
AuthorDate: Sat Oct 7 10:55:04 2017 +0200
-fixes
---
.../gnunet-service-identity-provider.c | 107 ++++++++++++---------
1 file changed, 62 insertions(+), 45 deletions(-)
diff --git a/src/identity-provider/gnunet-service-identity-provider.c
b/src/identity-provider/gnunet-service-identity-provider.c
index 62955b5da..b4cf154b4 100644
--- a/src/identity-provider/gnunet-service-identity-provider.c
+++ b/src/identity-provider/gnunet-service-identity-provider.c
@@ -1037,6 +1037,51 @@ handle_issue_ticket_message (void *cls,
}
+/**********************************************************
+ * Revocation
+ **********************************************************/
+
+/**
+ * Cleanup revoke handle
+ */
+static void
+cleanup_revoke_ticket_handle (struct TicketRevocationHandle *handle)
+{
+ if (NULL != handle->attrs)
+ attribute_list_destroy (handle->attrs);
+ if (NULL != handle->abe_key)
+ GNUNET_free (handle->abe_key);
+ if (NULL != handle->ns_qe)
+ GNUNET_NAMESTORE_cancel (handle->ns_qe);
+ if (NULL != handle->ns_it)
+ GNUNET_NAMESTORE_zone_iteration_stop (handle->ns_it);
+ GNUNET_free (handle);
+}
+
+
+/**
+ * Send revocation result
+ */
+static void
+send_revocation_finished (struct TicketRevocationHandle *rh,
+ uint32_t success)
+{
+ struct GNUNET_MQ_Envelope *env;
+ struct RevokeTicketResultMessage *trm;
+
+ env = GNUNET_MQ_msg (trm,
+
GNUNET_MESSAGE_TYPE_IDENTITY_PROVIDER_REVOKE_TICKET_RESULT);
+ trm->id = htonl (rh->r_id);
+ trm->success = htonl (success);
+ GNUNET_MQ_send (rh->client->mq,
+ env);
+ GNUNET_CONTAINER_DLL_remove (rh->client->revocation_list_head,
+ rh->client->revocation_list_tail,
+ rh);
+ cleanup_revoke_ticket_handle (rh);
+}
+
+
/**
* Process ticket from database
*
@@ -1060,10 +1105,10 @@ reissue_ticket_cont (void *cls,
rh->ns_qe = NULL;
if (GNUNET_SYSERR == success)
{
- //TODO cleanup_ticket_revocation_handle (handle);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s\n",
"Unknown Error\n");
- GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
+ send_revocation_finished (rh, GNUNET_SYSERR);
+ cleanup_revoke_ticket_handle (rh);
return;
}
rh->offset++;
@@ -1091,6 +1136,7 @@ ticket_reissue_proc (void *cls,
const struct GNUNET_IDENTITY_PROVIDER_AttributeList
*attrs)
{
struct TicketRevocationHandle *rh = cls;
+ const struct GNUNET_IDENTITY_PROVIDER_AttributeList *attrs_to_reissue;
struct GNUNET_IDENTITY_PROVIDER_AttributeListEntry *le;
struct GNUNET_CRYPTO_EcdhePrivateKey *ecdhe_privkey;
struct GNUNET_GNSRECORD_Data code_record[1];
@@ -1107,17 +1153,25 @@ ticket_reissue_proc (void *cls,
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Iteration done\n");
- /* Send reply ? */
- GNUNET_break (0);
+ send_revocation_finished (rh, GNUNET_OK);
+ cleanup_revoke_ticket_handle (rh);
return;
}
//Create new ABE key for RP
attrs_len = 0;
- for (le = attrs->list_head; NULL != le; le = le->next)
+ attrs_to_reissue = attrs;
+
+ /* If this is the RP we want to revoke attributes of, the do so */
+ if (0 == memcmp (&ticket->audience,
+ &rh->ticket.audience,
+ sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
+ attrs_to_reissue = rh->attrs;
+
+ for (le = attrs_to_reissue->list_head; NULL != le; le = le->next)
attrs_len++;
attr_arr = GNUNET_malloc ((attrs_len + 1)*sizeof (char*));
i = 0;
- for (le = attrs->list_head; NULL != le; le = le->next) {
+ for (le = attrs_to_reissue->list_head; NULL != le; le = le->next) {
attr_arr[i] = (char*) le->attribute->name;
i++;
}
@@ -1155,46 +1209,7 @@ ticket_reissue_proc (void *cls,
}
-/**********************************************************
- * Revocation
- **********************************************************/
-/**
- * Cleanup revoke handle
- */
-static void
-cleanup_revoke_ticket_handle (struct TicketRevocationHandle *handle)
-{
- if (NULL != handle->attrs)
- attribute_list_destroy (handle->attrs);
- if (NULL != handle->abe_key)
- GNUNET_free (handle->abe_key);
- if (NULL != handle->ns_qe)
- GNUNET_NAMESTORE_cancel (handle->ns_qe);
- GNUNET_free (handle);
-}
-
-/**
- * Send revocation result
- */
-static void
-send_revocation_finished (struct TicketRevocationHandle *rh,
- uint32_t success)
-{
- struct GNUNET_MQ_Envelope *env;
- struct RevokeTicketResultMessage *trm;
-
- env = GNUNET_MQ_msg (trm,
-
GNUNET_MESSAGE_TYPE_IDENTITY_PROVIDER_REVOKE_TICKET_RESULT);
- trm->id = htonl (rh->r_id);
- trm->success = htonl (success);
- GNUNET_MQ_send (rh->client->mq,
- env);
- GNUNET_CONTAINER_DLL_remove (rh->client->revocation_list_head,
- rh->client->revocation_list_tail,
- rh);
- cleanup_revoke_ticket_handle (rh);
-}
/* Prototype for below function */
static void
@@ -1329,6 +1344,7 @@ revoke_collect_iter_error (void *cls)
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to iterate over attributes\n");
+ rh->ns_it = NULL;
send_revocation_finished (rh, GNUNET_SYSERR);
cleanup_revoke_ticket_handle (rh);
}
@@ -1340,6 +1356,7 @@ static void
revoke_collect_iter_finished (void *cls)
{
struct TicketRevocationHandle *rh = cls;
+ rh->ns_it = NULL;
GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
"Revocation Phase II: Invalidating old ABE Master\n");
/* Bootstrap new abe key */
--
To stop receiving notification emails like this one, please contact
address@hidden
- [GNUnet-SVN] [gnunet] 171/171: Merge remote-tracking branch 'origin/identity_abe', (continued)
- [GNUnet-SVN] [gnunet] 171/171: Merge remote-tracking branch 'origin/identity_abe', gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 110/171: Merge remote-tracking branch 'origin/master' into identity_abe, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 113/171: - Add attribute store API to IdP service, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 132/171: -finish revocation in service, cleanup, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 119/171: -add consume API, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 127/171: -revise API naming; cleanups, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 163/171: -move jwt back into idp, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 144/171: -fixes, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 149/171: -fix make, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 93/171: -more towards idp2, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 133/171: -fixes,
gnunet <=
- [GNUnet-SVN] [gnunet] 150/171: -add dockerfile, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 159/171: Merge remote-tracking branch 'origin/master' into identity_abe, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 164/171: Merge remote-tracking branch 'origin/master' into identity_abe, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 166/171: -move idp experimental, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 168/171: -move abe functionality out of util; prepare for release, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 156/171: -add stats, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 126/171: -remove deprecated, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 154/171: -fixes, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 152/171: -add docker entrypoint, gnunet, 2018/01/04
- [GNUnet-SVN] [gnunet] 129/171: -fix, gnunet, 2018/01/04