aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2005-03-17 23:52:38 +0000
committerDavid Shaw <[email protected]>2005-03-17 23:52:38 +0000
commit5f7720e693817130c99b8cd0ea2375a55cf3dc2c (patch)
tree5ae5c113a6b1b4165161998f08eaee917fb1d4ae
parent* ksutil.c (parse_ks_options): Handle verbose=nnn. (diff)
downloadgnupg-5f7720e693817130c99b8cd0ea2375a55cf3dc2c.tar.gz
gnupg-5f7720e693817130c99b8cd0ea2375a55cf3dc2c.zip
* getkey.c (get_seckey_byname2): If no explicit default key is set, don't
pick a disabled default. Noted by David Crick.
Diffstat (limited to '')
-rw-r--r--g10/ChangeLog3
-rw-r--r--g10/getkey.c14
2 files changed, 13 insertions, 4 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 6e71ade07..c8fcdc300 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,5 +1,8 @@
2005-03-17 David Shaw <[email protected]>
+ * 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.
diff --git a/g10/getkey.c b/g10/getkey.c
index 789b540a1..25da9bac9 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -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 );