mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
generic: add helpers for dumping fs-verity metadata
In common/verity, add helper functions for dumping a file's fs-verity metadata using the new FS_IOC_READ_VERITY_METADATA ioctl. Signed-off-by: Eric Biggers <ebiggers@google.com>
This commit is contained in:
@@ -120,6 +120,27 @@ _restore_fsverity_signatures()
|
||||
fi
|
||||
}
|
||||
|
||||
# Require userspace and kernel support for 'fsverity dump_metadata'.
|
||||
# $1 must be a file with fs-verity enabled.
|
||||
_require_fsverity_dump_metadata()
|
||||
{
|
||||
local verity_file=$1
|
||||
local tmpfile=$tmp.require_fsverity_dump_metadata
|
||||
|
||||
if _fsv_dump_merkle_tree "$verity_file" 2>"$tmpfile" >/dev/null; then
|
||||
return
|
||||
fi
|
||||
if grep -q "^ERROR: unrecognized command: 'dump_metadata'$" "$tmpfile"
|
||||
then
|
||||
_notrun "Missing 'fsverity dump_metadata' command"
|
||||
fi
|
||||
if grep -q "^ERROR: FS_IOC_READ_VERITY_METADATA failed on '.*': Inappropriate ioctl for device$" "$tmpfile"
|
||||
then
|
||||
_notrun "Kernel doesn't support FS_IOC_READ_VERITY_METADATA"
|
||||
fi
|
||||
_fail "Unexpected output from 'fsverity dump_metadata': $(<"$tmpfile")"
|
||||
}
|
||||
|
||||
_scratch_mkfs_verity()
|
||||
{
|
||||
case $FSTYP in
|
||||
@@ -157,6 +178,21 @@ _fsv_scratch_begin_subtest()
|
||||
echo -e "\n# $msg"
|
||||
}
|
||||
|
||||
_fsv_dump_merkle_tree()
|
||||
{
|
||||
$FSVERITY_PROG dump_metadata merkle_tree "$@"
|
||||
}
|
||||
|
||||
_fsv_dump_descriptor()
|
||||
{
|
||||
$FSVERITY_PROG dump_metadata descriptor "$@"
|
||||
}
|
||||
|
||||
_fsv_dump_signature()
|
||||
{
|
||||
$FSVERITY_PROG dump_metadata signature "$@"
|
||||
}
|
||||
|
||||
_fsv_enable()
|
||||
{
|
||||
$FSVERITY_PROG enable "$@"
|
||||
|
||||
Reference in New Issue
Block a user