From 09e8f35d3808d6e49f891360c341aae3869e8650 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 22 Jan 2015 16:36:28 +0100 Subject: 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 --- g10/trustdb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'g10/trustdb.c') diff --git a/g10/trustdb.c b/g10/trustdb.c index 84179f0b0..08f6cf4a1 100644 --- a/g10/trustdb.c +++ b/g10/trustdb.c @@ -1604,6 +1604,9 @@ validate_key_list (KEYDB_HANDLE hd, KeyHashTable full_trust, { PKT_public_key *pk; + if (gpg_err_code (rc) == GPG_ERR_LEGACY_KEY) + continue; + rc = keydb_get_keyblock (hd, &keyblock); if (rc) { @@ -1660,7 +1663,8 @@ validate_key_list (KEYDB_HANDLE hd, KeyHashTable full_trust, release_kbnode (keyblock); keyblock = NULL; } - while (!(rc = keydb_search (hd, &desc, 1, NULL))); + while (!(rc = keydb_search (hd, &desc, 1, NULL)) + || gpg_err_code (rc) == GPG_ERR_LEGACY_KEY); if (rc && gpg_err_code (rc) != GPG_ERR_NOT_FOUND) { -- cgit v1.2.3