aboutsummaryrefslogtreecommitdiffstats
path: root/g10/export.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2015-06-19 10:39:29 +0000
committerWerner Koch <[email protected]>2015-06-19 10:39:29 +0000
commitc5604eeee4b64a44a1ca1d517ace14fc1cbda298 (patch)
tree53f96d7f74914186bfacb074a619f0238bc1e44e /g10/export.c
parentdirmngr: Fix the cleanup zombies fix (685b782). (diff)
downloadgnupg-c5604eeee4b64a44a1ca1d517ace14fc1cbda298.tar.gz
gnupg-c5604eeee4b64a44a1ca1d517ace14fc1cbda298.zip
gpg: Fix export problem in case an old keyring has PGP-2 keys.
* g10/export.c (do_export_stream): Skip legacy keys. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g10/export.c')
-rw-r--r--g10/export.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/g10/export.c b/g10/export.c
index b65fb8d06..505012856 100644
--- a/g10/export.c
+++ b/g10/export.c
@@ -851,19 +851,26 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret,
kek = NULL;
}
- while (!(err = keydb_search (kdbhd, desc, ndesc, &descindex)))
+ for (;;)
{
int skip_until_subkey = 0;
u32 keyid[2];
PKT_public_key *pk;
+ err = keydb_search (kdbhd, desc, ndesc, &descindex);
if (!users)
desc[0].mode = KEYDB_SEARCH_MODE_NEXT;
+ if (gpg_err_code (err) == GPG_ERR_LEGACY_KEY)
+ continue; /* Skip PGP2 keys. */
+ if (err)
+ break;
/* Read the keyblock. */
release_kbnode (keyblock);
keyblock = NULL;
err = keydb_get_keyblock (kdbhd, &keyblock);
+ if (gpg_err_code (err) == GPG_ERR_LEGACY_KEY)
+ continue; /* Skip PGP2 keys. */
if (err)
{
log_error (_("error reading keyblock: %s\n"), gpg_strerror (err));