* getkey.c (get_seckey_byname2): If no explicit default key is set, don't
authorDavid Shaw <dshaw@jabberwocky.com>
Thu, 17 Mar 2005 23:52:38 +0000 (23:52 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Thu, 17 Mar 2005 23:52:38 +0000 (23:52 +0000)
pick a disabled default.  Noted by David Crick.

g10/ChangeLog
g10/getkey.c

index 6e71ade..c8fcdc3 100644 (file)
@@ -1,5 +1,8 @@
 2005-03-17  David Shaw  <dshaw@jabberwocky.com>
 
+       * getkey.c (get_seckey_byname2): If no explicit default key is
+       set, don't pick a disabled default.  Noted by David Crick.
+
        * Makefile.am: Calculate GNUPG_LIBEXECDIR directly.  Do not
        redefine $libexecdir.
 
index 789b540..25da9ba 100644 (file)
@@ -1,6 +1,6 @@
 /* getkey.c -  Get a key from the database
- * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003,
- *               2004, 2005 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ *               2005 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -1059,14 +1059,20 @@ get_seckey_byname2( GETKEY_CTX *retctx,
                    KBNODE *retblock )
 {
   STRLIST namelist = NULL;
-  int rc;
+  int rc,include_unusable=1;
+
+  /* If we have no name, try to use the default secret key.  If we
+     have no default, we'll use the first usable one. */
 
   if( !name && opt.def_secret_key && *opt.def_secret_key )
     add_to_strlist( &namelist, opt.def_secret_key );
   else if(name)
     add_to_strlist( &namelist, name );
+  else
+    include_unusable=0;
 
-  rc = key_byname( retctx, namelist, NULL, sk, 1, 1, retblock, NULL );
+  rc = key_byname( retctx, namelist, NULL, sk, 1, include_unusable,
+                  retblock, NULL );
 
   free_strlist( namelist );