diff --git a/crypto/asymmetric_keys/pgp_preload.c b/crypto/asymmetric_keys/pgp_preload.c index 418cd4785efbc1b5d07c2c0460d68fb1f5971704..14c19f7ea4671b3ae93d1b605f39c90d018bf034 100644 --- a/crypto/asymmetric_keys/pgp_preload.c +++ b/crypto/asymmetric_keys/pgp_preload.c @@ -102,7 +102,8 @@ int __init preload_pgp_keys(const u8 *pgpdata, size_t pgpdatalen, struct preload_pgp_keys_context ctx; int ret; - ctx.pgp.types_of_interest = (1 << PGP_PKT_PUBLIC_KEY); + ctx.pgp.types_of_interest = (1 << PGP_PKT_PUBLIC_KEY) | + (1 << PGP_PKT_PUBLIC_SUBKEY); ctx.pgp.process_packet = found_pgp_key; ctx.keyring = make_key_ref(keyring, 1); ctx.found_key = false; diff --git a/crypto/asymmetric_keys/pgp_public_key.c b/crypto/asymmetric_keys/pgp_public_key.c index e49bb79736da9b95aa3bc93aca48466b4d746434..6bcb22fc5075b17c9935b190a88ce9e32844ad58 100644 --- a/crypto/asymmetric_keys/pgp_public_key.c +++ b/crypto/asymmetric_keys/pgp_public_key.c @@ -309,6 +309,7 @@ static int pgp_key_parse(struct key_preparsed_payload *prep) memset(&ctx, 0, sizeof(ctx)); ctx.pgp.types_of_interest = (1 << PGP_PKT_PUBLIC_KEY) | + (1 << PGP_PKT_PUBLIC_SUBKEY) | (1 << PGP_PKT_USER_ID); ctx.pgp.process_packet = pgp_process_public_key;