-cleanup cli tool
authorSchanzenbach, Martin <mschanzenbach@posteo.de>
Fri, 2 Dec 2016 13:31:40 +0000 (14:31 +0100)
committerSchanzenbach, Martin <mschanzenbach@posteo.de>
Fri, 2 Dec 2016 13:31:40 +0000 (14:31 +0100)
src/credential/gnunet-credential.c

index 31cd4fd8f5e06ab43c61642eb8ccb3106b32bba0..bfd4223bab8fb466344a020d133ef5ee6cd12940 100644 (file)
@@ -24,7 +24,6 @@
  */
 #include "platform.h"
 #include <gnunet_util_lib.h>
-#include <gnunet_identity_service.h>
 #include <gnunet_credential_service.h>
 
 /**
@@ -42,31 +41,11 @@ static struct GNUNET_CREDENTIAL_Handle *credential;
  */
 static struct GNUNET_TIME_Relative timeout;
 
-/**
- * Credential to lookup. (-u option)
- */
-static char *lookup_credential;
-
 /**
  * Handle to verify request
  */
 static struct GNUNET_CREDENTIAL_Request *verify_request;
 
-/**
- * Lookup an ego with the identity service.
- */
-static struct GNUNET_IDENTITY_EgoLookup *el;
-
-/**
- * Handle for identity service.
- */
-static struct GNUNET_IDENTITY_Handle *identity;
-
-/**
- * Active operation on identity service.
- */
-static struct GNUNET_IDENTITY_Operation *id_op;
-
 /**
  * Task scheduled to handle timeout.
  */
@@ -78,16 +57,19 @@ static struct GNUNET_SCHEDULER_Task *tt;
 static char *subject_key;
 
 /**
- * Subject pubkey string
+ * Subject credential string
  */
-static char *issuer_key;
-
+static char *subject_credential;
 
+/**
+ * Issuer pubkey string
+ */
+static char *issuer_key;
 
 /**
- * Identity of the zone to use for the lookup (-z option)
+ * Issuer attribute
  */
-static char *zone_ego_name;
+static char *issuer_attr;
 
 
 /**
@@ -98,26 +80,11 @@ static char *zone_ego_name;
 static void
 do_shutdown (void *cls)
 {
-  if (NULL != el)
-  {
-    GNUNET_IDENTITY_ego_lookup_cancel (el);
-    el = NULL;
-  }
-  if (NULL != id_op)
-  {
-    GNUNET_IDENTITY_cancel (id_op);
-    id_op = NULL;
-  }
   if (NULL != verify_request)
   {
     GNUNET_CREDENTIAL_verify_cancel (verify_request);
     verify_request = NULL;
   }
-  if (NULL != identity)
-  {
-    GNUNET_IDENTITY_disconnect (identity);
-    identity = NULL;
-  }
   if (NULL != credential)
   {
     GNUNET_CREDENTIAL_disconnect (credential);
@@ -172,20 +139,39 @@ handle_verify_result (void *cls,
 
 
 /**
- * Perform the actual resolution, with the subject pkey and
- * the issuer public key
+ * Main function that will be run.
  *
- * @param pkey public key to use for the zone, can be NULL
- * @param shorten_key private key used for shortening, can be NULL
+ * @param cls closure
+ * @param args remaining command-line arguments
+ * @param cfgfile name of the configuration file used (for saving, can be NULL!)
+ * @param c configuration
  */
 static void
-lookup_credentials (struct GNUNET_IDENTITY_Ego *ego)
+run (void *cls,
+     char *const *args,
+     const char *cfgfile,
+     const struct GNUNET_CONFIGURATION_Handle *c)
 {
 
+  cfg = c;
+  credential = GNUNET_CREDENTIAL_connect (cfg);
+
+  if (NULL == credential)
+  {
+    fprintf (stderr,
+             _("Failed to connect to CREDENTIAL\n"));
+    return;
+  }
+  tt = GNUNET_SCHEDULER_add_delayed (timeout,
+                                     &do_timeout, NULL);
+  GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL);
+
+
+
   struct GNUNET_CRYPTO_EcdsaPublicKey subject_pkey;
   struct GNUNET_CRYPTO_EcdsaPublicKey issuer_pkey;
 
