GNUnet  0.11.x
Macros | Functions | Variables
gnunet-identity.c File Reference

IDENTITY management command line tool. More...

#include "platform.h"
#include "gnunet_util_lib.h"
#include "gnunet_identity_service.h"
Include dependency graph for gnunet-identity.c:

Go to the source code of this file.

Macros

#define TIMEOUT_STATUS_CODE   40
 Return value from main on timeout. More...
 

Functions

static void shutdown_task (void *cls)
 Task run on shutdown. More...
 
static void test_finished (void)
 Test if we are finished yet. More...
 
static void delete_finished (void *cls, const char *emsg)
 Deletion operation finished. More...
 
static void create_finished (void *cls, const struct GNUNET_IDENTITY_PrivateKey *pk, const char *emsg)
 Creation operation finished. More...
 
static void set_done (void *cls, const char *emsg)
 Function called by GNUNET_IDENTITY_set up on completion. More...
 
static void print_ego (void *cls, struct GNUNET_IDENTITY_Ego *ego, void **ctx, const char *identifier)
 If listing is enabled, prints information about the egos. More...
 
static void run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
 Main function that will be run by the scheduler. More...
 
int main (int argc, char *const *argv)
 The main function. More...
 

Variables

static struct GNUNET_IDENTITY_Handlesh
 Handle to IDENTITY service. More...
 
static int list
 Was "list" specified? More...
 
static int monitor
 Was "monitor" specified? More...
 
static int private_keys
 Was "private" specified? More...
 
static unsigned int verbose
 Was "verbose" specified? More...
 
static int quiet
 Was "quiet" specified? More...
 
static int type_eddsa
 Was "eddsa" specified? More...
 
static char * create_ego
 -C option More...
 
static char * delete_ego
 -D option More...
 
static char * privkey_ego
 -P option More...
 
static char * set_ego
 -s option. More...
 
static char * set_subsystem
 -S option. More...
 
static struct GNUNET_IDENTITY_Operationset_op
 Operation handle for set operation. More...
 
static struct GNUNET_IDENTITY_Operationcreate_op
 Handle for create operation. More...
 
static struct GNUNET_IDENTITY_Operationdelete_op
 Handle for delete operation. More...
 
struct GNUNET_IDENTITY_PrivateKey pk
 Private key from command line option, or NULL. More...
 
static int global_ret
 Value to return from main(). More...
 

Detailed Description

IDENTITY management command line tool.

Author
Christian Grothoff

Todo:

Definition in file gnunet-identity.c.

Macro Definition Documentation

◆ TIMEOUT_STATUS_CODE

#define TIMEOUT_STATUS_CODE   40

Return value from main on timeout.

Definition at line 36 of file gnunet-identity.c.

Function Documentation

◆ shutdown_task()

static void shutdown_task ( void *  cls)
static

Task run on shutdown.

Parameters
clsNULL

Definition at line 130 of file gnunet-identity.c.

131 {
132  if (NULL != set_op)
133  {
135  set_op = NULL;
136  }
137  if (NULL != create_op)
138  {
140  create_op = NULL;
141  }
142  if (NULL != delete_op)
143  {
145  delete_op = NULL;
146  }
147  if (NULL != set_ego)
148  {
150  set_ego = NULL;
151  }
153  sh = NULL;
154 }
static struct GNUNET_IDENTITY_Operation * set_op
Operation handle for set operation.
static struct GNUNET_IDENTITY_Operation * create_op
Handle for create operation.
static struct GNUNET_IDENTITY_Handle * sh
Handle to IDENTITY service.
static struct GNUNET_IDENTITY_Operation * delete_op
Handle for delete operation.
static char * set_ego
-s option.
void GNUNET_IDENTITY_cancel(struct GNUNET_IDENTITY_Operation *op)
Cancel an identity operation.
Definition: identity_api.c:904
void GNUNET_IDENTITY_disconnect(struct GNUNET_IDENTITY_Handle *h)
Disconnect from identity service.
Definition: identity_api.c:921
#define GNUNET_free(ptr)
Wrapper around free.

