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
|
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()
|
_scratch_mkfs_verity()
|
||||||
{
|
{
|
||||||
case $FSTYP in
|
case $FSTYP in
|
||||||
@@ -157,6 +178,21 @@ _fsv_scratch_begin_subtest()
|
|||||||
echo -e "\n# $msg"
|
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()
|
_fsv_enable()
|
||||||
{
|
{
|
||||||
$FSVERITY_PROG enable "$@"
|
$FSVERITY_PROG enable "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user