diff options
author | Werner Koch <[email protected]> | 2015-01-22 15:36:28 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2015-01-22 15:36:28 +0000 |
commit | 09e8f35d3808d6e49f891360c341aae3869e8650 (patch) | |
tree | b2260c1e987a48f4ab556a4b781fe3a50c262b27 /g10/keyserver.c | |
parent | gpg: Add dedicated error code for PGP-2 keys. (diff) | |
download | gnupg-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.c | 13 |
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; } |