References create_op, delete_op, GNUNET_free, GNUNET_IDENTITY_cancel(), GNUNET_IDENTITY_disconnect(), set_ego, set_op, and sh.

Referenced by run().

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

◆ test_finished()

static void test_finished ( void  )
static

Test if we are finished yet.

Definition at line 161 of file gnunet-identity.c.

162 {
163  if ( (NULL == create_op) &&
164  (NULL == delete_op) &&
165  (NULL == set_op) &&
166  (NULL == set_subsystem) &&
167  (! list) &&
168  (! monitor))
169  {
171  global_ret = 0;
173  }
174 }
#define TIMEOUT_STATUS_CODE
Return value from main on timeout.
static int global_ret
Value to return from main().
static int monitor
Was "monitor" specified?
static int list
Was "list" specified?
static char * set_subsystem
-S option.
void GNUNET_SCHEDULER_shutdown(void)
Request the shutdown of a scheduler.
Definition: scheduler.c:531

References create_op, delete_op, global_ret, GNUNET_SCHEDULER_shutdown(), list, monitor, set_op, set_subsystem, and TIMEOUT_STATUS_CODE.

Referenced by create_finished(), delete_finished(), print_ego(), run(), and set_done().

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

◆ delete_finished()

static void delete_finished ( void *  cls,
const char *  emsg 
)
static

Deletion operation finished.

Parameters
clspointer to operation handle
emsgNULL on success, otherwise an error message

Definition at line 184 of file gnunet-identity.c.

186 {
187  struct GNUNET_IDENTITY_Operation **op = cls;
188 
189  *op = NULL;
190  if (NULL != emsg)
191  fprintf (stderr, "%s\n", gettext (emsg));
192  test_finished ();
193 }
#define gettext(Msgid)
Definition: gettext.h:45
static struct GNUNET_ARM_Operation * op
Current operation.
Definition: gnunet-arm.c:144
static void test_finished(void)
Test if we are finished yet.
Handle for an operation with the identity service.
Definition: identity_api.c:40
void * cls
Closure for cont or cb.
Definition: identity_api.c:88

References GNUNET_IDENTITY_Operation::cls, gettext, op, and test_finished().

Referenced by run().

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

◆ create_finished()

static void create_finished ( void *  cls,
const struct GNUNET_IDENTITY_PrivateKey pk,
const char *  emsg 
)
static

Creation operation finished.

Parameters
clspointer to operation handle
pkprivate key of the ego, or NULL on error
emsgerror message, NULL on success

Definition at line 204 of file gnunet-identity.c.

207 {
208  struct GNUNET_IDENTITY_Operation **op = cls;
209 
210  *op = NULL;
211  if (NULL == pk)
212  {
213  fprintf (stderr,
214  _ ("Failed to create ego: %s\n"),
215  emsg);
216  global_ret = 1;
217  }
218  else if (verbose)
219  {
221  char *pubs;
222 
225  if (private_keys)
226  {
227  char *privs;
228 
230  fprintf (stdout, "%s - %s\n", pubs, privs);
231  GNUNET_free (privs);
232  }
233  else
234  {
235  fprintf (stdout, "%s\n", pubs);
236  }
237  GNUNET_free (pubs);
238  }
239  test_finished ();
240 }
static unsigned int verbose
Was "verbose" specified?
struct GNUNET_IDENTITY_PrivateKey pk
Private key from command line option, or NULL.
static int private_keys
Was "private" specified?
static struct GNUNET_CRYPTO_EddsaPublicKey pub
Definition: gnunet-scrypt.c:46
enum GNUNET_GenericReturnValue GNUNET_IDENTITY_key_get_public(const struct GNUNET_IDENTITY_PrivateKey *privkey, struct GNUNET_IDENTITY_PublicKey *key)
Retrieves the public key representation of a private key.
Definition: identity_api.c:175
char * GNUNET_IDENTITY_private_key_to_string(const struct GNUNET_IDENTITY_PrivateKey *key)
Creates a (Base32) string representation of the private key.
char * GNUNET_IDENTITY_public_key_to_string(const struct GNUNET_IDENTITY_PublicKey *key)
Creates a (Base32) string representation of the public key.
#define _(String)
GNU gettext support macro.
Definition: platform.h:177
An identity key as per LSD0001.

