GNUnet 0.21.0
gnunet-did.c File Reference
Include dependency graph for gnunet-did.c:

Go to the source code of this file.

Data Structures

struct  Event
 A Structure containing a cont and cls. More...
 

Macros

#define GNUNET_DID_DEFAULT_DID_DOCUMENT_EXPIRATION_TIME   "1d"
 

Typedefs

typedef void(* remove_did_document_callback) (void *cls)
 Signature of a callback function that is called after a did has been removed. More...
 

Functions

static void cleanup (void *cls)
 Disconnect and shutdown. More...
 
static void print_did_document (enum GNUNET_GenericReturnValue status, char *did_document, void *cls)
 GNS lookup callback. More...
 
static void resolve_did ()
 Resolve a DID given by the user. More...
 
static void remove_did_document_namestore_cb (void *cls, enum GNUNET_ErrorCode ec)
 Implements the GNUNET_NAMESTORE_ContinuationWithStatus Calls the callback function and cls in the event struct. More...
 
static void remove_did_document_ego_lookup_cb (void *cls, struct GNUNET_IDENTITY_Ego *ego)
 Callback called after the ego has been locked up. More...
 
static void remove_did_document (remove_did_document_callback cont, void *cls)
 Remove a DID Document. More...
 
static void create_did_ego_lockup_cb ()
 
static void create_did_cb (enum GNUNET_GenericReturnValue status, void *cls)
 Create a DID(-Document). More...
 
static void create_did_ego_create_cb (void *cls, const struct GNUNET_CRYPTO_PrivateKey *pk, enum GNUNET_ErrorCode ec)
 Create a DID(-Document) - Called after a new Identity has been created. More...
 
static void create_did_ego_lockup_cb (void *cls, struct GNUNET_IDENTITY_Ego *ego)
 Create a DID(-Document). More...
 
static void create_did ()
 Create a DID(-Document). More...
 
static void replace_did_document_ego_lookup_cb (void *cls, struct GNUNET_IDENTITY_Ego *ego)
 Replace a DID Docuemnt. More...
 
static void replace_did_document_remove_cb (void *cls)
 Replace a DID Document. More...
 
static void replace_did_document ()
 Replace a DID Docuemnt. More...
 
static void post_ego_iteration (void *cls)
 
static void process_dids (void *cls, struct GNUNET_IDENTITY_Ego *ego, void **ctx, const char *name)
 
static void run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *c)
 
int main (int argc, char *const argv[])
 

Variables

static int ret
 return value More...
 
static int replace
 Replace DID Document Flag. More...
 
static int remove_did
 Remove DID Document Flag. More...
 
static int get
 Get DID Documement for DID Flag. More...
 
static int create
 Create DID Document Flag. More...
 
static int show
 Show DID for Ego Flag. More...
 
static int show_all
 Show DID for Ego Flag. More...
 
static char * did
 DID Attribut String. More...
 
static char * didd
 DID Document Attribut String. More...
 
static char * egoname
 Ego Attribut String. More...
 
static char * expire
 DID Document expiration Date Attribut String. More...
 
static struct GNUNET_GNS_Handlegns_handle
 
static struct GNUNET_NAMESTORE_Handlenamestore_handle
 
static struct GNUNET_IDENTITY_Handleidentity_handle
 
static const struct GNUNET_CONFIGURATION_Handlemy_cfg
 
static int ego_exists = 0
 Give ego exists. More...
 

Macro Definition Documentation

◆ GNUNET_DID_DEFAULT_DID_DOCUMENT_EXPIRATION_TIME

#define GNUNET_DID_DEFAULT_DID_DOCUMENT_EXPIRATION_TIME   "1d"

Definition at line 43 of file gnunet-did.c.

Typedef Documentation

◆ remove_did_document_callback

typedef void(* remove_did_document_callback) (void *cls)

Signature of a callback function that is called after a did has been removed.

Definition at line 203 of file gnunet-did.c.

Function Documentation

◆ cleanup()

static void cleanup ( void *  cls)
static

Disconnect and shutdown.

Parameters
clsclosure

Definition at line 131 of file gnunet-did.c.

