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, 9 insertions, 4 deletions
diff --git a/g10/getkey.c b/g10/getkey.c
index e479ed6ea..7e6c30c91 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -1895,11 +1895,10 @@ merge_selfsigs_subkey( KBNODE keyblock, KBNODE subnode )
}
}
- if ( !signode ) {
- return; /* no valid key binding */
- }
+ /* no valid key binding */
+ if ( !signode )
+ return;
- subpk->is_valid = 1;
sig = signode->pkt->pkt.signature;
p = parse_sig_subpkt (sig->hashed, SIGSUBPKT_KEY_FLAGS, &n );
@@ -1929,6 +1928,12 @@ merge_selfsigs_subkey( KBNODE keyblock, KBNODE subnode )
key_expire = 0;
subpk->has_expired = key_expire >= curtime? 0 : key_expire;
subpk->expiredate = key_expire;
+
+ /* algo doesn't exist */
+ if(check_pubkey_algo(subpk->pubkey_algo))
+ return;
+
+ subpk->is_valid = 1;
}