aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keyserver.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2015-01-22 15:36:28 +0000
committerWerner Koch <[email protected]>2015-01-22 15:36:28 +0000
commit09e8f35d3808d6e49f891360c341aae3869e8650 (patch)
treeb2260c1e987a48f4ab556a4b781fe3a50c262b27 /g10/keyserver.c
parentgpg: Add dedicated error code for PGP-2 keys. (diff)
downloadgnupg-09e8f35d3808d6e49f891360c341aae3869e8650.tar.gz
gnupg-09e8f35d3808d6e49f891360c341aae3869e8650.zip
gpg: Improve skipping of PGP-2 keys.
* g10/keydb.c (keydb_search_first, keydb_search_next): Skip legacy keys. * g10/keyring.c (keyring_get_keyblock): Handle GPG_ERR_LEGACY_KEY. (prepare_search): Ditto. (keyring_rebuild_cache): Skip legacy keys. * g10/keyserver.c (keyidlist): Ditto. * g10/trustdb.c (validate_key_list): Ditto. -- This is not the most elegant way to handle it but it reduces the chance for unwanted side effects. GnuPG-bug-id: 1816 Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
-rw-r--r--g10/keyserver.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/g10/keyserver.c b/g10/keyserver.c
index 0530907a9..035cd031f 100644
--- a/g10/keyserver.c
+++ b/g10/keyserver.c
@@ -1248,16 +1248,25 @@ keyidlist(strlist_t users,KEYDB_SEARCH_DESC **klist,int *count,int fakev3)
}
}
- while (!(rc = keydb_search (kdbhd, desc, ndesc, NULL)))
+ for (;;)
{
+ rc = keydb_search (kdbhd, desc, ndesc, NULL);
+ if (rc && gpg_err_code (rc) != GPG_ERR_LEGACY_KEY)
+ break; /* ready. */
+
if (!users)
desc[0].mode = KEYDB_SEARCH_MODE_NEXT;
+ if (gpg_err_code (rc) == GPG_ERR_LEGACY_KEY)
+ continue;
+
/* read the keyblock */
rc = keydb_get_keyblock (kdbhd, &keyblock );
if( rc )
{
- log_error (_("error reading keyblock: %s\n"), gpg_strerror (rc) );
+ if (gpg_err_code (rc) == GPG_ERR_LEGACY_KEY)
+ continue;
+ log_error (_("error reading keyblock: %s\n"), gpg_strerror (rc) );
goto leave;
}