132{
133 if (NULL != gns_handle)
135 if (NULL != namestore_handle)
137 if (NULL != identity_handle)
139
144
146}
static struct GNUNET_GNS_Handle * gns_handle
Definition: gnunet-did.c:103
static char * egoname
Ego Attribut String.
Definition: gnunet-did.c:93
static char * didd
DID Document Attribut String.
Definition: gnunet-did.c:88
static char * expire
DID Document expiration Date Attribut String.
Definition: gnunet-did.c:98
static struct GNUNET_NAMESTORE_Handle * namestore_handle
Definition: gnunet-did.c:108
static struct GNUNET_IDENTITY_Handle * identity_handle
Definition: gnunet-did.c:113
static char * did
DID Attribut String.
Definition: gnunet-did.c:83
void GNUNET_GNS_disconnect(struct GNUNET_GNS_Handle *handle)
Shutdown connection with the GNS service.
Definition: gns_api.c:289
void GNUNET_IDENTITY_disconnect(struct GNUNET_IDENTITY_Handle *h)
Disconnect from identity service.
Definition: identity_api.c:732
#define GNUNET_free(ptr)
Wrapper around free.
void GNUNET_NAMESTORE_disconnect(struct GNUNET_NAMESTORE_Handle *h)
Disconnect from the namestore service (and free associated resources).
void GNUNET_SCHEDULER_shutdown(void)
Request the shutdown of a scheduler.
Definition: scheduler.c:562

References did, didd, egoname, expire, gns_handle, GNUNET_free, GNUNET_GNS_disconnect(), GNUNET_IDENTITY_disconnect(), GNUNET_NAMESTORE_disconnect(), GNUNET_SCHEDULER_shutdown(), identity_handle, and namestore_handle.

Referenced by create_did(), create_did_cb(), create_did_ego_create_cb(), create_did_ego_lockup_cb(), curl_check_hdr(), decrypt_new_element(), deserialize_download(), deserialize_fi_node(), deserialize_publish_file(), deserialize_search(), deserialize_search_result(), deserialize_unindex_file(), GNUNET_CONFIGURATION_load_from(), GNUNET_FS_download_sync_(), GNUNET_FS_file_information_sync_(), GNUNET_FS_publish_sync_(), GNUNET_FS_search_result_sync_(), GNUNET_FS_search_sync_(), GNUNET_FS_unindex_sync_(), GNUNET_PQ_extract_result(), GNUNET_PROGRAM_run2(), GNUNET_TESTING_command_new(), handle_inline(), main(), post_ego_iteration(), print_did_document(), process_dids(), read_download_request(), remove_did_document(), remove_did_document_namestore_cb(), replace_did_document(), resolve_did(), run(), and verify_fair().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_did_document()

static void print_did_document ( enum GNUNET_GenericReturnValue  status,
char *  did_document,
void *  cls 
)
static

GNS lookup callback.

Prints the DID Document to standard out. Fails if there is more than one DID record.

Parameters
clsclosure
rd_countnumber of records in rd
rdthe records in the reply

Definition at line 158 of file gnunet-did.c.

163{
164 if (GNUNET_OK == status)
165 printf ("%s\n", did_document);
166 else
167 printf ("An error occured: %s\n", did_document);
168
170 ret = 0;
171 return;
172}
static void cleanup(void *cls)
Disconnect and shutdown.
Definition: gnunet-did.c:131
static int ret
return value
Definition: gnunet-did.c:48
static int status
The program status; 0 for success.
Definition: gnunet-nse.c:38
@ GNUNET_OK
struct GNUNET_SCHEDULER_Task * GNUNET_SCHEDULER_add_now(GNUNET_SCHEDULER_TaskCallback task, void *task_cls)
Schedule a new task to be run as soon as possible.
Definition: scheduler.c:1299

References cleanup(), GNUNET_OK, GNUNET_SCHEDULER_add_now(), ret, and status.

Referenced by resolve_did().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ resolve_did()

static void resolve_did ( )
static

Resolve a DID given by the user.

Definition at line 179 of file gnunet-did.c.

180{
181
182 if (did == NULL)
183 {
184 printf ("Set DID option to resolve DID\n");
186 ret = 1;
187 return;
188 }
189
191 {
192 printf ("An error occured while resoling the DID\n");
194 ret = 0;
195 return;
196 }
197}
enum GNUNET_GenericReturnValue DID_resolve(const char *did, struct GNUNET_GNS_Handle *gns_handle, DID_resolve_callback *cont, void *cls)
Resolve a DID.
Definition: did_core.c:89
static void print_did_document(enum GNUNET_GenericReturnValue status, char *did_document, void *cls)
GNS lookup callback.
Definition: gnunet-did.c:158

