aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2024-06-11 10:41:51 +0000
committerWerner Koch <[email protected]>2024-06-11 10:41:51 +0000
commitd6bbb90f1eff4baaa2800b3a5b36798fbeee98d2 (patch)
tree9b15f9aa40cb7481f47c9cb6aa7c676a3f5818b8
parentbuild: Now uses an external gpg-authcode-sign.sh (diff)
downloadgnupg-d6bbb90f1eff4baaa2800b3a5b36798fbeee98d2.tar.gz
gnupg-d6bbb90f1eff4baaa2800b3a5b36798fbeee98d2.zip
gpg: Do not bail out on secret keys with an unknown algo
* g10/getkey.c (lookup): Skip keys with unknown algos. -- If the local store has private keys with an algorithm not supported by thi version of gpg, gpg used to bail out. Thus decryption of proper messages was not possible. This fix skips such secret keys.
-rw-r--r--g10/getkey.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/g10/getkey.c b/g10/getkey.c
index 1898acb4d..1430277d6 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -3986,6 +3986,8 @@ lookup (ctrl_t ctrl, getkey_ctx_t ctx, int want_secret,
rc = agent_probe_any_secret_key (ctrl, keyblock);
if (gpg_err_code(rc) == GPG_ERR_NO_SECKEY)
goto skip; /* No secret key available. */
+ if (gpg_err_code (rc) == GPG_ERR_PUBKEY_ALGO)
+ goto skip; /* Not implemented algo - skip. */
if (rc)
goto found; /* Unexpected error. */
}