diff options
Diffstat (limited to 'g10/sig-check.c')
-rw-r--r-- | g10/sig-check.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/g10/sig-check.c b/g10/sig-check.c index c254b4897..bdbb958d6 100644 --- a/g10/sig-check.c +++ b/g10/sig-check.c @@ -475,15 +475,16 @@ check_key_signature( KBNODE root, KBNODE node, int *is_selfsig ) { u32 dummy; int dum2; - return check_key_signature2(root, node, is_selfsig, &dummy, &dum2 ); + return check_key_signature2(root, node, NULL, is_selfsig, &dummy, &dum2 ); } +/* If pk is NULL, then it is set from ROOT. Note that is_selfsig is + set from the pk. */ int -check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, - u32 *r_expiredate, int *r_expired ) +check_key_signature2( KBNODE root, KBNODE node, PKT_public_key *pk, + int *is_selfsig, u32 *r_expiredate, int *r_expired ) { MD_HANDLE md; - PKT_public_key *pk; PKT_signature *sig; int algo; int rc; @@ -495,7 +496,9 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, assert( node->pkt->pkttype == PKT_SIGNATURE ); assert( root->pkt->pkttype == PKT_PUBLIC_KEY ); - pk = root->pkt->pkt.public_key; + if(pk==NULL) + pk = root->pkt->pkt.public_key; + sig = node->pkt->pkt.signature; algo = sig->digest_algo; |