References cleanup(), did, DID_resolve(), gns_handle, GNUNET_OK, GNUNET_SCHEDULER_add_now(), print_did_document(), and ret.

Referenced by post_ego_iteration().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_did_document_namestore_cb()

static void remove_did_document_namestore_cb ( void *  cls,
enum GNUNET_ErrorCode  ec 
)
static

Implements the GNUNET_NAMESTORE_ContinuationWithStatus Calls the callback function and cls in the event struct.

Parameters
clsclosure containing the event struct
success
emgs

Definition at line 225 of file gnunet-did.c.

226{
227 struct Event *event;
228
229 if (GNUNET_EC_NONE == ec)
230 {
231 event = (struct Event *) cls;
232
233 if (event->cont != NULL)
234 {
235 event->cont (event->cls);
236 free (event);
237 }
238 else
239 {
240 free (event);
242 ret = 0;
243 return;
244 }
245 }
246 else
247 {
248 printf ("Something went wrong when deleting the DID Document\n");
249
250 printf ("%s\n", GNUNET_ErrorCode_get_hint (ec));
251
253 ret = 0;
254 return;
255 }
256}
const char * GNUNET_ErrorCode_get_hint(enum GNUNET_ErrorCode ec)
Returns a hint for a given error code.
@ GNUNET_EC_NONE
No error (success).
A Structure containing a cont and cls.
Definition: gnunet-did.c:211
remove_did_document_callback cont
Definition: gnunet-did.c:212
void * cls
Definition: gnunet-did.c:213

References cleanup(), Event::cls, Event::cont, GNUNET_EC_NONE, GNUNET_ErrorCode_get_hint(), GNUNET_SCHEDULER_add_now(), and ret.

Referenced by remove_did_document_ego_lookup_cb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_did_document_ego_lookup_cb()

static void remove_did_document_ego_lookup_cb ( void *  cls,
struct GNUNET_IDENTITY_Ego ego 
)
static

Callback called after the ego has been locked up.

Parameters
clsclosure
egothe ego returned by the identity service

Definition at line 266 of file gnunet-did.c.

267{
268 const struct GNUNET_CRYPTO_PrivateKey *skey =
270
272 skey,
274 0,
275 NULL,
277 cls);
278}
static void remove_did_document_namestore_cb(void *cls, enum GNUNET_ErrorCode ec)
Implements the GNUNET_NAMESTORE_ContinuationWithStatus Calls the callback function and cls in the eve...
Definition: gnunet-did.c:225
#define GNUNET_GNS_EMPTY_LABEL_AT
String we use to indicate an empty label (top-level entry in the zone).
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
struct GNUNET_NAMESTORE_QueueEntry * GNUNET_NAMESTORE_record_set_store(struct GNUNET_NAMESTORE_Handle *h, const struct GNUNET_CRYPTO_PrivateKey *pkey, const char *label, unsigned int rd_count, const struct GNUNET_GNSRECORD_Data *rd, GNUNET_NAMESTORE_ContinuationWithStatus cont, void *cont_cls)
Store an item in the namestore.
A private key for an identity as per LSD0001.

References GNUNET_GNS_EMPTY_LABEL_AT, GNUNET_IDENTITY_ego_get_private_key(), GNUNET_NAMESTORE_record_set_store(), namestore_handle, and remove_did_document_namestore_cb().

Referenced by remove_did_document().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_did_document()

static void remove_did_document ( remove_did_document_callback  cont,
void *  cls 
)
static

Remove a DID Document.

Definition at line 285 of file gnunet-did.c.

286{
287 struct Event *event;
288
289 if (egoname == NULL)
290 {
291 printf ("Remove requieres an ego option\n");
293 ret = 1;
294 return;
295 }
296 else
297 {
298 event = malloc (sizeof(*event));
299 event->cont = cont;
300 event->cls = cls;
301
303 egoname,
305 (void *) event);
306 }
307}
static void remove_did_document_ego_lookup_cb(void *cls, struct GNUNET_IDENTITY_Ego *ego)
Callback called after the ego has been locked up.
Definition: gnunet-did.c:266
static const struct GNUNET_CONFIGURATION_Handle * my_cfg
Definition: gnunet-did.c:119
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.

