diff options
author | Werner Koch <[email protected]> | 2009-07-07 14:17:39 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2009-07-07 14:17:39 +0000 |
commit | 43427b0c91511abf58fab928268fa61d1ad110b9 (patch) | |
tree | b80e88d3766964ebe0f33a58a4244b4e9fa7d048 /tests/gpg/pgp-keylist.c | |
parent | Typo fix. (diff) | |
download | gpgme-43427b0c91511abf58fab928268fa61d1ad110b9.tar.gz gpgme-43427b0c91511abf58fab928268fa61d1ad110b9.zip |
Move gpg test programs to the top test directory.
Diffstat (limited to 'tests/gpg/pgp-keylist.c')
-rw-r--r-- | tests/gpg/pgp-keylist.c | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/tests/gpg/pgp-keylist.c b/tests/gpg/pgp-keylist.c deleted file mode 100644 index 4978b8dd..00000000 --- a/tests/gpg/pgp-keylist.c +++ /dev/null @@ -1,223 +0,0 @@ -/* pgp-keylist.c - Helper to show a key listing. - Copyright (C) 2008, 2009 g10 Code GmbH - - This file is part of GPGME. - - GPGME is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of - the License, or (at your option) any later version. - - GPGME is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this program; if not, see <http://www.gnu.org/licenses/>. -*/ - -/* We need to include config.h so that we know whether we are building - with large file system (LFS) support. */ -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -#include <gpgme.h> - -#define PGM "pgp-keylist" - -#include "t-support.h" - - -static int verbose; - - -static int -show_usage (int ex) -{ - fputs ("usage: " PGM " [options] [USERID]\n\n" - "Options:\n" - " --verbose run in verbose mode\n" - " --local use GPGME_KEYLIST_MODE_LOCAL\n" - " --extern use GPGME_KEYLIST_MODE_EXTERN\n" - " --sigs use GPGME_KEYLIST_MODE_SIGS\n" - " --sig-notations use GPGME_KEYLIST_MODE_SIG_NOTATIONS\n" - " --ephemeral use GPGME_KEYLIST_MODE_EPHEMERAL\n" - " --validate use GPGME_KEYLIST_MODE_VALIDATE\n" - " --import import all keys\n" - , stderr); - exit (ex); -} - -int -main (int argc, char **argv) -{ - int last_argc = -1; - gpgme_error_t err; - gpgme_ctx_t ctx; - gpgme_keylist_mode_t mode = 0; - gpgme_key_t key; - gpgme_keylist_result_t result; - int import = 0; - gpgme_key_t keyarray[100]; - int keyidx = 0; - - if (argc) - { argc--; argv++; } - - while (argc && last_argc != argc ) - { - last_argc = argc; - if (!strcmp (*argv, "--")) - { - argc--; argv++; - break; - } - else if (!strcmp (*argv, "--help")) - show_usage (0); - else if (!strcmp (*argv, "--verbose")) - { - verbose = 1; - argc--; argv++; - } - else if (!strcmp (*argv, "--local")) - { - mode |= GPGME_KEYLIST_MODE_LOCAL; - argc--; argv++; - } - else if (!strcmp (*argv, "--extern")) - { - mode |= GPGME_KEYLIST_MODE_EXTERN; - argc--; argv++; - } - else if (!strcmp (*argv, "--sigs")) - { - mode |= GPGME_KEYLIST_MODE_SIGS; - argc--; argv++; - } - else if (!strcmp (*argv, "--sig-notations")) - { - mode |= GPGME_KEYLIST_MODE_SIG_NOTATIONS; - argc--; argv++; - } - else if (!strcmp (*argv, "--ephemeral")) - { - mode |= GPGME_KEYLIST_MODE_EPHEMERAL; - argc--; argv++; - } - else if (!strcmp (*argv, "--validate")) - { - mode |= GPGME_KEYLIST_MODE_VALIDATE; - argc--; argv++; - } - else if (!strcmp (*argv, "--import")) - { - import = 1; - argc--; argv++; - } - else if (!strncmp (*argv, "--", 2)) - show_usage (1); - - } - - if (argc > 1) - show_usage (1); - - init_gpgme (GPGME_PROTOCOL_OpenPGP); - - err = gpgme_new (&ctx); - fail_if_err (err); - gpgme_set_protocol (ctx, GPGME_PROTOCOL_OpenPGP); - - gpgme_set_keylist_mode (ctx, mode); - - err = gpgme_op_keylist_start (ctx, argc? argv[0]:NULL, 0); - fail_if_err (err); - - while (!(err = gpgme_op_keylist_next (ctx, &key))) - { - gpgme_user_id_t uid; - int nuids; - - - printf ("keyid : %s\n", key->subkeys?nonnull (key->subkeys->keyid):"?"); - printf ("fpr : %s\n", key->subkeys?nonnull (key->subkeys->fpr):"?"); - printf ("caps : %s%s%s%s\n", - key->can_encrypt? "e":"", - key->can_sign? "s":"", - key->can_certify? "c":"", - key->can_authenticate? "a":""); - printf ("flags :%s%s%s%s%s%s\n", - key->secret? " secret":"", - key->revoked? " revoked":"", - key->expired? " expired":"", - key->disabled? " disabled":"", - key->invalid? " invalid":"", - key->is_qualified? " qualifid":""); - for (nuids=0, uid=key->uids; uid; uid = uid->next, nuids++) - { - printf ("userid %d: %s\n", nuids, nonnull(uid->uid)); - printf ("valid %d: %s\n", nuids, - uid->validity == GPGME_VALIDITY_UNKNOWN? "unknown": - uid->validity == GPGME_VALIDITY_UNDEFINED? "undefined": - uid->validity == GPGME_VALIDITY_NEVER? "never": - uid->validity == GPGME_VALIDITY_MARGINAL? "marginal": - uid->validity == GPGME_VALIDITY_FULL? "full": - uid->validity == GPGME_VALIDITY_ULTIMATE? "ultimate": "[?]"); - } - - putchar ('\n'); - - if (import) - { - if (keyidx < DIM (keyarray)-1) - keyarray[keyidx++] = key; - else - { - fprintf (stderr, PGM": too many keys in import mode" - "- skipping this key\n"); - gpgme_key_unref (key); - } - } - else - gpgme_key_unref (key); - } - if (gpg_err_code (err) != GPG_ERR_EOF) - fail_if_err (err); - err = gpgme_op_keylist_end (ctx); - fail_if_err (err); - keyarray[keyidx] = NULL; - - result = gpgme_op_keylist_result (ctx); - if (result->truncated) - { - fprintf (stderr, PGM ": key listing unexpectedly truncated\n"); - exit (1); - } - - if (import) - { - gpgme_import_result_t impres; - - err = gpgme_op_import_keys (ctx, keyarray); - fail_if_err (err); - impres = gpgme_op_import_result (ctx); - if (!impres) - { - fprintf (stderr, PGM ": no import result returned\n"); - exit (1); - } - print_import_result (impres); - } - - for (keyidx=0; keyarray[keyidx]; keyidx++) - gpgme_key_unref (keyarray[keyidx]); - - gpgme_release (ctx); - return 0; -} |