linux/fs/verity
Eric Biggers 74836ecbc5 fsverity: rework fsverity_get_digest() again
Address several issues with the calling convention and documentation of
fsverity_get_digest():

- Make it provide the hash algorithm as either a FS_VERITY_HASH_ALG_*
  value or HASH_ALGO_* value, at the caller's choice, rather than only a
  HASH_ALGO_* value as it did before.  This allows callers to work with
  the fsverity native algorithm numbers if they want to.  HASH_ALGO_* is
  what IMA uses, but other users (e.g. overlayfs) should use
  FS_VERITY_HASH_ALG_* to match fsverity-utils and the fsverity UAPI.

- Make it return the digest size so that it doesn't need to be looked up
  separately.  Use the return value for this, since 0 works nicely for
  the "file doesn't have fsverity enabled" case.  This also makes it
  clear that no other errors are possible.

- Rename the 'digest' parameter to 'raw_digest' and clearly document
  that it is only useful in combination with the algorithm ID.  This
  hopefully clears up a point of confusion.

- Export it to modules, since overlayfs will need it for checking the
  fsverity digests of lowerdata files
  (https://lore.kernel.org/r/dd294a44e8f401e6b5140029d8355f88748cd8fd.1686565330.git.alexl@redhat.com).

Acked-by: Mimi Zohar <zohar@linux.ibm.com> # for the IMA piece
Link: https://lore.kernel.org/r/20230612190047.59755-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
2023-06-14 10:41:07 -07:00
..
enable.c fsverity: use shash API instead of ahash API 2023-06-04 05:54:28 -07:00
fsverity_private.h fsverity: constify fsverity_hash_alg 2023-06-04 05:56:11 -07:00
hash_algs.c fsverity: constify fsverity_hash_alg 2023-06-04 05:56:11 -07:00
init.c fsverity: remove debug messages and CONFIG_FS_VERITY_DEBUG 2023-01-01 15:46:48 -08:00
Kconfig fsverity: remove debug messages and CONFIG_FS_VERITY_DEBUG 2023-01-01 15:46:48 -08:00
Makefile fs-verity: add FS_IOC_READ_VERITY_METADATA ioctl 2021-02-07 14:51:11 -08:00
measure.c fsverity: rework fsverity_get_digest() again 2023-06-14 10:41:07 -07:00
open.c fsverity: constify fsverity_hash_alg 2023-06-04 05:56:11 -07:00
read_metadata.c fs-verity: use kmap_local_page() instead of kmap() 2022-08-19 15:19:55 -07:00
signature.c fs-verity: simplify sysctls with register_sysctl() 2023-03-27 21:17:02 -07:00
verify.c fsverity: simplify error handling in verify_data_block() 2023-06-04 05:56:11 -07:00