References cleanup(), Event::cls, Event::cont, egoname, GNUNET_IDENTITY_ego_lookup(), GNUNET_SCHEDULER_add_now(), my_cfg, remove_did_document_ego_lookup_cb(), and ret.

Referenced by post_ego_iteration(), and replace_did_document().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_did_ego_lockup_cb() [1/2]

static void create_did_ego_lockup_cb ( )
static

Referenced by create_did(), and create_did_ego_create_cb().

Here is the caller graph for this function:

◆ create_did_cb()

static void create_did_cb ( enum GNUNET_GenericReturnValue  status,
void *  cls 
)
static

Create a DID(-Document).

Called after DID has been created Prints status and the DID.

Definition at line 320 of file gnunet-did.c.

321{
322 if (GNUNET_OK == status)
323 {
324 printf ("DID has been created.\n%s\n", (char *) cls);
325 free (cls);
326 ret = 0;
327 }
328 else
329 {
330 printf ("An error occured while creating the DID.\n");
331 ret = 1;
332 }
333
335 return;
336}

References cleanup(), Event::cls, GNUNET_OK, GNUNET_SCHEDULER_add_now(), ret, and status.

Referenced by create_did_ego_lockup_cb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_did_ego_create_cb()

static void create_did_ego_create_cb ( void *  cls,
const struct GNUNET_CRYPTO_PrivateKey pk,
enum GNUNET_ErrorCode  ec 
)
static

Create a DID(-Document) - Called after a new Identity has been created.

Definition at line 343 of file gnunet-did.c.

346{
347 if (GNUNET_EC_NONE != ec)
348 {
349 printf ("%s\n", GNUNET_ErrorCode_get_hint (ec));
351 ret = 1;
352 return;
353 }
354
356 egoname,
358 NULL);
359}
static void create_did_ego_lockup_cb()

References cleanup(), create_did_ego_lockup_cb(), egoname, GNUNET_EC_NONE, GNUNET_ErrorCode_get_hint(), GNUNET_IDENTITY_ego_lookup(), GNUNET_SCHEDULER_add_now(), my_cfg, and ret.

Referenced by create_did_ego_lockup_cb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_did_ego_lockup_cb() [2/2]

static void create_did_ego_lockup_cb ( void *  cls,
struct GNUNET_IDENTITY_Ego ego 
)
static

Create a DID(-Document).

Called after ego lookup

Definition at line 367 of file gnunet-did.c.

368{
369 if (ego == NULL)
370 {
371 // If Ego was not found. Create new one first
372 printf ("Ego was not found. Creating new one.\n");
374 egoname,
375 NULL,
378 egoname);
379 }
380 else
381 {
382 char *did = DID_identity_to_did (ego);
383 void *cls = malloc (strlen (did) + 1);
384 struct GNUNET_TIME_Relative expire_relative;
385
386 if (expire == NULL)
387 {
389 DID_DOCUMENT_DEFAULT_EXPIRATION_TIME, &expire_relative);
390 }
392 &
393 expire_relative))
394 {
395 printf ("Failed to read given expiration time\n");
397 ret = 1;
398 return;
399 }
400
401 strcpy (cls, did);
402 // TODO: Add DID_document argument
403 if (GNUNET_OK != DID_create (ego,
404 NULL,
405 &expire_relative,
408 cls))
409 {
410 printf ("An error occured while creating the DID.\n");
411 ret = 1;
413 return;
414 }
415 }
416}
enum GNUNET_GenericReturnValue DID_create(const struct GNUNET_IDENTITY_Ego *ego, const char *did_document, const struct GNUNET_TIME_Relative *expire_time, struct GNUNET_NAMESTORE_Handle *namestore_handle, DID_action_callback *cont, void *cls)
Creates a DID and saves DID Document in Namestore.
Definition: did_core.c:226
#define DID_DOCUMENT_DEFAULT_EXPIRATION_TIME
Definition: did_core.h:38
char * DID_identity_to_did(struct GNUNET_IDENTITY_Ego *ego)
Generate a DID for a given gnunet EGO.
Definition: did_helper.c:67
static void create_did_cb(enum GNUNET_GenericReturnValue status, void *cls)
Create a DID(-Document).
Definition: gnunet-did.c:320
static void create_did_ego_create_cb(void *cls, const struct GNUNET_CRYPTO_PrivateKey *pk, enum GNUNET_ErrorCode ec)
Create a DID(-Document) - Called after a new Identity has been created.
Definition: gnunet-did.c:343
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
@ GNUNET_PUBLIC_KEY_TYPE_EDDSA
EDDSA identity.
enum GNUNET_GenericReturnValue GNUNET_STRINGS_fancy_time_to_relative(const char *fancy_time, struct GNUNET_TIME_Relative *rtime)
Convert a given fancy human-readable time to our internal representation.
Definition: strings.c:260
Time for relative time used by GNUnet, in microseconds.

