mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
evm: load an x509 certificate from the kernel
This patch defines a configuration option and the evm_load_x509() hook to load an X509 certificate onto the EVM trusted kernel keyring. Changes in v4: * Patch description updated Changes in v3: * Removed EVM_X509_PATH definition. CONFIG_EVM_X509_PATH is used directly. Changes in v2: * default key patch changed to /etc/keys Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@huawei.com> Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
This commit is contained in:
parent
f4dc37785e
commit
2ce523eb89
@ -42,3 +42,20 @@ config EVM_EXTRA_SMACK_XATTRS
|
|||||||
additional info to the calculation, requires existing EVM
|
additional info to the calculation, requires existing EVM
|
||||||
labeled file systems to be relabeled.
|
labeled file systems to be relabeled.
|
||||||
|
|
||||||
|
config EVM_LOAD_X509
|
||||||
|
bool "Load an X509 certificate onto the '.evm' trusted keyring"
|
||||||
|
depends on INTEGRITY_TRUSTED_KEYRING
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Load an X509 certificate onto the '.evm' trusted keyring.
|
||||||
|
|
||||||
|
This option enables X509 certificate loading from the kernel
|
||||||
|
onto the '.evm' trusted keyring. A public key can be used to
|
||||||
|
verify EVM integrity starting from the 'init' process.
|
||||||
|
|
||||||
|
config EVM_X509_PATH
|
||||||
|
string "EVM X509 certificate path"
|
||||||
|
depends on EVM_LOAD_X509
|
||||||
|
default "/etc/keys/x509_evm.der"
|
||||||
|
help
|
||||||
|
This option defines X509 certificate path.
|
||||||
|
@ -472,6 +472,13 @@ out:
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(evm_inode_init_security);
|
EXPORT_SYMBOL_GPL(evm_inode_init_security);
|
||||||
|
|
||||||
|
#ifdef CONFIG_EVM_LOAD_X509
|
||||||
|
void __init evm_load_x509(void)
|
||||||
|
{
|
||||||
|
integrity_load_x509(INTEGRITY_KEYRING_EVM, CONFIG_EVM_X509_PATH);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int __init init_evm(void)
|
static int __init init_evm(void)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
@ -254,4 +254,5 @@ out:
|
|||||||
void __init integrity_load_keys(void)
|
void __init integrity_load_keys(void)
|
||||||
{
|
{
|
||||||
ima_load_x509();
|
ima_load_x509();
|
||||||
|
evm_load_x509();
|
||||||
}
|
}
|
||||||
|
@ -170,6 +170,14 @@ static inline void ima_load_x509(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_EVM_LOAD_X509
|
||||||
|
void __init evm_load_x509(void);
|
||||||
|
#else
|
||||||
|
static inline void evm_load_x509(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_INTEGRITY_AUDIT
|
#ifdef CONFIG_INTEGRITY_AUDIT
|
||||||
/* declarations */
|
/* declarations */
|
||||||
void integrity_audit_msg(int audit_msgno, struct inode *inode,
|
void integrity_audit_msg(int audit_msgno, struct inode *inode,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user