GNUnet  0.11.x
gnunet-service-reclaim_tickets.h
Go to the documentation of this file.
1 /*
2  This file is part of GNUnet.
3  Copyright (C) 2012-2015 GNUnet e.V.
4 
5  GNUnet is free software: you can redistribute it and/or modify it
6  under the terms of the GNU Affero General Public License as published
7  by the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  GNUnet is distributed in the hope that it will be useful, but
11  WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Affero General Public License for more details.
14 
15  You should have received a copy of the GNU Affero General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 
18  SPDX-License-Identifier: AGPL3.0-or-later
19  */
20 
28 #ifndef GNUNET_SERVICE_RECLAIM_TICKETS_H
29 #define GNUNET_SERVICE_RECLAIM_TICKETS_H
30 
31 #include "platform.h"
32 
33 #include "gnunet_util_lib.h"
34 
35 #include "gnunet_constants.h"
36 #include "gnunet_gns_service.h"
37 #include "gnunet_gnsrecord_lib.h"
38 #include "gnunet_protocols.h"
39 #include "gnunet_reclaim_lib.h"
40 #include "gnunet_reclaim_service.h"
41 #include "gnunet_signatures.h"
43 #include "reclaim.h"
44 
49 
50 
55 
56 
61 
62 
67 {
72 
77 
81  unsigned int rd_count;
82 
86  char *data;
87 
91  size_t data_size;
92 
96  char *label;
97 };
98 
99 
106 typedef void (*RECLAIM_TICKETS_TicketIter) (
107  void *cls,
108  struct GNUNET_RECLAIM_Ticket *ticket);
109 
110 
121  void *cls,
123  int32_t success,
124  const char *emsg);
125 
126 
137  void *cls,
139  const struct GNUNET_RECLAIM_AttributeList *attributes,
140  const struct GNUNET_RECLAIM_AttestationList *attestations,
141  int32_t success,
142  const char *emsg);
143 
144 
151 typedef void (*RECLAIM_TICKETS_RevokeCallback) (void *cls, int32_t success);
152 
153 
166 RECLAIM_TICKETS_revoke (const struct GNUNET_RECLAIM_Ticket *ticket,
167  const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity,
169  void *cb_cls);
170 
171 
177 void
179 
180 
194  const struct GNUNET_RECLAIM_Ticket *ticket,
196  void *cb_cls);
197 
198 
204 void
206 
207 
219 void
221  const struct GNUNET_RECLAIM_AttributeList *attrs,
222  const struct GNUNET_CRYPTO_EcdsaPublicKey *audience,
224  void *cb_cls);
225 
226 
232 void
234 
235 
241 void
243 
244 
255  const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity,
257  void *cb_cls);
258 
259 
266 int
268 
269 
274 void
276 
277 #endif
void RECLAIM_TICKETS_consume_cancel(struct RECLAIM_TICKETS_ConsumeHandle *cth)
Cancel a consume operation.
void RECLAIM_TICKETS_iteration_stop(struct RECLAIM_TICKETS_Iterator *iter)
Stop a running ticket iteration.
The authorization ticket.
Ticket revocation request handle.
void RECLAIM_TICKETS_revoke_cancel(struct RECLAIM_TICKETS_RevokeHandle *rh)
Cancel a revocation.
struct RECLAIM_TICKETS_Iterator * RECLAIM_TICKETS_iteration_start(const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity, RECLAIM_TICKETS_TicketIter cb, void *cb_cls)
Iterate over all tickets issued by an identity.
A list of GNUNET_RECLAIM_Attribute structures.
A list of GNUNET_RECLAIM_Attestation structures.
Private ECC key encoded for transmission.
void(* RECLAIM_TICKETS_TicketIter)(void *cls, struct GNUNET_RECLAIM_Ticket *ticket)
Continuation called with ticket.
void RECLAIM_TICKETS_issue(const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity, const struct GNUNET_RECLAIM_AttributeList *attrs, const struct GNUNET_CRYPTO_EcdsaPublicKey *audience, RECLAIM_TICKETS_TicketResult cb, void *cb_cls)
Issue a new reclaim ticket, thereby authorizing the audience to access the set of provided attributes...
struct GNUNET_RECLAIM_AttributeList * attrs
Attributes.
Common type definitions for the identity provider service and API.
void RECLAIM_TICKETS_deinit(void)
Close handles and clean up.
static struct GNUNET_RECLAIM_Ticket ticket
Ticket to consume.
RECLAIM_TICKETS_TicketIter cb
Iter callback.
struct TicketRecordsEntry * next
DLL.
void RECLAIM_TICKETS_iteration_next(struct RECLAIM_TICKETS_Iterator *iter)
Continue ticket iteration.
unsigned int rd_count
Record count.
Handle to a consume operation.
int RECLAIM_TICKETS_init(const struct GNUNET_CONFIGURATION_Handle *c)
Initialize tickets component.
RECLAIM_TICKETS_RevokeCallback cb
Callback.
static struct GNUNET_IDENTITY_Handle * identity
Which namespace do we publish to? NULL if we do not publish to a namespace.
void(* RECLAIM_TICKETS_ConsumeCallback)(void *cls, const struct GNUNET_CRYPTO_EcdsaPublicKey *identity, const struct GNUNET_RECLAIM_AttributeList *attributes, const struct GNUNET_RECLAIM_AttestationList *attestations, int32_t success, const char *emsg)
Consume callback.
struct RECLAIM_TICKETS_ConsumeHandle * RECLAIM_TICKETS_consume(const struct GNUNET_CRYPTO_EcdsaPrivateKey *id, const struct GNUNET_RECLAIM_Ticket *ticket, RECLAIM_TICKETS_ConsumeCallback cb, void *cb_cls)
Consume a ticket.
void(* RECLAIM_TICKETS_TicketResult)(void *cls, struct GNUNET_RECLAIM_Ticket *ticket, int32_t success, const char *emsg)
Continuation called with ticket.
struct RECLAIM_TICKETS_RevokeHandle * RECLAIM_TICKETS_revoke(const struct GNUNET_RECLAIM_Ticket *ticket, const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity, RECLAIM_TICKETS_RevokeCallback cb, void *cb_cls)
Revoke a ticket.
configuration data
Definition: configuration.c:84
RECLAIM_TICKETS_ConsumeCallback cb
Callback.
Public ECC key (always for Curve25519) encoded in a format suitable for network transmission and ECDS...
struct TicketRecordsEntry * prev
DLL.
void(* RECLAIM_TICKETS_RevokeCallback)(void *cls, int32_t success)
Revocation callback.