References _, GNUNET_IDENTITY_Operation::cls, global_ret, GNUNET_free, GNUNET_IDENTITY_key_get_public(), GNUNET_IDENTITY_private_key_to_string(), GNUNET_IDENTITY_public_key_to_string(), op, pk, private_keys, pub, test_finished(), and verbose.

Referenced by run().

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

◆ set_done()

static void set_done ( void *  cls,
const char *  emsg 
)
static

Function called by GNUNET_IDENTITY_set up on completion.

Parameters
clsNULL
emsgerror message (NULL on success)

Definition at line 250 of file gnunet-identity.c.

251 {
252  set_op = NULL;
253  if (NULL != emsg)
254  {
255  fprintf (stderr, _ ("Failed to set default ego: %s\n"), emsg);
256  global_ret = 1;
257  }
258  test_finished ();
259 }

References _, global_ret, set_op, and test_finished().

Referenced by print_ego().

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

◆ print_ego()

static void print_ego ( void *  cls,
struct GNUNET_IDENTITY_Ego ego,
void **  ctx,
const char *  identifier 
)
static

If listing is enabled, prints information about the egos.

This function is initially called for all egos and then again whenever a ego's identifier changes or if it is deleted. At the end of the initial pass over all egos, the function is once called with 'NULL' for 'ego'. That does NOT mean that the callback won't be invoked in the future or that there was an error.

When used with 'GNUNET_IDENTITY_create' or 'GNUNET_IDENTITY_get', this function is only called ONCE, and 'NULL' being passed in 'ego' does indicate an error (for example because name is taken or no default value is known). If 'ego' is non-NULL and if '*ctx' is set in those callbacks, the value WILL be passed to a subsequent call to the identity callback of 'GNUNET_IDENTITY_connect' (if that one was not NULL).

When an identity is renamed, this function is called with the (known) ego but the NEW identifier.

When an identity is deleted, this function is called with the (known) ego and "NULL" for the 'identifier'. In this case, the 'ego' is henceforth invalid (and the 'ctx' should also be cleaned up).

Parameters
clsclosure
egoego handle
ctxcontext for application to store data for this ego (during the lifetime of this process, initially NULL)
identifieridentifier assigned by the user for this ego, NULL if the user just deleted the ego and it must thus no longer be used

Definition at line 295 of file gnunet-identity.c.