-  if (NULL != subject_key && NULL != issuer_key && NULL != lookup_credential)
+  if (NULL != subject_key && NULL != issuer_key)
   {
     if (GNUNET_OK !=
         GNUNET_CRYPTO_ecdsa_public_key_from_string (subject_key,
@@ -213,9 +199,9 @@ lookup_credentials (struct GNUNET_IDENTITY_Ego *ego)
 
     verify_request = GNUNET_CREDENTIAL_verify(credential,
                                               &issuer_pkey,
-                                              "test", //TODO argument
+                                              issuer_attr, //TODO argument
                                               &subject_pkey,
-                                              lookup_credential,
+                                              subject_credential,
                                               &handle_verify_result,
                                               NULL);
     return;
@@ -230,93 +216,6 @@ lookup_credentials (struct GNUNET_IDENTITY_Ego *ego)
 }
 
 
-/**
- * Method called to with the ego we are to use for the lookup,
- * when the ego is the one for the default master zone.
- *
- * @param cls closure (NULL, unused)
- * @param ego ego handle, NULL if not found
- * @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
- *                   must thus no longer be used
- */
-static void
-identity_master_cb (void *cls,
-                    struct GNUNET_IDENTITY_Ego *ego,
-                    void **ctx,
-                    const char *name)
-{
-
-  id_op = NULL;
-  if (NULL == ego)
-  {
-    fprintf (stderr,
-             _("Ego for `gns-master' not found, cannot perform lookup.  Did you run gnunet-gns-import.sh?\n"));
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-
-  lookup_credentials(ego);
-
-
-}
-
-
-/**
- * Main function that will be run.
- *
- * @param cls closure
- * @param args remaining command-line arguments
- * @param cfgfile name of the configuration file used (for saving, can be NULL!)
- * @param c configuration
- */
-static void
-run (void *cls,
-     char *const *args,
-     const char *cfgfile,
-     const struct GNUNET_CONFIGURATION_Handle *c)
-{
-
-  cfg = c;
-  credential = GNUNET_CREDENTIAL_connect (cfg);
-  identity = GNUNET_IDENTITY_connect (cfg, NULL, NULL);
-
-
-
-
-  if (NULL == credential)
-  {
-    fprintf (stderr,
-             _("Failed to connect to CREDENTIAL\n"));
-    return;
-  }
-  if (NULL == identity)
-  {
-    fprintf (stderr,
-             _("Failed to connect to IDENTITY\n"));
-    return;
-  }
-  tt = GNUNET_SCHEDULER_add_delayed (timeout,
-                                     &do_timeout, NULL);
-  GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL);
-
-
-
-  GNUNET_break (NULL == id_op);
-  id_op = GNUNET_IDENTITY_get (identity,
-                               "gns-master",//# TODO: Create credential-master
-                               &identity_master_cb,
-                               cls);
-  GNUNET_assert (NULL != id_op);
-
-
-
-
-}
-
-
 /**
  * The main function for gnunet-gns.
  *
@@ -328,24 +227,18 @@ int
 main (int argc, char *const *argv)
 {
   static const struct GNUNET_GETOPT_CommandLineOption options[] = {
-    {'u', "lookup", "CREDENTIAL",
-      gettext_noop ("Lookup a record for the given credential"), 1,
-      &GNUNET_GETOPT_set_string, &lookup_credential},
-    /** { 'T', "timeout", "DELAY",
-      gettext_noop ("Specify timeout for the lookup"), 1,
-      &GNUNET_GETOPT_set_relative_time, &timeout },
-      {'t', "type", "TYPE",
-      gettext_noop ("Specify the type of the record to lookup"), 1,
-      &GNUNET_GETOPT_set_string, &lookup_type},**/
-    {'z', "zone", "NAME",
-      gettext_noop ("Specify the name of the ego of the zone to lookup the record in"), 1,
-      &GNUNET_GETOPT_set_string, &zone_ego_name},
     {'s', "subject", "PKEY",
-      gettext_noop ("Specify the public key of the subject to lookup the credential for"), 1,
+      gettext_noop ("The public key of the subject to lookup the credential for"), 1,
       &GNUNET_GETOPT_set_string, &subject_key},
+    {'c', "credential", "CRED",
+      gettext_noop ("The name of the credential presented by the subject"), 1,
+      &GNUNET_GETOPT_set_string, &subject_credential},
     {'i', "issuer", "PKEY",
-      gettext_noop ("Specify the public key of the authority to verify the credential against"), 1,
+      gettext_noop ("The public key of the authority to verify the credential against"), 1,
       &GNUNET_GETOPT_set_string, &issuer_key},
+    {'a', "attribute", "ATTR",
+      gettext_noop ("The issuer attribute to verify against"), 1, 
+      &GNUNET_GETOPT_set_string, &issuer_attr},
     GNUNET_GETOPT_OPTION_END
   };
   int ret;