29 Dec, 2020

1 commit

  • Embedding the file path inside kernel source code files isn't
    particularly useful as often files are moved around and the paths become
    incorrect. checkpatch.pl warns about this since v5.10-rc1.

    Acked-by: Luca Boccassi
    Link: https://lore.kernel.org/r/20201113211918.71883-2-ebiggers@kernel.org
    Signed-off-by: Eric Biggers

    Eric Biggers
     

13 Aug, 2019

1 commit

  • To meet some users' needs, add optional support for having fs-verity
    handle a portion of the authentication policy in the kernel. An
    ".fs-verity" keyring is created to which X.509 certificates can be
    added; then a sysctl 'fs.verity.require_signatures' can be set to cause
    the kernel to enforce that all fs-verity files contain a signature of
    their file measurement by a key in this keyring.

    See the "Built-in signature verification" section of
    Documentation/filesystems/fsverity.rst for the full documentation.

    Reviewed-by: Theodore Ts'o
    Signed-off-by: Eric Biggers

    Eric Biggers
     

29 Jul, 2019

3 commits

  • Add functions that verify data pages that have been read from a
    fs-verity file, against that file's Merkle tree. These will be called
    from filesystems' ->readpage() and ->readpages() methods.

    Since data verification can block, a workqueue is provided for these
    methods to enqueue verification work from their bio completion callback.

    See the "Verifying data" section of
    Documentation/filesystems/fsverity.rst for more information.

    Reviewed-by: Theodore Ts'o
    Reviewed-by: Jaegeuk Kim
    Signed-off-by: Eric Biggers

    Eric Biggers
     
  • Add the fsverity_file_open() function, which prepares an fs-verity file
    to be read from. If not already done, it loads the fs-verity descriptor
    from the filesystem and sets up an fsverity_info structure for the inode
    which describes the Merkle tree and contains the file measurement. It
    also denies all attempts to open verity files for writing.

    This commit also begins the include/linux/fsverity.h header, which
    declares the interface between fs/verity/ and filesystems.

    Reviewed-by: Theodore Ts'o
    Reviewed-by: Jaegeuk Kim
    Signed-off-by: Eric Biggers

    Eric Biggers
     
  • Add the beginnings of the fs/verity/ support layer, including the
    Kconfig option and various helper functions for hashing. To start, only
    SHA-256 is supported, but other hash algorithms can easily be added.

    Reviewed-by: Theodore Ts'o
    Reviewed-by: Jaegeuk Kim
    Signed-off-by: Eric Biggers

    Eric Biggers