299 {
301  char *s;
302  char *privs;
303 
304  if ( (NULL != set_ego) &&
305  (NULL != set_subsystem) &&
306  (NULL != ego) &&
307  (NULL != identifier) &&
308  (0 == strcmp (identifier, set_ego)))
309  {
312  ego,
313  &set_done,
314  NULL);
316  set_subsystem = NULL;
318  set_ego = NULL;
319  }
320  if ( (NULL == ego) &&
321  (NULL != set_ego) &&
322  (NULL != set_subsystem) )
323  {
324  fprintf (stderr,
325  "Could not set ego to `%s' for subsystem `%s', ego not known\n",
326  set_ego,
327  set_subsystem);
329  set_subsystem = NULL;
331  set_ego = NULL;
332  }
333  if ((NULL == ego) && (! monitor))
334  {
335  list = 0;
336  test_finished ();
337  return;
338  }
339  if (! (list | monitor))
340  return;
341  if ( (NULL == ego) ||
342  (NULL == identifier) )
343  return;
344  if ( (NULL != set_ego) &&
345  (0 != strcmp (identifier,
346  set_ego)) )
347  return;
352  if ((monitor) || (NULL != identifier))
353  {
354  if (quiet)
355  {
356  if (private_keys)
357  fprintf (stdout, "%s - %s\n", s, privs);
358  else
359  fprintf (stdout, "%s\n", s);
360  }
361  else
362  {
363  if (private_keys)
364  fprintf (stdout, "%s - %s - %s - %s\n",
365  identifier, s, privs,
366  (ntohl (pk.type) == GNUNET_IDENTITY_TYPE_ECDSA) ?
367  "ECDSA" : "EdDSA");
368  else
369  fprintf (stdout, "%s - %s - %s\n",
370  identifier, s,
371  (ntohl (pk.type) == GNUNET_IDENTITY_TYPE_ECDSA) ?
372  "ECDSA" : "EdDSA");
373 
374  }
375  }
376  GNUNET_free (privs);
377  GNUNET_free (s);
378 }
static int quiet
Was "quiet" specified?
static void set_done(void *cls, const char *emsg)
Function called by GNUNET_IDENTITY_set up on completion.
const struct GNUNET_IDENTITY_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:639
void GNUNET_IDENTITY_ego_get_public_key(struct GNUNET_IDENTITY_Ego *ego, struct GNUNET_IDENTITY_PublicKey *pk)
Get the identifier (public key) of an ego.
Definition: identity_api.c:652
struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_set(struct GNUNET_IDENTITY_Handle *h, const char *service_name, struct GNUNET_IDENTITY_Ego *ego, GNUNET_IDENTITY_Continuation cont, void *cont_cls)
Set the preferred/default identity for a service.
Definition: identity_api.c:720
@ GNUNET_IDENTITY_TYPE_ECDSA
The identity type.
uint32_t type
Type of public key.

References GNUNET_free, GNUNET_IDENTITY_ego_get_private_key(), GNUNET_IDENTITY_ego_get_public_key(), GNUNET_IDENTITY_private_key_to_string(), GNUNET_IDENTITY_public_key_to_string(), GNUNET_IDENTITY_set(), GNUNET_IDENTITY_TYPE_ECDSA, list, monitor, pk, private_keys, quiet, set_done(), set_ego, set_op, set_subsystem, sh, test_finished(), and GNUNET_IDENTITY_PrivateKey::type.

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 cfg 
)
static

Main function that will be run by the scheduler.

Parameters
clsclosure
argsremaining command-line arguments
cfgfilename of the configuration file used (for saving, can be NULL!)
cfgconfiguration

Definition at line 390 of file gnunet-identity.c.

394 {
395  if ((NULL != set_subsystem) && (NULL == set_ego))
396  {
397  fprintf (stderr, "Option -s requires option -e to be specified as well.\n");
398  return;
399  }
401  (monitor | list) ||
402  (NULL != set_ego) ||
403  (NULL != set_subsystem)
404  ? &print_ego
405  : NULL,
406  NULL);
407  if (NULL != delete_ego)
408  delete_op =
410  delete_ego,
412  &delete_op);
413  if (NULL != create_ego)
414  {
415  if (NULL != privkey_ego)
416  {
418  strlen (privkey_ego),
419  &pk,
420  sizeof(struct
422  create_op =
424  create_ego,
425  &pk,
426  0, // Ignored
428  &create_op);
429  }
430  else
431  create_op =
433  create_ego,
434  NULL,
435  (type_eddsa) ?
439  &create_op);
440  }
442  NULL);
443  test_finished ();
444 }
static const struct GNUNET_CONFIGURATION_Handle * cfg
Configuration we are using.
Definition: gnunet-abd.c:36
static char * privkey_ego
-P option
static void shutdown_task(void *cls)
Task run on shutdown.
static void create_finished(void *cls, const struct GNUNET_IDENTITY_PrivateKey *pk, const char *emsg)
Creation operation finished.
static void print_ego(void *cls, struct GNUNET_IDENTITY_Ego *ego, void **ctx, const char *identifier)
If listing is enabled, prints information about the egos.
static char * delete_ego
-D option
static char * create_ego
-C option
static int type_eddsa
Was "eddsa" specified?
static void delete_finished(void *cls, const char *emsg)
Deletion operation finished.
struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_create(struct GNUNET_IDENTITY_Handle *h, const char *name, const struct GNUNET_IDENTITY_PrivateKey *privkey, enum GNUNET_IDENTITY_KeyType ktype, GNUNET_IDENTITY_CreateContinuation cont, void *cont_cls)
Create a new ego with the given name.
Definition: identity_api.c:757
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:610
struct GNUNET_IDENTITY_Operation * GNUNET_IDENTITY_delete(struct GNUNET_IDENTITY_Handle *h, const char *name, GNUNET_IDENTITY_Continuation cb, void *cb_cls)
Delete an existing identity.
Definition: identity_api.c:863
@ GNUNET_IDENTITY_TYPE_EDDSA
EDDSA identity.
struct GNUNET_SCHEDULER_Task * GNUNET_SCHEDULER_add_shutdown(GNUNET_SCHEDULER_TaskCallback task, void *task_cls)
Schedule a new task to be run on shutdown, that is when a CTRL-C signal is received,...
Definition: scheduler.c:1331
enum GNUNET_GenericReturnValue GNUNET_STRINGS_string_to_data(const char *enc, size_t enclen, void *out, size_t out_size)
Convert CrockfordBase32 encoding back to data.
Definition: strings.c:775
A private key for an identity as per LSD0001.

