fs-verity: support reading Merkle tree with ioctl

Add support for FS_VERITY_METADATA_TYPE_MERKLE_TREE to
FS_IOC_READ_VERITY_METADATA.  This allows a userspace server program to
retrieve the Merkle tree of a verity file for serving to a client which
implements fs-verity compatible verification.  See the patch which
introduced FS_IOC_READ_VERITY_METADATA for more details.

This has been tested using a new xfstest which calls this ioctl via a
new subcommand for the 'fsverity' program from fsverity-utils.

Link: https://lore.kernel.org/r/20210115181819.34732-5-ebiggers@kernel.org
Reviewed-by: Victor Hsieh <victorhsieh@google.com>
Reviewed-by: Jaegeuk Kim <jaegeuk@kernel.org>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
This commit is contained in:
Eric Biggers
2021-01-15 10:18:17 -08:00
committed by Jaegeuk Kim
parent aad86a0365
commit 11fa0d75de
3 changed files with 81 additions and 1 deletions

View File

@@ -83,6 +83,8 @@ struct fsverity_formatted_digest {
__u8 digest[];
};
#define FS_VERITY_METADATA_TYPE_MERKLE_TREE 1
struct fsverity_read_metadata_arg {
__u64 metadata_type;
__u64 offset;