diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2012-01-22 17:27:11 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2012-01-22 17:27:11 +0100 |
commit | c69f729ef1cea90d98897e98bf6aa49a0c038109 (patch) | |
tree | 0f01b746f8f594392413458cdd1a7b0e9e597123 /src/p11tool.c | |
parent | d0ae20f780ac74857d70b4190166bf18195ef4d7 (diff) | |
download | gnutls-c69f729ef1cea90d98897e98bf6aa49a0c038109.tar.gz |
No need for action enumerations.
Diffstat (limited to 'src/p11tool.c')
-rw-r--r-- | src/p11tool.c | 137 |
1 files changed, 60 insertions, 77 deletions
diff --git a/src/p11tool.c b/src/p11tool.c index d800e46bea..beeaa5ab93 100644 --- a/src/p11tool.c +++ b/src/p11tool.c @@ -76,7 +76,7 @@ cmd_parser (int argc, char **argv) { int ret, debug = 0; common_info_st cinfo; - unsigned int action = 1, pkcs11_type = -1, key_type = GNUTLS_PK_UNKNOWN; + unsigned int pkcs11_type = -1, key_type = GNUTLS_PK_UNKNOWN; const char* url = NULL; unsigned int detailed_url = 0, optct; unsigned int login = 0, bits = 0; @@ -150,128 +150,111 @@ cmd_parser (int argc, char **argv) if (HAVE_OPT(LOAD_PUBKEY)) cinfo.pubkey = OPT_ARG(LOAD_PUBKEY); + + if (ENABLED_OPT(DETAILED_URL)) + detailed_url = 1; + + if (ENABLED_OPT(LOGIN)) + login = 1; + + if (HAVE_OPT(LABEL)) + { + label = OPT_ARG(LABEL); + } + + if (HAVE_OPT(BITS)) + { + bits = OPT_VALUE_BITS; + } + + if (HAVE_OPT(SEC_PARAM)) + { + sec_param = OPT_ARG(SEC_PARAM); + } + + if (debug > 0) + { + fprintf(stderr, "Private: %s\n", ENABLED_OPT(PRIVATE)?"yes":"no"); + fprintf(stderr, "Trusted: %s\n", ENABLED_OPT(TRUSTED)?"yes":"no"); + fprintf(stderr, "Login: %s\n", ENABLED_OPT(LOGIN)?"yes":"no"); + fprintf(stderr, "Detailed URLs: %s\n", ENABLED_OPT(DETAILED_URL)?"yes":"no"); + fprintf(stderr, "\n"); + } + /* handle actions + */ if (HAVE_OPT(LIST_TOKENS)) - action = ACTION_PKCS11_TOKENS; + pkcs11_token_list (outfile, detailed_url, &cinfo); else if (HAVE_OPT(LIST_MECHANISMS)) - action = ACTION_PKCS11_MECHANISMS; + pkcs11_mechanism_list (outfile, url, login, + &cinfo); else if (HAVE_OPT(LIST_ALL)) { pkcs11_type = PKCS11_TYPE_ALL; - action = ACTION_PKCS11_LIST; + pkcs11_list (outfile, url, pkcs11_type, + login, detailed_url, &cinfo); } else if (HAVE_OPT(LIST_ALL_CERTS)) { pkcs11_type = PKCS11_TYPE_CRT_ALL; - action = ACTION_PKCS11_LIST; + pkcs11_list (outfile, url, pkcs11_type, + login, detailed_url, &cinfo); } else if (HAVE_OPT(LIST_CERTS)) { pkcs11_type = PKCS11_TYPE_PK; - action = ACTION_PKCS11_LIST; + pkcs11_list (outfile, url, pkcs11_type, + login, detailed_url, &cinfo); } else if (HAVE_OPT(LIST_ALL_PRIVKEYS)) { pkcs11_type = PKCS11_TYPE_PRIVKEY; - action = ACTION_PKCS11_LIST; + pkcs11_list (outfile, url, pkcs11_type, + login, detailed_url, &cinfo); } else if (HAVE_OPT(LIST_ALL_TRUSTED)) { pkcs11_type = PKCS11_TYPE_TRUSTED; - action = ACTION_PKCS11_LIST; + pkcs11_list (outfile, url, pkcs11_type, + login, detailed_url, &cinfo); } else if (HAVE_OPT(EXPORT)) { - action = ACTION_PKCS11_EXPORT_URL; + pkcs11_export (outfile, url, login, &cinfo); } else if (HAVE_OPT(WRITE)) - action = ACTION_PKCS11_WRITE_URL; + pkcs11_write (outfile, url, label, + ENABLED_OPT(TRUSTED), ENABLED_OPT(PRIVATE), login, &cinfo); else if (HAVE_OPT(INITIALIZE)) - action = ACTION_PKCS11_TOKEN_INIT; + pkcs11_init (outfile, url, label, &cinfo); else if (HAVE_OPT(DELETE)) - action = ACTION_PKCS11_DELETE_URL; + pkcs11_delete (outfile, url, 0, login, &cinfo); else if (HAVE_OPT(GENERATE_ECC)) { key_type = GNUTLS_PK_EC; - action = ACTION_PKCS11_GENERATE; + pkcs11_generate (outfile, url, key_type, get_bits(key_type, bits, sec_param), + label, ENABLED_OPT(PRIVATE), detailed_url, login, + &cinfo); } else if (HAVE_OPT(GENERATE_RSA)) { key_type = GNUTLS_PK_RSA; - action = ACTION_PKCS11_GENERATE; + pkcs11_generate (outfile, url, key_type, get_bits(key_type, bits, sec_param), + label, ENABLED_OPT(PRIVATE), detailed_url, login, + &cinfo); } else if (HAVE_OPT(GENERATE_DSA)) { key_type = GNUTLS_PK_DSA; - action = ACTION_PKCS11_GENERATE; + pkcs11_generate (outfile, url, key_type, get_bits(key_type, bits, sec_param), + label, ENABLED_OPT(PRIVATE), detailed_url, login, + &cinfo); } else { USAGE(1); } - if (ENABLED_OPT(DETAILED_URL)) - detailed_url = 1; - - if (ENABLED_OPT(LOGIN)) - login = 1; - - if (HAVE_OPT(LABEL)) - { - label = OPT_ARG(LABEL); - } - - if (HAVE_OPT(BITS)) - { - bits = OPT_VALUE_BITS; - } - - if (HAVE_OPT(SEC_PARAM)) - { - sec_param = OPT_ARG(SEC_PARAM); - } - - if (debug > 0) - { - fprintf(stderr, "Private: %s\n", ENABLED_OPT(PRIVATE)?"yes":"no"); - fprintf(stderr, "Trusted: %s\n", ENABLED_OPT(TRUSTED)?"yes":"no"); - fprintf(stderr, "Login: %s\n", ENABLED_OPT(LOGIN)?"yes":"no"); - fprintf(stderr, "Detailed URLs: %s\n", ENABLED_OPT(DETAILED_URL)?"yes":"no"); - fprintf(stderr, "\n"); - } - - switch (action) - { - case ACTION_PKCS11_LIST: - pkcs11_list (outfile, url, pkcs11_type, - login, detailed_url, &cinfo); - break; - case ACTION_PKCS11_TOKENS: - pkcs11_token_list (outfile, detailed_url, &cinfo); - break; - case ACTION_PKCS11_MECHANISMS: - pkcs11_mechanism_list (outfile, url, login, - &cinfo); - break; - case ACTION_PKCS11_EXPORT_URL: - pkcs11_export (outfile, url, login, &cinfo); - break; - case ACTION_PKCS11_WRITE_URL: - pkcs11_write (outfile, url, label, - ENABLED_OPT(TRUSTED), ENABLED_OPT(PRIVATE), login, &cinfo); - break; - case ACTION_PKCS11_TOKEN_INIT: - pkcs11_init (outfile, url, label, &cinfo); - break; - case ACTION_PKCS11_DELETE_URL: - pkcs11_delete (outfile, url, 0, login, &cinfo); - break; - case ACTION_PKCS11_GENERATE: - pkcs11_generate (outfile, url, key_type, get_bits(key_type, bits, sec_param), - label, ENABLED_OPT(PRIVATE), detailed_url, login, - &cinfo); - break; - } fclose (outfile); #ifdef ENABLE_PKCS11 |