- fix encryption/decryption visisbility
[oweals/gnunet.git] / src / include / gnunet_identity_service.h
index 1d682cb1e9f05161bb47ce2b048ac4119f6b80c5..49b269604cbceaa23edd9cf1b3baefe55e43e328 100644 (file)
@@ -18,7 +18,7 @@
      Boston, MA 02111-1307, USA.
 */
 
-/** 
+/**
  * @file include/gnunet_identity_service.h
  * @brief Identity service; implements identity management for GNUnet
  * @author Christian Grothoff
@@ -49,22 +49,22 @@ extern "C"
 #include "gnunet_util_lib.h"
 
 
-/** 
+/**
  * Version number of GNUnet Identity API.
  */
 #define GNUNET_IDENTITY_VERSION 0x00000000
 
-/** 
+/**
  * Handle to access the identity service.
  */
 struct GNUNET_IDENTITY_Handle;
 
-/** 
+/**
  * Handle for a ego.
  */
 struct GNUNET_IDENTITY_Ego;
 
-/** 
+/**
  * Handle for an operation with the identity service.
  */
 struct GNUNET_IDENTITY_Operation;
@@ -76,14 +76,14 @@ struct GNUNET_IDENTITY_Operation;
  * @param ego the ego
  * @return associated ECC key, valid as long as the ego is valid
  */
-const struct GNUNET_CRYPTO_EccPrivateKey *
+const struct GNUNET_CRYPTO_EcdsaPrivateKey *
 GNUNET_IDENTITY_ego_get_private_key (const struct GNUNET_IDENTITY_Ego *ego);
 
 
 /**
  * Obtain the ego representing 'anonymous' users.
  *
- * @returns handle for the anonymous user, must not be freed
+ * @return handle for the anonymous user, must not be freed
  */
 const struct GNUNET_IDENTITY_Ego *
 GNUNET_IDENTITY_ego_get_anonymous (void);
@@ -97,12 +97,12 @@ GNUNET_IDENTITY_ego_get_anonymous (void);
  */
 void
 GNUNET_IDENTITY_ego_get_public_key (const struct GNUNET_IDENTITY_Ego *ego,
-                                   struct GNUNET_CRYPTO_EccPublicKey *pk);
+                                   struct GNUNET_CRYPTO_EcdsaPublicKey *pk);
 
 
-/** 
+/**
  * Method called to inform about the egos of
- * this peer. 
+ * this peer.
  *
  * When used with #GNUNET_IDENTITY_connect, this function is
  * initially called for all egos and then again whenever a
@@ -116,11 +116,11 @@ GNUNET_IDENTITY_ego_get_public_key (const struct GNUNET_IDENTITY_Ego *ego,
  * @a ego does indicate an error (i.e. name is taken or no default
  * value is known).  If @a 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 
+ * 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) @a ego but the NEW @a name.  
+ * (known) @a ego but the NEW @a name.
  *
  * When an identity is deleted, this function is called with the
  * (known) ego and "NULL" for the @a name.  In this case,
@@ -129,7 +129,7 @@ GNUNET_IDENTITY_ego_get_public_key (const struct GNUNET_IDENTITY_Ego *ego,
  *
  * @param cls closure
  * @param ego ego handle
- * @param ego_ctx context for application to store data for this ego
+ * @param ctx context for application to store data for this ego
  *                 (during the lifetime of this process, initially NULL)
  * @param name name assigned by the user for this ego,
  *                   NULL if the user just deleted the ego and it
@@ -141,7 +141,7 @@ typedef void (*GNUNET_IDENTITY_Callback)(void *cls,
                                         const char *name);
 
 
-/** 
+/**
  * Connect to the identity service.
  *
  * @param cfg Configuration to contact the identity service.
@@ -205,12 +205,12 @@ GNUNET_IDENTITY_set (struct GNUNET_IDENTITY_Handle *id,
  * Disconnect from identity service.
  *
  * @param h identity service to disconnect
- */ 
+ */
 void
 GNUNET_IDENTITY_disconnect (struct GNUNET_IDENTITY_Handle *h);
 
 
-/** 
+/**
  * Create a new identity with the given name.
  *
  * @param id identity service to use
@@ -226,7 +226,7 @@ GNUNET_IDENTITY_create (struct GNUNET_IDENTITY_Handle *id,
                        void *cont_cls);
 
 
-/** 
+/**
  * Renames an existing identity.
  *
  * @param id identity service to use
@@ -244,7 +244,7 @@ GNUNET_IDENTITY_rename (struct GNUNET_IDENTITY_Handle *id,
                        void *cb_cls);
 
 
-/** 
+/**
  * Delete an existing identity.
  *
  * @param id identity service to use
@@ -272,6 +272,48 @@ void
 GNUNET_IDENTITY_cancel (struct GNUNET_IDENTITY_Operation *op);
 
 
+/* ************* convenience API to lookup an ego ***************** */
+
+/**
+ * Function called with the result.
+ *
+ * @param cls closure
+ * @param ego NULL on error / ego not found
+ */
+typedef void (*GNUNET_IDENTITY_EgoCallback)(void *cls,
+                                           const struct GNUNET_IDENTITY_Ego *ego);
+
+/**
+ * Handle for ego lookup.
+ */
+struct GNUNET_IDENTITY_EgoLookup;
+
+
+/**
+ * Lookup an ego by name.
+ *
+ * @param cfg configuration to use
+ * @param name name to look up
+ * @param cb callback to invoke with the result
+ * @param cb_cls closure for @a cb
+ * @return NULL on error
+ */
+struct GNUNET_IDENTITY_EgoLookup *
+GNUNET_IDENTITY_ego_lookup (const struct GNUNET_CONFIGURATION_Handle *cfg,
+                           const char *name,
+                           GNUNET_IDENTITY_EgoCallback cb,
+                           void *cb_cls);
+
+
+/**
+ * Abort ego lookup attempt.
+ *
+ * @param el handle for lookup to abort
+ */
+void
+GNUNET_IDENTITY_ego_lookup_cancel (struct GNUNET_IDENTITY_EgoLookup *el);
+
+
 #if 0                           /* keep Emacsens' auto-indent happy */
 {
 #endif