33#define LOG(kind, ...) GNUNET_log_from (kind, "reclaim-api", __VA_ARGS__)
375 struct GNUNET_CLIENT_TransmitHandle *
th;
423 handle->reconnect_task = NULL;
438 handle->reconnect_backoff =
475 if (NULL != ait->
env)
526 uint32_t
r_id = ntohl (
msg->id);
536 res = ntohl (
msg->op_result);
538 "Received SUCCESS_RESPONSE with result %d\n",
543 emsg =
_ (
"failed to store record\n");
546 if (NULL !=
op->as_cb)
547 op->as_cb (
op->cls,
res, emsg);
570 msg_len = ntohs (
msg->header.
size);
571 attrs_len = ntohs (
msg->attrs_len);
572 key_len = ntohs (
msg->key_len);
573 pl_len = ntohs (
msg->presentations_len);
574 if (msg_len !=
sizeof(*
msg) + attrs_len + pl_len + key_len)
601 uint32_t
r_id = ntohl (
msg->id);
604 attrs_len = ntohs (
msg->attrs_len);
605 key_len = ntohs (
msg->key_len);
606 pl_len = ntohs (
msg->presentations_len);
621 read_ptr = (
char *) &
msg[1];
630 read_ptr += attrs_len;
632 if (NULL !=
op->atr_cb)
666 op->atr_cb (
op->cls, NULL, NULL, NULL);
695 msg_len = ntohs (
msg->header.
size);
696 attr_len = ntohs (
msg->attr_len);
697 key_len = ntohs (
msg->pkey_len);
698 if (msg_len !=
sizeof(*
msg) + attr_len + key_len)
724 uint32_t
r_id = ntohl (
msg->id);
727 attr_len = ntohs (
msg->attr_len);
728 key_len = ntohs (
msg->pkey_len);
731 for (it =
h->it_head; NULL != it; it = it->
next)
737 if ((NULL == it) && (NULL ==
op))
740 buf = (
char *) &
msg[1];
743 if ((NULL == it) && (NULL ==
op))
757 if (NULL !=
op->ar_cb)
758 op->ar_cb (
op->cls, NULL, NULL);
776 if (NULL != it->
proc)
781 if (NULL !=
op->ar_cb)
806 msg_len = ntohs (
msg->header.
size);
807 cred_len = ntohs (
msg->credential_len);
808 key_len = ntohs (
msg->key_len);
809 if (msg_len !=
sizeof(*
msg) + cred_len + key_len)
836 uint32_t
r_id = ntohl (
msg->id);
839 key_len = ntohs (
msg->key_len);
840 att_len = ntohs (
msg->credential_len);
844 for (it =
h->ait_head; NULL != it; it = it->
next)
850 if ((NULL == it) && (NULL ==
op))
853 buf = (
char *) &
msg[1];
865 if ((NULL == it) && (NULL ==
op))
879 if (NULL !=
op->at_cb)
880 op->at_cb (
op->cls, NULL, NULL);
893 if (NULL != it->
proc)
898 if (NULL !=
op->at_cb)
924 msg_len = ntohs (
msg->header.
size);
925 pres_len = ntohs (
msg->presentations_len);
926 tkt_len = ntohs (
msg->tkt_len);
927 rp_uri_len = ntohs (
msg->rp_uri_len);
928 if (msg_len !=
sizeof(*
msg) + pres_len + tkt_len + rp_uri_len)
951 uint32_t r_id = ntohl (
msg->id);
960 tkt_len = ntohs (
msg->tkt_len);
961 rp_uri_len = ntohs (
msg->rp_uri_len);
962 pres_len = ntohs (
msg->presentations_len);
964 if (
op->r_id == r_id)
966 for (it =
handle->ticket_it_head; NULL != it; it = it->
next)
967 if (it->
r_id == r_id)
969 if ((NULL ==
op) && (NULL == it))
971 buf = (
char*) &
msg[1];
989 if (NULL !=
op->ti_cb)
990 op->ti_cb (
op->cls, NULL, NULL);
994 if (NULL !=
op->ti_cb)
997 (0 < pres_len) ? presentation : NULL);
1004 else if (NULL != it)
1016 if (NULL != it->
tr_cb)
1038 uint32_t
r_id = ntohl (
msg->id);
1049 success = ntohl (
msg->success);
1051 if (NULL !=
op->rvk_cb)
1053 op->rvk_cb (
op->cls, success, NULL);
1188 op->r_id =
h->r_id_gen++;
1196 buf = (
char *) &sam[1];
1200 sam->
id = htonl (
op->r_id);
1231 op->r_id =
h->r_id_gen++;
1239 buf = (
char *) &dam[1];
1243 dam->
id = htonl (
op->r_id);
1273 op->r_id =
h->r_id_gen++;
1281 buf = (
char *) &sam[1];
1285 sam->
id = htonl (
op->r_id);
1316 op->r_id =
h->r_id_gen++;
1324 buf = (
char *) &dam[1];
1328 dam->
id = htonl (
op->r_id);
1355 rid =
h->r_id_gen++;
1372 msg->id = htonl (rid);
1432 rid =
h->r_id_gen++;
1450 msg->id = htonl (rid);
1517 op->r_id =
h->r_id_gen++;
1519 rpk_len = strlen (
rp) + 1;
1527 buf = (
char *) &tim[1];
1531 memcpy (buf,
rp, rpk_len);
1535 tim->
id = htonl (
op->r_id);
1563 op->r_id =
h->r_id_gen++;
1570 buf = (
char*) &ctm[1];
1576 ctm->
id = htonl (
op->r_id);
1602 rid =
h->r_id_gen++;
1619 msg->id = htonl (rid);
1705 rid =
h->r_id_gen++;
1717 msg->id = htonl (rid);
1720 buf = (
char*) &
msg[1];
struct GNUNET_MQ_MessageHandlers handlers[]
struct GNUNET_MessageHeader * msg
struct GNUNET_MQ_Envelope * env
static void error_cb(void *cls)
Function called if lookup fails.
static struct GNUNET_ARM_Operation * op
Current operation.
static struct GNUNET_ARM_Handle * h
Connection with ARM.
static struct GNUNET_CONFIGURATION_Handle * cfg
Our configuration.
static char * pkey
Public key of the zone to look in, in ASCII.
static char * res
Currently read line or NULL on EOF.
static struct GNUNET_IDENTITY_Handle * identity
Which namespace do we publish to? NULL if we do not publish to a namespace.
static struct GNUNET_TIME_Relative exp_interval
Attribute expiration interval.
static struct GNUNET_RECLAIM_Ticket ticket
Ticket to consume.
static char * rp
Relying party.
static struct GNUNET_RECLAIM_Identifier credential
Credential ID.
static struct GNUNET_VPN_Handle * handle
Handle to vpn service.
Constants for network protocols.
Identity attribute definitions.
reclaim service; implements identity and personal data sharing for GNUnet
struct GNUNET_MQ_Handle * GNUNET_CLIENT_connect(const struct GNUNET_CONFIGURATION_Handle *cfg, const char *service_name, const struct GNUNET_MQ_MessageHandler *handlers, GNUNET_MQ_ErrorHandler error_handler, void *error_handler_cls)
Create a message queue to connect to a GNUnet service.
#define GNUNET_CONTAINER_DLL_remove(head, tail, element)
Remove an element from a DLL.
#define GNUNET_CONTAINER_DLL_insert_tail(head, tail, element)
Insert an element at the tail of a DLL.
#define GNUNET_log(kind,...)
ssize_t GNUNET_CRYPTO_private_key_get_length(const struct GNUNET_CRYPTO_PrivateKey *key)
Get the compacted length of a GNUNET_CRYPTO_PrivateKey.
uint64_t GNUNET_htonll(uint64_t n)
Convert unsigned 64-bit integer to network byte order.
ssize_t GNUNET_CRYPTO_write_private_key_to_buffer(const struct GNUNET_CRYPTO_PrivateKey *key, void *buffer, size_t len)
Writes a GNUNET_CRYPTO_PrivateKey to a compact buffer.
enum GNUNET_GenericReturnValue GNUNET_CRYPTO_read_public_key_from_buffer(const void *buffer, size_t len, struct GNUNET_CRYPTO_PublicKey *key, size_t *read)
Reads a GNUNET_CRYPTO_PublicKey from a compact buffer.
uint16_t size
The length of the struct (in bytes, including the length field itself), in big-endian format.
#define GNUNET_assert(cond)
Use this for fatal errors that cannot be handled.
#define GNUNET_break(cond)
Use this for internal assertion violations that are not fatal (can be handled) but should not occur.
@ GNUNET_ERROR_TYPE_DEBUG
#define GNUNET_new(type)
Allocate a struct or union of the given type.
#define GNUNET_free(ptr)
Wrapper around free.
void GNUNET_MQ_send_copy(struct GNUNET_MQ_Handle *mq, const struct GNUNET_MQ_Envelope *ev)
Send a copy of a message with the given message queue.
GNUNET_MQ_Error
Error codes for the queue.
void GNUNET_MQ_send(struct GNUNET_MQ_Handle *mq, struct GNUNET_MQ_Envelope *ev)
Send a message with the given message queue.
#define GNUNET_MQ_handler_end()
End-marker for the handlers array.
void GNUNET_MQ_discard(struct GNUNET_MQ_Envelope *mqm)
Discard the message queue message, free all allocated resources.
#define GNUNET_MQ_msg_extra(mvar, esize, type)
Allocate an envelope, with extra space allocated after the space needed by the message struct.
#define GNUNET_MQ_msg(mvar, type)
Allocate a GNUNET_MQ_Envelope.
#define GNUNET_MQ_hd_var_size(name, code, str, ctx)
#define GNUNET_MQ_hd_fixed_size(name, code, str, ctx)
void GNUNET_MQ_destroy(struct GNUNET_MQ_Handle *mq)
Destroy the message queue.
#define GNUNET_MESSAGE_TYPE_RECLAIM_CONSUME_TICKET_RESULT
#define GNUNET_MESSAGE_TYPE_RECLAIM_SUCCESS_RESPONSE
#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_RESULT
#define GNUNET_MESSAGE_TYPE_RECLAIM_CREDENTIAL_DELETE
#define GNUNET_MESSAGE_TYPE_RECLAIM_CREDENTIAL_ITERATION_STOP
#define GNUNET_MESSAGE_TYPE_RECLAIM_ISSUE_TICKET
#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_STORE
#define GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT
#define GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_ITERATION_START
#define GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_ITERATION_STOP
#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_ITERATION_STOP
#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_ITERATION_NEXT
#define GNUNET_MESSAGE_TYPE_RECLAIM_CREDENTIAL_RESULT
#define GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_ITERATION_NEXT
#define GNUNET_MESSAGE_TYPE_RECLAIM_CREDENTIAL_ITERATION_NEXT
#define GNUNET_MESSAGE_TYPE_RECLAIM_REVOKE_TICKET
#define GNUNET_MESSAGE_TYPE_RECLAIM_CONSUME_TICKET
#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_ITERATION_START
#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_DELETE
#define GNUNET_MESSAGE_TYPE_RECLAIM_CREDENTIAL_ITERATION_START
#define GNUNET_MESSAGE_TYPE_RECLAIM_CREDENTIAL_STORE
#define GNUNET_MESSAGE_TYPE_RECLAIM_REVOKE_TICKET_RESULT
#define GNUNET_RECLAIM_id_is_equal(a, b)
void GNUNET_RECLAIM_attribute_list_destroy(struct GNUNET_RECLAIM_AttributeList *attrs)
Destroy claim list.
struct GNUNET_RECLAIM_PresentationList * GNUNET_RECLAIM_presentation_list_deserialize(const char *data, size_t data_size)
Deserialize a presentation list.
#define GNUNET_RECLAIM_id_is_zero(a)
struct GNUNET_RECLAIM_AttributeList * GNUNET_RECLAIM_attribute_list_deserialize(const char *data, size_t data_size)
Deserialize an attribute list.
void GNUNET_RECLAIM_presentation_list_destroy(struct GNUNET_RECLAIM_PresentationList *presentations)
Destroy presentations list.
size_t GNUNET_RECLAIM_attribute_serialize_get_size(const struct GNUNET_RECLAIM_Attribute *attr)
Get required size for serialization buffer.
size_t GNUNET_RECLAIM_attribute_list_serialize(const struct GNUNET_RECLAIM_AttributeList *attrs, char *result)
Serialize an attribute list.
ssize_t GNUNET_RECLAIM_attribute_deserialize(const char *data, size_t data_size, struct GNUNET_RECLAIM_Attribute **attr)
Deserialize an attribute.
size_t GNUNET_RECLAIM_credential_serialize(const struct GNUNET_RECLAIM_Credential *credential, char *result)
Serialize an credential.
struct GNUNET_RECLAIM_Credential * GNUNET_RECLAIM_credential_deserialize(const char *data, size_t data_size)
Deserialize an credential.
size_t GNUNET_RECLAIM_attribute_list_serialize_get_size(const struct GNUNET_RECLAIM_AttributeList *attrs)
Get required size for serialization buffer.
size_t GNUNET_RECLAIM_credential_serialize_get_size(const struct GNUNET_RECLAIM_Credential *credential)
Get required size for serialization buffer.
size_t GNUNET_RECLAIM_attribute_serialize(const struct GNUNET_RECLAIM_Attribute *attr, char *result)
Serialize an attribute.
void GNUNET_RECLAIM_disconnect(struct GNUNET_RECLAIM_Handle *h)
Disconnect from service.
struct GNUNET_RECLAIM_Operation * GNUNET_RECLAIM_credential_store(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *pkey, const struct GNUNET_RECLAIM_Credential *credential, const struct GNUNET_TIME_Relative *exp_interval, GNUNET_RECLAIM_ContinuationWithStatus cont, void *cont_cls)
Store a credential.
void(* GNUNET_RECLAIM_ContinuationWithStatus)(void *cls, int32_t success, const char *emsg)
Continuation called to notify client about result of the operation.
void GNUNET_RECLAIM_ticket_iteration_next(struct GNUNET_RECLAIM_TicketIterator *it)
Calls the ticket processor specified in GNUNET_RECLAIM_ticket_iteration_start for the next record.
struct GNUNET_RECLAIM_Operation * GNUNET_RECLAIM_ticket_consume(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_RECLAIM_Ticket *ticket, const char *rp_uri, GNUNET_RECLAIM_AttributeTicketResult cb, void *cb_cls)
Consumes an issued ticket.
void GNUNET_RECLAIM_cancel(struct GNUNET_RECLAIM_Operation *op)
Cancel an identity provider operation.
void GNUNET_RECLAIM_get_attributes_stop(struct GNUNET_RECLAIM_AttributeIterator *it)
Stops iteration and releases the handle for further calls.
void GNUNET_RECLAIM_get_credentials_next(struct GNUNET_RECLAIM_CredentialIterator *ait)
Calls the record processor specified in GNUNET_RECLAIM_get_credentials_start for the next record.
struct GNUNET_RECLAIM_AttributeIterator * GNUNET_RECLAIM_get_attributes_start(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *identity, GNUNET_SCHEDULER_TaskCallback error_cb, void *error_cb_cls, GNUNET_RECLAIM_AttributeResult proc, void *proc_cls, GNUNET_SCHEDULER_TaskCallback finish_cb, void *finish_cb_cls)
List all attributes for a local identity.
void(* GNUNET_RECLAIM_TicketCallback)(void *cls, const struct GNUNET_RECLAIM_Ticket *ticket, const char *rp_uri)
Method called when a token has been issued.
void(* GNUNET_RECLAIM_AttributeResult)(void *cls, const struct GNUNET_CRYPTO_PublicKey *identity, const struct GNUNET_RECLAIM_Attribute *attr)
Callback used to notify the client of attribute results.
void(* GNUNET_RECLAIM_CredentialResult)(void *cls, const struct GNUNET_CRYPTO_PublicKey *identity, const struct GNUNET_RECLAIM_Credential *credential)
Callback used to notify the client of credential results.
struct GNUNET_RECLAIM_Operation * GNUNET_RECLAIM_ticket_revoke(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *identity, const struct GNUNET_RECLAIM_Ticket *ticket, GNUNET_RECLAIM_ContinuationWithStatus cb, void *cb_cls)
Revoked an issued ticket.
void GNUNET_RECLAIM_get_attributes_next(struct GNUNET_RECLAIM_AttributeIterator *it)
Calls the record processor specified in GNUNET_RECLAIM_get_attributes_start for the next record.
void(* GNUNET_RECLAIM_IssueTicketCallback)(void *cls, const struct GNUNET_RECLAIM_Ticket *ticket, const struct GNUNET_RECLAIM_PresentationList *presentations)
Method called when a token has been issued.
struct GNUNET_RECLAIM_Handle * GNUNET_RECLAIM_connect(const struct GNUNET_CONFIGURATION_Handle *cfg)
Connect to the reclaim service.
struct GNUNET_RECLAIM_Operation * GNUNET_RECLAIM_attribute_store(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *pkey, const struct GNUNET_RECLAIM_Attribute *attr, const struct GNUNET_TIME_Relative *exp_interval, GNUNET_RECLAIM_ContinuationWithStatus cont, void *cont_cls)
Store an attribute.
struct GNUNET_RECLAIM_Operation * GNUNET_RECLAIM_attribute_delete(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *pkey, const struct GNUNET_RECLAIM_Attribute *attr, GNUNET_RECLAIM_ContinuationWithStatus cont, void *cont_cls)
Delete an attribute.
void(* GNUNET_RECLAIM_AttributeTicketResult)(void *cls, const struct GNUNET_CRYPTO_PublicKey *identity, const struct GNUNET_RECLAIM_Attribute *attr, const struct GNUNET_RECLAIM_Presentation *presentation)
Callback used to notify the client of attribute results.
struct GNUNET_RECLAIM_Operation * GNUNET_RECLAIM_ticket_issue(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *iss, const char *rp, const struct GNUNET_RECLAIM_AttributeList *attrs, GNUNET_RECLAIM_IssueTicketCallback cb, void *cb_cls)
Issues a ticket to a relying party.
struct GNUNET_RECLAIM_TicketIterator * GNUNET_RECLAIM_ticket_iteration_start(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *identity, GNUNET_SCHEDULER_TaskCallback error_cb, void *error_cb_cls, GNUNET_RECLAIM_TicketCallback proc, void *proc_cls, GNUNET_SCHEDULER_TaskCallback finish_cb, void *finish_cb_cls)
Lists all tickets that have been issued to remote identities (relying parties)
void GNUNET_RECLAIM_get_credentials_stop(struct GNUNET_RECLAIM_CredentialIterator *ait)
Stops iteration and releases the handle for further calls.
struct GNUNET_RECLAIM_Operation * GNUNET_RECLAIM_credential_delete(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *pkey, const struct GNUNET_RECLAIM_Credential *attr, GNUNET_RECLAIM_ContinuationWithStatus cont, void *cont_cls)
Delete a credential.
void GNUNET_RECLAIM_ticket_iteration_stop(struct GNUNET_RECLAIM_TicketIterator *it)
Stops iteration and releases the handle for further calls.
struct GNUNET_RECLAIM_CredentialIterator * GNUNET_RECLAIM_get_credentials_start(struct GNUNET_RECLAIM_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *identity, GNUNET_SCHEDULER_TaskCallback error_cb, void *error_cb_cls, GNUNET_RECLAIM_CredentialResult proc, void *proc_cls, GNUNET_SCHEDULER_TaskCallback finish_cb, void *finish_cb_cls)
List all credentials for a local identity.
void * GNUNET_SCHEDULER_cancel(struct GNUNET_SCHEDULER_Task *task)
Cancel the task with the specified identifier.
void(* GNUNET_SCHEDULER_TaskCallback)(void *cls)
Signature of the main function of a task.
struct GNUNET_SCHEDULER_Task * GNUNET_SCHEDULER_add_delayed(struct GNUNET_TIME_Relative delay, GNUNET_SCHEDULER_TaskCallback task, void *task_cls)
Schedule a new task to be run with a specified delay.
#define GNUNET_TIME_STD_BACKOFF(r)
Perform our standard exponential back-off calculation, starting at 1 ms and then going by a factor of...
Common type definitions for the identity provider service and API.
static void handle_ticket_result(void *cls, const struct TicketResultMessage *msg)
Handle an incoming message of type GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT.
static int check_credential_result(void *cls, const struct CredentialResultMessage *msg)
Handle an incoming message of type #GNUNET_MESSAGE_TYPE_RECLAIM_credential_RESULT.
static int check_ticket_result(void *cls, const struct TicketResultMessage *msg)
Handle an incoming message of type GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT.
static void free_it(struct GNUNET_RECLAIM_AttributeIterator *it)
Free it.
static void force_reconnect(struct GNUNET_RECLAIM_Handle *handle)
Disconnect from service and then reconnect.
static void handle_attribute_result(void *cls, const struct AttributeResultMessage *msg)
Handle an incoming message of type GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_RESULT.
static int check_attribute_result(void *cls, const struct AttributeResultMessage *msg)
Handle an incoming message of type GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_RESULT.
static void mq_error_handler(void *cls, enum GNUNET_MQ_Error error)
Generic error handler, called with the appropriate error code and the same closure specified at the c...
static void free_ait(struct GNUNET_RECLAIM_CredentialIterator *ait)
Free it.
static void handle_revoke_ticket_result(void *cls, const struct RevokeTicketResultMessage *msg)
Handle an incoming message of type GNUNET_MESSAGE_TYPE_RECLAIM_REVOKE_TICKET_RESULT.
static int check_consume_ticket_result(void *cls, const struct ConsumeTicketResultMessage *msg)
Handle an incoming message of type GNUNET_MESSAGE_TYPE_RECLAIM_CONSUME_TICKET_RESULT.
static void reconnect(struct GNUNET_RECLAIM_Handle *h)
Try again to connect to the service.
static void free_op(struct GNUNET_RECLAIM_Operation *op)
Free op.
static void handle_credential_result(void *cls, const struct CredentialResultMessage *msg)
Handle an incoming message of type #GNUNET_MESSAGE_TYPE_RECLAIM_credential_RESULT.
static void handle_success_response(void *cls, const struct SuccessResultMessage *msg)
Handle an incoming message of type GNUNET_MESSAGE_TYPE_RECLAIM_SUCCESS_RESPONSE.
static void handle_consume_ticket_result(void *cls, const struct ConsumeTicketResultMessage *msg)
Handle an incoming message of type GNUNET_MESSAGE_TYPE_RECLAIM_CONSUME_TICKET_RESULT.
static void reconnect_task(void *cls)
Reconnect.
Use to delete an identity attribute.
uint16_t key_len
The length of the private key.
uint16_t attr_len
The length of the attribute.
uint32_t id
Unique identifier for this request (for key collisions).
Ask for next result of attribute iteration for the given operation.
Start a attribute iteration for the given identity.
uint16_t key_len
The length of the private key.
Stop attribute iteration for the given operation.
Attribute is returned from the idp.
Use to store an identity attribute.
uint64_t exp
The expiration interval of the attribute.
uint16_t key_len
The length of the private key.
uint16_t attr_len
The length of the attribute.
uint32_t id
Unique identifier for this request (for key collisions).
uint32_t id
Unique identifier for this request (for key collisions).
uint16_t rp_uri_len
RP URI length.
uint16_t tkt_len
The length of the ticket.
Attribute list is returned from the idp.
Ask for next result of credential iteration for the given operation.
Start a credential iteration for the given identity.
uint16_t key_len
The length of the private key.
Stop credential iteration for the given operation.
Credential is returned from the idp.
struct GNUNET_MQ_Handle * mq
Our connection to the ARM service.
const struct GNUNET_CONFIGURATION_Handle * cfg
The configuration that we are using.
struct GNUNET_SCHEDULER_Task * reconnect_task
ID of the reconnect task (if any).
struct GNUNET_ARM_Operation * next
This is a doubly-linked list.
struct GNUNET_ARM_Handle * h
ARM handle.
A private key for an identity as per LSD0001.
An identity key as per LSD0001.
Handle to a message queue.
Message handler for a specific message type.
Handle for a attribute iterator operation.
struct GNUNET_RECLAIM_Handle * h
Main handle to access the service.
struct GNUNET_RECLAIM_AttributeIterator * prev
Kept in a DLL.
void * error_cb_cls
Closure for error_cb.
GNUNET_RECLAIM_AttributeResult proc
The continuation to call with the results.
struct GNUNET_MQ_Envelope * env
Envelope of the message to send to the service, if not yet sent.
struct GNUNET_CRYPTO_PrivateKey identity
Private key of the zone.
void * proc_cls
Closure for proc.
GNUNET_SCHEDULER_TaskCallback error_cb
Function to call on errors.
GNUNET_SCHEDULER_TaskCallback finish_cb
Function to call on completion.
struct GNUNET_RECLAIM_AttributeIterator * next
Kept in a DLL.
uint32_t r_id
The operation id this zone iteration operation has.
void * finish_cb_cls
Closure for finish_cb.
struct GNUNET_RECLAIM_Attribute * attribute
The attribute claim.
struct GNUNET_RECLAIM_AttributeListEntry * next
DLL.
A list of GNUNET_RECLAIM_Attribute structures.
struct GNUNET_RECLAIM_AttributeListEntry * list_head
List head.
struct GNUNET_RECLAIM_Identifier credential
Referenced ID of credential (may be GNUNET_RECLAIM_ID_ZERO if self-creded)
Handle for a credential iterator operation.
GNUNET_SCHEDULER_TaskCallback error_cb
Function to call on errors.
GNUNET_SCHEDULER_TaskCallback finish_cb
Function to call on completion.
void * proc_cls
Closure for proc.
GNUNET_RECLAIM_CredentialResult proc
The continuation to call with the results.
void * finish_cb_cls
Closure for finish_cb.
struct GNUNET_RECLAIM_CredentialIterator * prev
Kept in a DLL.
uint32_t r_id
The operation id this zone iteration operation has.
struct GNUNET_RECLAIM_CredentialIterator * next
Kept in a DLL.
struct GNUNET_MQ_Envelope * env
Envelope of the message to send to the service, if not yet sent.
struct GNUNET_CRYPTO_PrivateKey identity
Private key of the zone.
struct GNUNET_RECLAIM_Handle * h
Main handle to access the service.
void * error_cb_cls
Closure for error_cb.
uint32_t r_id_gen
Request Id generator.
struct GNUNET_TIME_Relative reconnect_backoff
Time for next connect retry.
struct GNUNET_RECLAIM_AttributeIterator * it_tail
Tail of active iterations.
struct GNUNET_RECLAIM_AttributeIterator * it_head
Head of active iterations.
struct GNUNET_RECLAIM_CredentialIterator * ait_head
Head of active iterations.
struct GNUNET_RECLAIM_CredentialIterator * ait_tail
Tail of active iterations.
struct GNUNET_RECLAIM_TicketIterator * ticket_it_head
Head of active iterations.
int in_receive
Are we polling for incoming messages right now?
struct GNUNET_CLIENT_Connection * client
Socket (if available).
struct GNUNET_RECLAIM_TicketIterator * ticket_it_tail
Tail of active iterations.
const struct GNUNET_CONFIGURATION_Handle * cfg
Configuration to use.
struct GNUNET_RECLAIM_Operation * op_head
Head of active operations.
struct GNUNET_MQ_Handle * mq
Connection to service (if available).
struct GNUNET_RECLAIM_Operation * op_tail
Tail of active operations.
struct GNUNET_SCHEDULER_Task * reconnect_task
Task doing exponential back-off trying to reconnect.
void * cb_cls
Closure for 'cb'.
struct GNUNET_CLIENT_TransmitHandle * th
Currently pending transmission request, or NULL for none.
Handle for an operation with the service.
GNUNET_RECLAIM_CredentialResult at_cb
Credential result callback.
struct GNUNET_RECLAIM_Operation * prev
We keep operations in a DLL.
struct GNUNET_MQ_Envelope * env
Envelope with the message for this queue entry.
struct GNUNET_RECLAIM_Operation * next
We keep operations in a DLL.
GNUNET_RECLAIM_ContinuationWithStatus as_cb
Continuation to invoke after attribute store call.
GNUNET_RECLAIM_ContinuationWithStatus rvk_cb
Revocation result callback.
const struct GNUNET_MessageHeader * msg
Message to send to the service.
struct GNUNET_RECLAIM_Handle * h
Main handle.
GNUNET_RECLAIM_AttributeTicketResult atr_cb
Attribute result callback.
GNUNET_RECLAIM_TicketCallback tr_cb
Ticket result callback.
GNUNET_RECLAIM_AttributeResult ar_cb
Attribute result callback.
GNUNET_RECLAIM_IssueTicketCallback ti_cb
Ticket issue result callback.
void * cls
Closure for cont or cb.
struct GNUNET_RECLAIM_Presentation * presentation
The credential.
struct GNUNET_RECLAIM_PresentationListEntry * next
DLL.
A list of GNUNET_RECLAIM_Presentation structures.
struct GNUNET_RECLAIM_PresentationListEntry * list_head
List head.
struct GNUNET_RECLAIM_Identifier credential_id
The credential id of which this is a presentation.
Handle for a ticket iterator operation.
GNUNET_RECLAIM_TicketCallback tr_cb
The continuation to call with the results.
uint32_t r_id
The operation id this zone iteration operation has.
void * error_cb_cls
Closure for error_cb.
struct GNUNET_RECLAIM_Handle * h
Main handle to access the idp.
GNUNET_SCHEDULER_TaskCallback finish_cb
Function to call on completion.
void * finish_cb_cls
Closure for finish_cb.
struct GNUNET_MQ_Envelope * env
Envelope of the message to send to the service, if not yet sent.
void * cls
Closure for tr_cb.
struct GNUNET_RECLAIM_TicketIterator * prev
Kept in a DLL.
GNUNET_SCHEDULER_TaskCallback error_cb
Function to call on errors.
struct GNUNET_RECLAIM_TicketIterator * next
Kept in a DLL.
The authorization ticket.
char gns_name[63 *2+2]
The ticket.
Entry in list of pending tasks.
Time for relative time used by GNUnet, in microseconds.
uint64_t rel_value_us
The actual value.
struct GNUNET_MQ_Handle * mq
Connection to VPN service.
uint32_t id
Unique identifier for this request (for key collisions).
uint16_t rp_uri_len
The length of the relying party URI.
uint16_t key_len
The length of the identity private key.
uint16_t attr_len
length of serialized attribute list
uint16_t key_len
The length of the private key.
uint16_t tkt_len
The length of the ticket.
Attribute store/delete response message.
Ask for next result of ticket iteration for the given operation.
Start a ticket iteration for the given identity.
uint16_t key_len
The length of the private key.
Stop ticket iteration for the given operation.