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