References cleanup(), Event::cls, create_did_cb(), create_did_ego_create_cb(), did, DID_create(), DID_DOCUMENT_DEFAULT_EXPIRATION_TIME, DID_identity_to_did(), egoname, expire, GNUNET_IDENTITY_create(), GNUNET_OK, GNUNET_PUBLIC_KEY_TYPE_EDDSA, GNUNET_SCHEDULER_add_now(), GNUNET_STRINGS_fancy_time_to_relative(), identity_handle, namestore_handle, and ret.

Here is the call graph for this function:

◆ create_did()

static void create_did ( )
static

Create a DID(-Document).

Definition at line 424 of file gnunet-did.c.

425{
426 // Ego name to be set
427 if (egoname == NULL)
428 {
429 printf ("Set the Ego argument to create a new DID(-Document)\n");
431 ret = 1;
432 return;
433 }
434
436 egoname,
438 NULL);
439}

References cleanup(), create_did_ego_lockup_cb(), egoname, GNUNET_IDENTITY_ego_lookup(), GNUNET_SCHEDULER_add_now(), my_cfg, and ret.

Referenced by post_ego_iteration().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ replace_did_document_ego_lookup_cb()

static void replace_did_document_ego_lookup_cb ( void *  cls,
struct GNUNET_IDENTITY_Ego ego 
)
static

Replace a DID Docuemnt.

Callback function after ego lockup

Parameters
cls
ego

Definition at line 449 of file gnunet-did.c.

450{
451 // create_did_store (didd, ego);
452}

Referenced by replace_did_document_remove_cb().

Here is the caller graph for this function:

◆ replace_did_document_remove_cb()

static void replace_did_document_remove_cb ( void *  cls)
static

Replace a DID Document.

Callback functiona after remove

Parameters
cls

Definition at line 461 of file gnunet-did.c.

462{
464 egoname,
466 NULL);
467}
static void replace_did_document_ego_lookup_cb(void *cls, struct GNUNET_IDENTITY_Ego *ego)
Replace a DID Docuemnt.
Definition: gnunet-did.c:449

References egoname, GNUNET_IDENTITY_ego_lookup(), my_cfg, and replace_did_document_ego_lookup_cb().

Referenced by replace_did_document().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ replace_did_document()

static void replace_did_document ( )
static

Replace a DID Docuemnt.

Definition at line 475 of file gnunet-did.c.

476{
477 if ((didd != NULL) && (expire != NULL))
478 {
480 }
481 else
482 {
483 printf (
484 "Set the DID Document and expiration time argument to replace the DID Document\n");
486 ret = 1;
487 return;
488 }
489}
static void replace_did_document_remove_cb(void *cls)
Replace a DID Document.
Definition: gnunet-did.c:461
static void remove_did_document(remove_did_document_callback cont, void *cls)
Remove a DID Document.
Definition: gnunet-did.c:285

References cleanup(), didd, expire, GNUNET_SCHEDULER_add_now(), remove_did_document(), replace_did_document_remove_cb(), and ret.

Referenced by post_ego_iteration().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ post_ego_iteration()

static void post_ego_iteration ( void *  cls)
static

Definition at line 493 of file gnunet-did.c.

