* keygen.c (generate_keypair): Create an AUTHKEYTYPE entry for cards.
[gnupg.git] / g10 / g10.c
index 6909e04..b7ad9d7 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -128,6 +128,7 @@ enum cmd_and_opt_values { aNull = 0,
     aPipeMode,
     aRebuildKeydbCaches,
     aRefreshKeys,
+    aChangePIN,
 
     oTextmode,
     oNoTextmode,
@@ -362,6 +363,8 @@ static ARGPARSE_OPTS opts[] = {
     { aExportSecretSub, "export-secret-subkeys" , 256, "@" },
     { aImport, "import",      256     , N_("import/merge keys")},
     { aFastImport, "fast-import",  256 , "@"},
+    { aChangePIN,  "change-pin", 256, N_("change a card's PIN")},
+
     { aListPackets, "list-packets",256,N_("list only the sequence of packets")},
     { aExportOwnerTrust,
              "export-ownertrust", 256, N_("export the ownertrust values")},
@@ -1228,6 +1231,7 @@ main( int argc, char **argv )
     opt.verify_options=VERIFY_SHOW_POLICY|VERIFY_SHOW_NOTATION;
     opt.trust_model=TM_AUTO;
     opt.mangle_dos_filenames = 1;
+    opt.use_agent = 1;
 
 #if defined (__MINGW32__)
     set_homedir ( read_w32_registry_string( NULL,
@@ -1440,6 +1444,8 @@ main( int argc, char **argv )
           case aPipeMode: set_cmd( &cmd, aPipeMode); break;
           case aRebuildKeydbCaches: set_cmd( &cmd, aRebuildKeydbCaches); break;
 
+          case aChangePIN: set_cmd (&cmd, aChangePIN); break;
+
          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;
@@ -1984,6 +1990,9 @@ main( int argc, char **argv )
     }
 #endif
 
+#warning locking does not work - disabled
+    disable_dotlock ();
+
     if (opt.verbose > 2)
         log_info ("using character set `%s'\n", get_native_charset ());
 
@@ -2337,6 +2346,7 @@ main( int argc, char **argv )
       case aDeArmor:
       case aEnArmor:
       case aFixTrustDB:
+      case aChangePIN:
        break;
       case aExportOwnerTrust: rc = setup_trustdb( 0, trustdb_name ); break;
       case aListTrustDB: rc = setup_trustdb( argc? 1:0, trustdb_name ); break;
@@ -2857,6 +2867,15 @@ main( int argc, char **argv )
         keydb_rebuild_caches ();
         break;
 
+    case aChangePIN:
+      if (!argc)
+        change_pin (0);
+      else if (argc == 1)
+        change_pin ( atoi (*argv));
+      else
+        wrong_args ("--change-pin [no]");
+      break;
+
       case aListPackets:
        opt.list_packets=2;
       default: