diff options
author | Werner Koch <[email protected]> | 2015-07-29 14:10:54 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2015-07-29 14:11:17 +0000 |
commit | 23d8609f4b5ec3432323a676fd7ef225c0ef71a1 (patch) | |
tree | 763a543a90510409a984ccb8ad93af3162a53be1 | |
parent | doc: Document that gpg --edit-key's toggle is a nop. (diff) | |
download | gnupg-23d8609f4b5ec3432323a676fd7ef225c0ef71a1.tar.gz gnupg-23d8609f4b5ec3432323a676fd7ef225c0ef71a1.zip |
gpg: Do not return "Legacy Key" from lookup if a key is expired.
* g10/getkey.c (lookup): Map GPG_ERR_LEGACY_KEY.
--
If an expired key is directly followed by a legacy key in the keyring,
the lookup function incorrectly returned "legacy key" instead of
"unusable key". We fix it by handling not found identical to a legacy
key if the last finish lookup failed.
Signed-off-by: Werner Koch <[email protected]>
-rw-r--r-- | g10/getkey.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/g10/getkey.c b/g10/getkey.c index 5f118ea7d..14b912a4b 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -2633,7 +2633,8 @@ found: *ret_keyblock = ctx->keyblock; /* Return the keyblock. */ ctx->keyblock = NULL; } - else if (gpg_err_code (rc) == GPG_ERR_NOT_FOUND && no_suitable_key) + else if ((gpg_err_code (rc) == GPG_ERR_NOT_FOUND + || gpg_err_code (rc) == GPG_ERR_LEGACY_KEY) && no_suitable_key) rc = want_secret? GPG_ERR_UNUSABLE_SECKEY : GPG_ERR_UNUSABLE_PUBKEY; else if (gpg_err_code (rc) == GPG_ERR_NOT_FOUND) rc = want_secret? GPG_ERR_NO_SECKEY : GPG_ERR_NO_PUBKEY; |