494{
495 // TODO: Check that only one argument is set
496
497 if (1 == replace)
498 {
500 }
501 else if (1 == get)
502 {
503 resolve_did ();
504 }
505 else if (1 == remove_did)
506 {
507 remove_did_document (NULL, NULL);
508 }
509 else if (1 == create)
510 {
511 create_did ();
512 }
513 else
514 {
515 // No Argument found
517 return;
518 }
519}
static int replace
Replace DID Document Flag.
Definition: gnunet-did.c:53
static int remove_did
Remove DID Document Flag.
Definition: gnunet-did.c:58
static int get
Get DID Documement for DID Flag.
Definition: gnunet-did.c:63
static int create
Create DID Document Flag.
Definition: gnunet-did.c:68
static void resolve_did()
Resolve a DID given by the user.
Definition: gnunet-did.c:179
static void replace_did_document()
Replace a DID Docuemnt.
Definition: gnunet-did.c:475
static void create_did()
Create a DID(-Document).
Definition: gnunet-did.c:424

References cleanup(), create, create_did(), get, GNUNET_SCHEDULER_add_now(), remove_did, remove_did_document(), replace, replace_did_document(), and resolve_did().

Referenced by process_dids().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_dids()

static void process_dids ( void *  cls,
struct GNUNET_IDENTITY_Ego ego,
void **  ctx,
const char *  name 
)
static

Definition at line 523 of file gnunet-did.c.

525{
526 char *did_str;
527
528 if (ego == NULL)
529 {
530 if (1 == ego_exists)
531 {
533 return;
534 }
536 return;
537 }
538
539 if (1 == show_all)
540 {
541 did_str = DID_identity_to_did (ego);
542 printf ("%s:\n\t%s\n", name, did_str);
543 GNUNET_free (did_str);
544 return;
545 }
546 if (1 == show)
547 {
548 if (0 == strncmp (name, egoname, strlen (egoname)))
549 {
550 did_str = DID_identity_to_did (ego);
551 printf ("%s:\n\t%s\n", name, did_str);
552 GNUNET_free (did_str);
553 return;
554 }
555 }
556}
static int show_all
Show DID for Ego Flag.
Definition: gnunet-did.c:78
static int ego_exists
Give ego exists.
Definition: gnunet-did.c:124
static void post_ego_iteration(void *cls)
Definition: gnunet-did.c:493
static int show
Show DID for Ego Flag.
Definition: gnunet-did.c:73
static char * name
Name (label) of the records to list.

References cleanup(), DID_identity_to_did(), ego_exists, egoname, GNUNET_free, GNUNET_SCHEDULER_add_now(), name, post_ego_iteration(), show, and show_all.

Referenced by run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run()

static void run ( void *  cls,
char *const *  args,
const char *  cfgfile,
const struct GNUNET_CONFIGURATION_Handle c 
)
static

Definition at line 560 of file gnunet-did.c.

564{
567 my_cfg = c;
568
569 // check if GNS_handle could connect
570 if (gns_handle == NULL)
571 {
572 ret = 1;
573 return;
574 }
575
576 // check if NAMESTORE_handle could connect
577 if (namestore_handle == NULL)
578 {
580 ret = 1;
581 return;
582 }
583
585 if (identity_handle == NULL)
586 {
588 ret = 1;
589 return;
590 }
591}
static void process_dids(void *cls, struct GNUNET_IDENTITY_Ego *ego, void **ctx, const char *name)
Definition: gnunet-did.c:523
struct GNUNET_GNS_Handle * GNUNET_GNS_connect(const struct GNUNET_CONFIGURATION_Handle *cfg)
Initialize the connection with the GNS service.
Definition: gns_api.c:267
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
struct GNUNET_NAMESTORE_Handle * GNUNET_NAMESTORE_connect(const struct GNUNET_CONFIGURATION_Handle *cfg)
Connect to the namestore service.

References cleanup(), gns_handle, GNUNET_GNS_connect(), GNUNET_IDENTITY_connect(), GNUNET_NAMESTORE_connect(), GNUNET_SCHEDULER_add_now(), identity_handle, my_cfg, namestore_handle, process_dids(), and ret.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char *const  argv[] 
)

Definition at line 595 of file gnunet-did.c.

