aboutsummaryrefslogtreecommitdiffstats
path: root/g10/getkey.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/getkey.c')
-rw-r--r--g10/getkey.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/g10/getkey.c b/g10/getkey.c
index 929427302..348755df1 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -2318,6 +2318,12 @@ finish_lookup (GETKEY_CTX ctx)
if (DBG_CACHE)
log_debug ("\tchecking subkey %08lX\n",
(ulong) keyid_from_pk (pk, NULL));
+ if (pk->version <= 3 && !opt.allow_v3_keys)
+ {
+ if (DBG_CACHE)
+ log_debug ("\tv3 subkey not allowed\n");
+ continue;
+ }
if (!pk->flags.valid)
{
if (DBG_CACHE)
@@ -2373,7 +2379,12 @@ finish_lookup (GETKEY_CTX ctx)
if (DBG_CACHE && !foundk && !req_prim)
log_debug ("\tno suitable subkeys found - trying primary\n");
pk = keyblock->pkt->pkt.public_key;
- if (!pk->flags.valid)
+ if (pk->version <= 3 && !opt.allow_v3_keys)
+ {
+ if (DBG_CACHE)
+ log_debug ("\tv3 primary key not allowed\n");
+ }
+ else if (!pk->flags.valid)
{
if (DBG_CACHE)
log_debug ("\tprimary key not valid\n");