Re: [RFC PATCH v13 17/20] ipe: enable support for fs-verity as a trust provider

From: Eric Biggers
Date: Wed Feb 28 2024 - 23:46:40 EST


On Wed, Feb 28, 2024 at 04:54:59PM -0800, Fan Wu wrote:
> diff --git a/security/ipe/hooks.c b/security/ipe/hooks.c
> index f5190a1347a6..ca1573ff21b7 100644
> --- a/security/ipe/hooks.c
> +++ b/security/ipe/hooks.c
> @@ -254,3 +254,33 @@ int ipe_bdev_setsecurity(struct block_device *bdev, const char *key,
> return -EOPNOTSUPP;
> }
> #endif /* CONFIG_IPE_PROP_DM_VERITY */
> +
> +#ifdef CONFIG_IPE_PROP_FS_VERITY
> +/**
> + * ipe_inode_setsecurity - Sets fields of a inode security blob from @key.
> + * @inode: The inode to source the security blob from.
> + * @name: The name representing the information to be stored.
> + * @value: The value to be stored.
> + * @size: The size of @value.
> + * @flags: unused
> + *
> + * Saves fsverity signature & digest into inode security blob
> + *
> + * Return:
> + * * 0 - OK
> + * * !0 - Error
> + */
> +int ipe_inode_setsecurity(struct inode *inode, const char *name,
> + const void *value, size_t size,
> + int flags)
> +{
> + struct ipe_inode *inode_sec = ipe_inode(inode);
> +
> + if (!strcmp(name, FS_VERITY_INODE_SEC_NAME)) {
> + inode_sec->fs_verity_signed = size > 0 && value;
> + return 0;
> + }
> +
> + return -EOPNOTSUPP;
> +}

So IPE is interested in whether a file has an fsverity builtin signature, but it
doesn't care what the signature is or whether it has been checked. What is the
point?

- Eric