On Wed, 2016-03-09 at 11:19 +0000, David Howells wrote:

> -#ifdef CONFIG_SYSTEM_TRUSTED_KEYRING
> -/*
> - * Restrict the addition of keys into the IMA keyring.
> - *
> - * Any key that needs to go in .ima keyring must be signed by CA in
> - * either .system or .ima_mok keyrings.
> - */
> -static int restrict_link_by_ima_mok(struct key *keyring,
> -                                 const struct key_type *type,
> -                                 const union key_payload *payload)
> -{
> -     int ret;
> -
> -     ret = restrict_link_by_builtin_trusted(keyring, type, payload);
> -     if (ret != -ENOKEY)
> -             return ret;
> -
> -     return restrict_link_by_signature(get_ima_mok_keyring(),
> -                                       type, payload);
> -}
> +#if defined(CONFIG_IMA_KEYRINGS_ADD_IF_SIGNED_BY_BUILTIN)
> +#define restrict_link_to_ima restrict_link_by_builtin_trusted
> +#elif defined(CONFIG_IMA_KEYRINGS_ADD_IF_SIGNED_BY_BUILTIN_OR_SECONDARY)
> +#define restrict_link_to_ima restrict_link_by_builtin_and_secondary_trusted

FYI, restrict_link_by_ima_mok() allows keys to be added to the IMA
keyring signed by a key on the .ima_mok keyring, but
restrict_link_by_builtin_and_secondary_trusted() results in "errno:
Required key not available (126)".

Mimi

Reply via email to