References cfg, create_ego, create_finished(), create_op, delete_ego, delete_finished(), delete_op, GNUNET_IDENTITY_connect(), GNUNET_IDENTITY_create(), GNUNET_IDENTITY_delete(), GNUNET_IDENTITY_TYPE_ECDSA, GNUNET_IDENTITY_TYPE_EDDSA, GNUNET_SCHEDULER_add_shutdown(), GNUNET_STRINGS_string_to_data(), list, monitor, pk, print_ego(), privkey_ego, set_ego, set_subsystem, sh, shutdown_task(), test_finished(), and type_eddsa.

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 
)

The main function.

Parameters
argcnumber of arguments from the command line
argvcommand line arguments
Returns
0 ok, 1 on error

Definition at line 455 of file gnunet-identity.c.

456 {
459  "create",
460  "NAME",
461  gettext_noop ("create ego NAME"),
462  &create_ego),
464  "delete",
465  "NAME",
466  gettext_noop ("delete ego NAME "),
467  &delete_ego),
469  "privkey",
470  "PRIVATE_KEY",
471  gettext_noop (
472  "set the private key for the identity to PRIVATE_KEY (use together with -C)"),
473  &privkey_ego),
475  "eddsa",
476  gettext_noop (
477  "generate an EdDSA identity. (use together with -C) EXPERIMENTAL"),
478  &type_eddsa),
480  "display",
481  gettext_noop ("display all egos"),
482  &list),
484  "quiet",
485  gettext_noop ("reduce output"),
486  &quiet),
488  'e',
489  "ego",
490  "NAME",
491  gettext_noop (
492  "set default identity to NAME for a subsystem SUBSYSTEM (use together with -s) or restrict results to NAME (use together with -d)"),
493  &set_ego),
495  "monitor",
496  gettext_noop ("run in monitor mode egos"),
497  &monitor),
499  "private-keys",
500  gettext_noop ("display private keys as well"),
501  &private_keys),
503  's',
504  "set",
505  "SUBSYSTEM",
506  gettext_noop (
507  "set default identity to EGO for a subsystem SUBSYSTEM (use together with -e)"),
508  &set_subsystem),
511  };
512  int res;
513 
514  if (GNUNET_OK !=
515  GNUNET_STRINGS_get_utf8_args (argc, argv,
516  &argc, &argv))
517  return 4;
518  global_ret = TIMEOUT_STATUS_CODE; /* timeout */
519  res = GNUNET_PROGRAM_run (argc,
520  argv,
521  "gnunet-identity",
522  gettext_noop ("Maintain egos"),
523  options,
524  &run,
525  NULL);
526  GNUNET_free_nz ((void *) argv);
527 
528  if (GNUNET_OK != res)
529  return 3;
530  return global_ret;
531 }
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:69
static int res
static void run(void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
Main function that will be run by the scheduler.
@ GNUNET_OK
Definition: gnunet_common.h:95
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_verbose(unsigned int *level)
Define the '-V' verbosity option.
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.
#define GNUNET_free_nz(ptr)
Wrapper around free.
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:364
enum GNUNET_GenericReturnValue GNUNET_STRINGS_get_utf8_args(int argc, char *const *argv, int *u8argc, char *const **u8argv)
Returns utf-8 encoded arguments.
Definition: strings.c:1209
Definition of a command line option.

References create_ego, delete_ego, gettext_noop, global_ret, GNUNET_free_nz, GNUNET_GETOPT_OPTION_END, GNUNET_GETOPT_option_flag(), GNUNET_GETOPT_option_string(), GNUNET_GETOPT_option_verbose(), GNUNET_OK, GNUNET_PROGRAM_run(), GNUNET_STRINGS_get_utf8_args(), list, monitor, options, private_keys, privkey_ego, quiet, res, run(), set_ego, set_subsystem, TIMEOUT_STATUS_CODE, type_eddsa, and verbose.

Here is the call graph for this function:

Variable Documentation

◆ sh

struct GNUNET_IDENTITY_Handle* sh
static

Handle to IDENTITY service.

Definition at line 41 of file gnunet-identity.c.

Referenced by print_ego(), run(), and shutdown_task().

◆ list

int list
static

Was "list" specified?

Definition at line 46 of file gnunet-identity.c.

Referenced by main(), print_ego(), run(), and test_finished().

◆ monitor

int monitor
static

Was "monitor" specified?

Definition at line 51 of file gnunet-identity.c.

Referenced by main(), print_ego(), run(), and test_finished().

◆ private_keys

int private_keys
static

Was "private" specified?

Definition at line 56 of file gnunet-identity.c.

Referenced by create_finished(), main(), and print_ego().

◆ verbose

unsigned int verbose
static

Was "verbose" specified?

Definition at line 61 of file gnunet-identity.c.

Referenced by create_finished(), and main().

◆ quiet

int quiet
static

Was "quiet" specified?

Definition at line 66 of file gnunet-identity.c.

Referenced by main(), and print_ego().

◆ type_eddsa

int type_eddsa
static

Was "eddsa" specified?

Definition at line 71 of file gnunet-identity.c.

Referenced by main(), and run().

◆ create_ego

char* create_ego
static

-C option

Definition at line 76 of file gnunet-identity.c.

Referenced by main(), and run().

◆ delete_ego

char* delete_ego
static

-D option

Definition at line 81 of file gnunet-identity.c.

Referenced by main(), and run().

◆ privkey_ego

char* privkey_ego
static

-P option

Definition at line 86 of file gnunet-identity.c.

Referenced by main(), and run().

◆ set_ego

char* set_ego
static

-s option.

Definition at line 91 of file gnunet-identity.c.

Referenced by main(), print_ego(), run(), and shutdown_task().

◆ set_subsystem

char* set_subsystem
static

-S option.

Definition at line 96 of file gnunet-identity.c.

Referenced by main(), print_ego(), run(), and test_finished().

◆ set_op

struct GNUNET_IDENTITY_Operation* set_op
static

Operation handle for set operation.

Definition at line 101 of file gnunet-identity.c.

Referenced by print_ego(), set_done(), shutdown_task(), and test_finished().

◆ create_op

struct GNUNET_IDENTITY_Operation* create_op
static

Handle for create operation.

Definition at line 106 of file gnunet-identity.c.

Referenced by run(), shutdown_task(), and test_finished().

◆ delete_op

struct GNUNET_IDENTITY_Operation* delete_op
static

Handle for delete operation.

Definition at line 111 of file gnunet-identity.c.

Referenced by run(), shutdown_task(), and test_finished().

◆ pk

◆ global_ret

int global_ret
static

Value to return from main().

Definition at line 121 of file gnunet-identity.c.

Referenced by create_finished(), main(), set_done(), and test_finished().