596{
599 "create",
601 "Create a DID Document and display its DID"),
602 &create),
604 "get",
606 "Get the DID Document associated with the given DID"),
607 &get),
609 "remove",
611 "Remove the DID"),
612 &remove_did),
614 "replace",
615 gettext_noop ("Replace the DID Document."),
616 &replace),
618 "show",
619 gettext_noop ("Show the DID for a given ego"),
620 &show),
622 "show-all",
623 gettext_noop ("Show egos with DIDs"),
624 &show_all),
626 "did",
627 "DID",
629 "The Decentralized Identity (DID)"),
630 &did),
632 "did-document",
633 "JSON",
635 "The DID Document to store in GNUNET"),
636 &didd),
638 "ego",
639 "EGO",
640 gettext_noop ("The name of the EGO"),
641 &egoname),
643 "expiration-time",
644 "TIME",
646 "The time until the DID Document is going to expire (e.g. 5d)"),
647 &expire),
649 };
650
651 if (GNUNET_OK != GNUNET_PROGRAM_run (argc,
652 argv,
653 "gnunet-did",
654 "Manage Decentralized Identities (DIDs)",
655 options,
656 &run,
657 NULL))
658 return 1;
659 else
660 return ret;
661}
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_OPTION_END
Definition: 002.c:13
struct GNUNET_GETOPT_CommandLineOption options[]
Definition: 002.c:5
#define gettext_noop(String)
Definition: gettext.h:70
static void run(void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *c)
Definition: gnunet-did.c:560
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_flag(char shortName, const char *name, const char *description, int *val)
Allow user to specify a flag (which internally means setting an integer to 1/GNUNET_YES/GNUNET_OK.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_string(char shortName, const char *name, const char *argumentHelp, const char *description, char **str)
Allow user to specify a string.
enum GNUNET_GenericReturnValue GNUNET_PROGRAM_run(int argc, char *const *argv, const char *binaryName, const char *binaryHelp, const struct GNUNET_GETOPT_CommandLineOption *options, GNUNET_PROGRAM_Main task, void *task_cls)
Run a standard GNUnet command startup sequence (initialize loggers and configuration,...
Definition: program.c:400
Definition of a command line option.

References create, did, didd, egoname, expire, get, gettext_noop, GNUNET_GETOPT_OPTION_END, GNUNET_GETOPT_option_flag(), GNUNET_GETOPT_option_string(), GNUNET_OK, GNUNET_PROGRAM_run(), options, remove_did, replace, ret, run(), show, and show_all.

Here is the call graph for this function:

Variable Documentation

◆ ret

◆ replace

int replace
static

Replace DID Document Flag.

Definition at line 53 of file gnunet-did.c.

Referenced by main(), post_ego_iteration(), httpdomain.autohttp.flask_base::quickref_directive(), replace_char(), try_ifconfig(), and try_ip().

◆ remove_did

int remove_did
static

Remove DID Document Flag.

Definition at line 58 of file gnunet-did.c.

Referenced by main(), and post_ego_iteration().

◆ get

◆ create

int create
static

Create DID Document Flag.

Definition at line 68 of file gnunet-did.c.

Referenced by GCP_get(), GCP_get_tunnel(), main(), and post_ego_iteration().

◆ show

int show
static

Show DID for Ego Flag.

Definition at line 73 of file gnunet-did.c.

Referenced by main(), and process_dids().

◆ show_all

int show_all
static

Show DID for Ego Flag.

Definition at line 78 of file gnunet-did.c.

Referenced by main(), and process_dids().

◆ did

char* did
static

DID Attribut String.

Definition at line 83 of file gnunet-did.c.

Referenced by cleanup(), create_did_ego_lockup_cb(), DID_did_to_pkey(), DID_public_key_from_did(), DID_resolve(), main(), and resolve_did().

◆ didd

char* didd
static

DID Document Attribut String.

Definition at line 88 of file gnunet-did.c.

Referenced by cleanup(), main(), and replace_did_document().

◆ egoname

◆ expire

◆ gns_handle

struct GNUNET_GNS_Handle* gns_handle
static

Definition at line 103 of file gnunet-did.c.

Referenced by cleanup(), DID_resolve(), resolve_did(), and run().

◆ namestore_handle

◆ identity_handle

struct GNUNET_IDENTITY_Handle* identity_handle
static

Definition at line 113 of file gnunet-did.c.

Referenced by cleanup(), create_did_ego_lockup_cb(), and run().

◆ my_cfg

◆ ego_exists

int ego_exists = 0
static

Give ego exists.

Definition at line 124 of file gnunet-did.c.

Referenced by process_dids().