From 7b6f6c01a0395187b2b52fb703749c7e2d2ff03f Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Fri, 2 Dec 2016 14:31:40 +0100 Subject: -cleanup cli tool --- src/credential/gnunet-credential.c | 193 +++++++++---------------------------- 1 file changed, 43 insertions(+), 150 deletions(-) (limited to 'src/credential') diff --git a/src/credential/gnunet-credential.c b/src/credential/gnunet-credential.c index 31cd4fd8f..bfd4223ba 100644 --- a/src/credential/gnunet-credential.c +++ b/src/credential/gnunet-credential.c @@ -24,7 +24,6 @@ */ #include "platform.h" #include -#include #include /** @@ -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; -- cgit v1.2.3