GNUnet 0.21.0
gnunet_identity_service.h
Go to the documentation of this file.
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2013--2023 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
45#ifndef GNUNET_IDENTITY_SERVICE_H
46#define GNUNET_IDENTITY_SERVICE_H
47
48#include "gnunet_common.h"
49#ifdef __cplusplus
50extern "C" {
51#if 0 /* keep Emacsens' auto-indent happy */
52}
53#endif
54#endif
55
56
57#include "gnunet_util_lib.h"
58
59
63#define GNUNET_IDENTITY_VERSION 0x00000100
64
65
70
75
80
81
88const struct GNUNET_CRYPTO_PrivateKey *
90
91
99
100
107void
110
111
118const char*
120
121
155typedef void
156(*GNUNET_IDENTITY_Callback) (void *cls,
157 struct GNUNET_IDENTITY_Ego *ego,
158 void **ctx,
159 const char *name);
160
161
173 void *cb_cls);
174
175
187 const char *service_name,
189 void *cb_cls);
190
191
199typedef void
201 enum GNUNET_ErrorCode ec);
202
203
216 const char *service_name,
217 struct GNUNET_IDENTITY_Ego *ego,
219 void *cont_cls);
220
221
227void
229
230
239typedef void
241 void *cls,
242 const struct GNUNET_CRYPTO_PrivateKey *pk,
243 enum GNUNET_ErrorCode ec);
244
245
259 const char *name,
260 const struct GNUNET_CRYPTO_PrivateKey *privkey,
261 enum GNUNET_CRYPTO_KeyType ktype,
263 void *cont_cls);
264
265
278 const char *old_name,
279 const char *new_name,
281 void *cb_cls);
282
283
295 const char *name,
297 void *cb_cls);
298
299
308void
310
311
312/* ************* convenience API to lookup an ego ***************** */
313
320typedef void
322 struct GNUNET_IDENTITY_Ego *ego);
323
328
329
341 const char *name,
343 void *cb_cls);
344
345
351void
353
361typedef void
363 void *cls,
364 const struct GNUNET_CRYPTO_PrivateKey *priv,
365 const char *ego_name);
366
367
372
373
388 const struct GNUNET_CONFIGURATION_Handle *cfg,
389 const char *suffix,
391 void *cb_cls);
392
393
399void
402
403
404#if 0 /* keep Emacsens' auto-indent happy */
405{
406#endif
407#ifdef __cplusplus
408}
409#endif
410
411/* ifndef GNUNET_IDENTITY_SERVICE_H */
412#endif
413 /* end of group identity */
415 /* end of group addition */
417
418/* end of gnunet_identity_service.h */
static struct GNUNET_ARM_Operation * op
Current operation.
Definition: gnunet-arm.c:144
static struct GNUNET_ARM_Handle * h
Connection with ARM.
Definition: gnunet-arm.c:99
static struct GNUNET_CONFIGURATION_Handle * cfg
Our configuration.
Definition: gnunet-arm.c:109
static struct GNUNET_FS_Handle * ctx
struct GNUNET_CRYPTO_PrivateKey pk
Private key from command line option, or NULL.
char * ego_name
static char * name
Name (label) of the records to list.
static struct GNUNET_IDENTITY_EgoLookup * el
Handle to identity lookup.
static char * service_name
Option -s: service name (hash to get service descriptor)
Definition: gnunet-vpn.c:50
commonly used definitions; globals in this file are exempt from the rule that the module name ("commo...
struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_create(struct GNUNET_IDENTITY_Handle *id, const char *name, const struct GNUNET_CRYPTO_PrivateKey *privkey, enum GNUNET_CRYPTO_KeyType ktype, GNUNET_IDENTITY_CreateContinuation cont, void *cont_cls)
Create a new ego with the given name.
Definition: identity_api.c:561
struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_rename(struct GNUNET_IDENTITY_Handle *id, const char *old_name, const char *new_name, GNUNET_IDENTITY_Continuation cb, void *cb_cls)
Renames an existing ego.
Definition: identity_api.c:621
struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_set(struct GNUNET_IDENTITY_Handle *id, const char *service_name, struct GNUNET_IDENTITY_Ego *ego, GNUNET_IDENTITY_Continuation cont, void *cont_cls)
Set the preferred/default ego for a service.
struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_get(struct GNUNET_IDENTITY_Handle *id, const char *service_name, GNUNET_IDENTITY_Callback cb, void *cb_cls)
Obtain the ego that is currently preferred/default for a service.
void(* GNUNET_IDENTITY_CreateContinuation)(void *cls, const struct GNUNET_CRYPTO_PrivateKey *pk, enum GNUNET_ErrorCode ec)
Function called once the requested operation has been completed.
const struct GNUNET_CRYPTO_PrivateKey * GNUNET_IDENTITY_ego_get_private_key(const struct GNUNET_IDENTITY_Ego *ego)
Obtain the ECC key associated with a ego.
Definition: identity_api.c:517
const char * GNUNET_IDENTITY_ego_get_name(const struct GNUNET_IDENTITY_Ego *ego)
Obtain the name associated with an ego.
struct GNUNET_IDENTITY_EgoSuffixLookup * GNUNET_IDENTITY_ego_lookup_by_suffix(const struct GNUNET_CONFIGURATION_Handle *cfg, const char *suffix, GNUNET_IDENTITY_EgoSuffixCallback cb, void *cb_cls)
Obtain the ego with the maximum suffix match between the ego's name and the given domain name suffix.
struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_delete(struct GNUNET_IDENTITY_Handle *id, const char *name, GNUNET_IDENTITY_Continuation cb, void *cb_cls)
Delete an existing ego.
Definition: identity_api.c:674
struct GNUNET_IDENTITY_EgoLookup * GNUNET_IDENTITY_ego_lookup(const struct GNUNET_CONFIGURATION_Handle *cfg, const char *name, GNUNET_IDENTITY_EgoCallback cb, void *cb_cls)
Lookup an ego by name.
void(* GNUNET_IDENTITY_Callback)(void *cls, struct GNUNET_IDENTITY_Ego *ego, void **ctx, const char *name)
Method called to inform about the egos of this peer.
struct GNUNET_IDENTITY_Handle * GNUNET_IDENTITY_connect(const struct GNUNET_CONFIGURATION_Handle *cfg, GNUNET_IDENTITY_Callback cb, void *cb_cls)
Connect to the identity service.
Definition: identity_api.c:487
void(* GNUNET_IDENTITY_EgoSuffixCallback)(void *cls, const struct GNUNET_CRYPTO_PrivateKey *priv, const char *ego_name)
Function called with the result.
void GNUNET_IDENTITY_cancel(struct GNUNET_IDENTITY_Operation *op)
Cancel an identity operation.
Definition: identity_api.c:715
void GNUNET_IDENTITY_ego_lookup_cancel(struct GNUNET_IDENTITY_EgoLookup *el)
Abort ego lookup attempt.
void(* GNUNET_IDENTITY_EgoCallback)(void *cls, struct GNUNET_IDENTITY_Ego *ego)
Function called with the result.
void GNUNET_IDENTITY_disconnect(struct GNUNET_IDENTITY_Handle *h)
Disconnect from identity service.
Definition: identity_api.c:732
struct GNUNET_IDENTITY_Ego * GNUNET_IDENTITY_ego_get_anonymous(void)
Obtain the ego representing 'anonymous' users.
Definition: identity_api.c:157
void GNUNET_IDENTITY_ego_lookup_by_suffix_cancel(struct GNUNET_IDENTITY_EgoSuffixLookup *el)
Abort ego suffix lookup attempt.
void GNUNET_IDENTITY_ego_get_public_key(struct GNUNET_IDENTITY_Ego *ego, struct GNUNET_CRYPTO_PublicKey *pk)
Get the identifier (public key) of an ego.
Definition: identity_api.c:529
void(* GNUNET_IDENTITY_Continuation)(void *cls, enum GNUNET_ErrorCode ec)
Function called once the requested operation has been completed.
GNUNET_CRYPTO_KeyType
Key type for the generic public key union.
GNUNET_ErrorCode
Taler error codes.
A private key for an identity as per LSD0001.
An identity key as per LSD0001.
Handle for ego lookup.
void * cb_cls
Closure for cb.
GNUNET_IDENTITY_EgoCallback cb
Function to call with the result.
GNUNET_IDENTITY_EgoSuffixCallback cb
Function to call with the result.
char * suffix
Suffix we are looking up.
Handle for an ego.
Definition: identity.h:37
Handle for the service.
Definition: identity_api.c:97
GNUNET_IDENTITY_Callback cb
Function to call when we receive updates.
Definition: identity_api.c:117
void * cb_cls
Closure for cb.
Definition: identity_api.c:122
Handle for an operation with the identity service.
Definition: identity_api.c:41
GNUNET_IDENTITY_Continuation cont
Continuation to invoke with the result of the transmission; cb and create_cont will be NULL in this c...
Definition: identity_api.c:67
void * cls
Closure for cont or cb.
Definition: identity_api.c:89
GNUNET_IDENTITY_Callback cb
Continuation to invoke with the result of the transmission for 'get' operations (cont and create_cont...
Definition: identity_api.c:84