diff options
author | Fan Wu <wufan@linux.microsoft.com> | 2024-08-02 23:08:28 -0700 |
---|---|---|
committer | Paul Moore <paul@paul-moore.com> | 2024-08-20 14:02:58 -0400 |
commit | fb55e177d5936fb80fb2586036d195c57e7f6892 (patch) | |
tree | 0d6854ff38a9ee6d6332e1a1d1975f8da65e4309 /security | |
parent | e155858dd99523d4afe0f74e9c26e4f4499eb5af (diff) |
lsm: add security_inode_setintegrity() hook
This patch introduces a new hook to save inode's integrity
data. For example, for fsverity enabled files, LSMs can use this hook to
save the existence of verified fsverity builtin signature into the inode's
security blob, and LSMs can make access decisions based on this data.
Signed-off-by: Fan Wu <wufan@linux.microsoft.com>
[PM: subject line tweak, removed changelog]
Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'security')
-rw-r--r-- | security/security.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/security/security.c b/security/security.c index 3160a0173581..bb43ad444f1f 100644 --- a/security/security.c +++ b/security/security.c @@ -2717,6 +2717,26 @@ int security_inode_copy_up_xattr(struct dentry *src, const char *name) EXPORT_SYMBOL(security_inode_copy_up_xattr); /** + * security_inode_setintegrity() - Set the inode's integrity data + * @inode: inode + * @type: type of integrity, e.g. hash digest, signature, etc + * @value: the integrity value + * @size: size of the integrity value + * + * Register a verified integrity measurement of a inode with LSMs. + * LSMs should free the previously saved data if @value is NULL. + * + * Return: Returns 0 on success, negative values on failure. + */ +int security_inode_setintegrity(const struct inode *inode, + enum lsm_integrity_type type, const void *value, + size_t size) +{ + return call_int_hook(inode_setintegrity, inode, type, value, size); +} +EXPORT_SYMBOL(security_inode_setintegrity); + +/** * security_kernfs_init_security() - Init LSM context for a kernfs node * @kn_dir: parent kernfs node * @kn: the kernfs node to initialize |