32 #ifndef GNUNET_ABD_SERVICE_H 33 #define GNUNET_ABD_SERVICE_H 266 unsigned int d_count,
270 unsigned int c_count,
322 const char *issuer_attribute,
324 uint32_t delegate_count,
335 const char *issuer_attribute,
358 const char *attribute,
360 const char *delegated_attribute,
377 const char *attribute,
394 const char *iss_attr,
395 const char *sub_attr,
struct GNUNET_ABD_Handle * GNUNET_ABD_connect(const struct GNUNET_CONFIGURATION_Handle *cfg)
Initialize the connection with the Credential service.
static const struct GNUNET_CONFIGURATION_Handle * cfg
Configuration we are using.
static struct GNUNET_GNS_LookupWithTldRequest * lr
Handle to lookup request.
uint32_t issuer_attribute_len
Length of the attribute.
uint32_t subject_attribute_len
Length of attribute, may be 0.
void(* GNUNET_ABD_IntermediateResultProcessor)(void *cls, struct GNUNET_ABD_Delegation *delegation, bool is_bw)
void * proc2_cls
verify_proc2 closure
GNUNET_ABD_AlgoDirectionFlags
struct GNUNET_ABD_Delegate * GNUNET_ABD_delegate_issue(const struct GNUNET_CRYPTO_EcdsaPrivateKey *issuer, struct GNUNET_CRYPTO_EcdsaPublicKey *subject, const char *iss_attr, const char *sub_attr, struct GNUNET_TIME_Absolute *expiration)
Issue an attribute to a subject.
The attribute delegation record.
struct GNUNET_ABD_Request * GNUNET_ABD_collect(struct GNUNET_ABD_Handle *handle, const struct GNUNET_CRYPTO_EcdsaPublicKey *issuer_key, const char *issuer_attribute, const struct GNUNET_CRYPTO_EcdsaPrivateKey *subject_key, enum GNUNET_ABD_AlgoDirectionFlags direction, GNUNET_ABD_CredentialResultProcessor proc, void *proc_cls, GNUNET_ABD_IntermediateResultProcessor, void *proc2_cls)
Performs attribute collection.
Private ECC key encoded for transmission.
Handle to a verify request.
void * proc_cls
verify_proc closure
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32.
enum GNUNET_ABD_AlgoDirectionFlags direction
API enum, filled and passed for collect/verify.
void(* GNUNET_ABD_DelegateResultProcessor)(void *cls, uint32_t success)
Iterator called on obtained result for an attribute delegation.
void(* GNUNET_ABD_CredentialResultProcessor)(void *cls, unsigned int d_count, struct GNUNET_ABD_Delegation *delegation_chain, unsigned int c_count, struct GNUNET_ABD_Delegate *delegte)
Iterator called on obtained result for an attribute verification.
uint32_t subject_attribute_len
Length of the subject attribute.
an ECC signature using ECDSA
uint64_t data_size
Length of delegation sets.
static struct GNUNET_DNS_Handle * handle
Handle to transport service.
const char * subject_attribute
The subject attribute.
The attribute delegation record.
static char * expiration
Credential TTL.
GNUNET_ABD_CredentialFlags
struct GNUNET_ABD_Request * GNUNET_ABD_add_delegation(struct GNUNET_ABD_Handle *handle, struct GNUNET_IDENTITY_Ego *issuer, const char *attribute, struct GNUNET_CRYPTO_EcdsaPublicKey *subject, const char *delegated_attribute, GNUNET_ABD_DelegateResultProcessor proc, void *proc_cls)
Delegate an attribute.
static char * issuer_key
Issuer pubkey string.
uint32_t issuer_attribute_len
Length of the issuer attribute.
Connection to the ABD service.
const char * subject_attribute
The attribute.
const char * subject_attribute
The subject attribute.
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32;.
uint32_t subject_attribute_len
static char * subject
Subject pubkey string.
void GNUNET_ABD_request_cancel(struct GNUNET_ABD_Request *lr)
Cancel pending lookup request.
The attribute delegation record.
Public ECC key (always for Curve25519) encoded in a format suitable for network transmission and ECDS...
void(* GNUNET_ABD_RemoveDelegateResultProcessor)(void *cls, uint32_t success)
Iterator called on obtained result for an attribute delegation removal.
struct GNUNET_ABD_Request * GNUNET_ABD_remove_delegation(struct GNUNET_ABD_Handle *handle, struct GNUNET_IDENTITY_Ego *issuer, const char *attribute, GNUNET_ABD_RemoveDelegateResultProcessor proc, void *proc_cls)
Remove a delegation.
Time for absolute times used by GNUnet, in microseconds.
uint32_t set_count
Number of delegation sets in this record.
void GNUNET_ABD_disconnect(struct GNUNET_ABD_Handle *handle)
Shutdown connection with the Credentail service.
const char * issuer_attribute
The attribute.
const char * issuer_attribute
The issuer attribute.
struct GNUNET_ABD_Request * GNUNET_ABD_verify(struct GNUNET_ABD_Handle *handle, const struct GNUNET_CRYPTO_EcdsaPublicKey *issuer_key, const char *issuer_attribute, const struct GNUNET_CRYPTO_EcdsaPublicKey *subject_key, uint32_t delegate_count, const struct GNUNET_ABD_Delegate *delegates, enum GNUNET_ABD_AlgoDirectionFlags direction, GNUNET_ABD_CredentialResultProcessor proc, void *proc_cls, GNUNET_ABD_IntermediateResultProcessor, void *proc2_cls)
Performs attribute verification.
uint32_t subject_attribute_len
Length of the attribute.