1. 07 Feb, 2021 1 commit
    • Eric Biggers's avatar
      fs-verity: factor out fsverity_get_descriptor() · c2c82611
      Eric Biggers authored
      The FS_IOC_READ_VERITY_METADATA ioctl will need to return the fs-verity
      descriptor (and signature) to userspace.
      
      There are a few ways we could implement this:
      
      - Save a copy of the descriptor (and signature) in the fsverity_info
        struct that hangs off of the in-memory inode.  However, this would
        waste memory since most of the time it wouldn't be needed.
      
      - Regenerate the descriptor from the merkle_tree_params in the
        fsverity_info.  However, this wouldn't work for the signature, nor for
        the salt which the merkle_tree_params only contains indirectly as part
        of the 'hashstate'.  It would also be error-prone.
      
      - Just get them from the filesystem again.  The disadvantage is that in
        general we can't trust that they haven't been maliciously changed
        since the file has opened.  However, the use cases for
        FS_IOC_READ_VERITY_METADATA don't require that it verifies the chain
        of trust.  So this is okay as long as we do some basic validation.
      
      In preparation for implementing the third option, factor out a helper
      function fsverity_get_descriptor() which gets the descriptor (and
      appended signature) from the filesystem and does some basic validation.
      
      As part of this, start checking the sig_size field for overflow.
      Currently fsverity_verify_signature() does this.  But the new ioctl will
      need this too, so do it earlier.
      
      Link: https://lore.kernel.org/r/20210115181819.34732-2-ebiggers@kernel.orgReviewed-by: default avatarVictor Hsieh <victorhsieh@google.com>
      Reviewed-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      c2c82611
  2. 25 Jan, 2021 1 commit
  3. 24 Jan, 2021 37 commits
  4. 23 Jan, 2021 1 commit