aboutsummaryrefslogtreecommitdiffstats
path: root/g10/g10.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2003-09-28 13:41:58 +0000
committerWerner Koch <[email protected]>2003-09-28 13:41:58 +0000
commite369270a655fdab6b78053231c03bc2d82b672a9 (patch)
tree52d106255c5a1ce9dbfdffd09cb9b3f08197eb77 /g10/g10.c
parentFirst bits of a card support backport from 1.9. It is not enabled by (diff)
downloadgnupg-e369270a655fdab6b78053231c03bc2d82b672a9.tar.gz
gnupg-e369270a655fdab6b78053231c03bc2d82b672a9.zip
* g10.c (main): New commands --card-edit, --card-status and
--change-pin. New options --ctapi-driver, --pcsc-driver and --disable-ccid * options.h (DBG_CARD_IO): New. * cardglue.c, cardclue.h: Enhanced. * card-util.c: New. Taken from current the gnupg 1.9 branch. * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c * apdu.h, ccid-driver.c, ccid-driver.h: New. Takem from the current gnupg 1.9 branch withy minor changes to include directives. * Makefile.am: Added these files.
Diffstat (limited to 'g10/g10.c')
-rw-r--r--g10/g10.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/g10/g10.c b/g10/g10.c
index a28077960..f50bbe88b 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -128,6 +128,9 @@ enum cmd_and_opt_values { aNull = 0,
aPipeMode,
aRebuildKeydbCaches,
aRefreshKeys,
+ aCardStatus,
+ aCardEdit,
+ aChangePIN,
oTextmode,
oNoTextmode,
@@ -318,6 +321,12 @@ enum cmd_and_opt_values { aNull = 0,
oNoMangleDosFilenames,
oEnableProgressFilter,
oMultifile,
+
+ oReaderPort,
+ octapiDriver,
+ opcscDriver,
+ oDisableCCID,
+
aTest };
@@ -365,6 +374,11 @@ static ARGPARSE_OPTS opts[] = {
{ aExportSecretSub, "export-secret-subkeys" , 256, "@" },
{ aImport, "import", 256 , N_("import/merge keys")},
{ aFastImport, "fast-import", 256 , "@"},
+#ifdef ENABLE_CARD_SUPPORT
+ { aCardStatus, "card-status", 256, N_("print the card status")},
+ { aCardEdit, "card-edit", 256, N_("change data on a card")},
+ { aChangePIN, "change-pin", 256, N_("change a card's PIN")},
+#endif
{ aListPackets, "list-packets",256, "@"},
{ aExportOwnerTrust, "export-ownertrust", 256, "@"},
{ aImportOwnerTrust, "import-ownertrust", 256, "@"},
@@ -622,6 +636,13 @@ static ARGPARSE_OPTS opts[] = {
{ oNoMangleDosFilenames, "no-mangle-dos-filenames", 0, "@" },
{ oEnableProgressFilter, "enable-progress-filter", 0, "@" },
{ oMultifile, "multifile", 0, "@" },
+
+ { oReaderPort, "reader-port", 2, "@"},
+ { octapiDriver, "ctapi-driver", 2, "@"},
+ { opcscDriver, "pcsc-driver", 2, "@"},
+ { oDisableCCID, "disable-ccidc", 0, "@"},
+
+
{0} };
@@ -1392,6 +1413,18 @@ main( int argc, char **argv )
case aPipeMode: set_cmd( &cmd, aPipeMode); break;
case aRebuildKeydbCaches: set_cmd( &cmd, aRebuildKeydbCaches); break;
+#ifdef ENABLE_CARD_SUPPORT
+ case aCardStatus: set_cmd (&cmd, aCardStatus); break;
+ case aCardEdit: set_cmd (&cmd, aCardEdit); break;
+ case aChangePIN: set_cmd (&cmd, aChangePIN); break;
+ case oReaderPort:
+ app_set_default_reader_port (pargs.r.ret_str);
+ break;
+ case octapiDriver: opt.ctapi_driver = pargs.r.ret_str; break;
+ case opcscDriver: opt.pcsc_driver = pargs.r.ret_str; break;
+ case oDisableCCID: opt.disable_ccid = 1; break;
+#endif /* ENABLE_CARD_SUPPORT*/
+
case oArmor: opt.armor = 1; opt.no_armor=0; break;
case oOutput: opt.outfile = pargs.r.ret_str; break;
case oQuiet: opt.quiet = 1; break;
@@ -2828,6 +2861,36 @@ main( int argc, char **argv )
keydb_rebuild_caches ();
break;
+#ifdef ENABLE_CARD_SUPPORT
+ case aCardStatus:
+ if (argc)
+ wrong_args ("--card-status");
+ card_status (stdout);
+ break;
+
+ case aCardEdit:
+ if (argc) {
+ sl = NULL;
+ for (argc--, argv++ ; argc; argc--, argv++)
+ append_to_strlist (&sl, *argv);
+ card_edit (sl);
+ free_strlist (sl);
+ }
+ else
+ card_edit (NULL);
+ break;
+
+ case aChangePIN:
+ if (!argc)
+ change_pin (0);
+ else if (argc == 1)
+ change_pin ( atoi (*argv));
+ else
+ wrong_args ("--change-pin [no]");
+ break;
+#endif /* ENABLE_CARD_SUPPORT*/
+
+
case aListPackets:
opt.list_packets=2;
default: