diff --git a/g10/sig-check.c b/g10/sig-check.c --- a/g10/sig-check.c +++ b/g10/sig-check.c @@ -779,6 +779,7 @@ PKT_public_key *pripk = kb->pkt->pkt.public_key; gcry_md_hd_t md; int signer_alloced = 0; + int certification = 0; rc = openpgp_pk_test_algo (sig->pubkey_algo); if (rc) @@ -816,6 +817,7 @@ /* Certification revocation. */ || sig->sig_class == 0x30) { + certification = 1; if (packet->pkttype != PKT_USER_ID) return gpg_error (GPG_ERR_SIG_CLASS); } @@ -890,6 +892,9 @@ signer_alloced = 2; } + if (certification) + signer->req_usage = PUBKEY_USAGE_CERT; + rc = get_pubkey (ctrl, signer, sig->keyid); if (rc) {