mbox series

[0/2] fstests: add btrfs encryption support

Message ID cover.1660729861.git.sweettea-kernel@dorminy.me (mailing list archive)
Headers show
Series fstests: add btrfs encryption support | expand

Message

Sweet Tea Dorminy Aug. 17, 2022, 2:45 p.m. UTC
This changeset is in combination with a kernel changeset implementing
btrfs encryption, and a btrfs-progs changeset 

btrfs has several differences from other filesystems currently
integrated with fscrypt. It stores IVs on a per-file-extent basis,
rather than per-inode, using a new v2 policy to do so; and requires the
use of a v2 policy and its IV_FROM_FS policy flag. The design document
can be found at [1].

As such, this adjusts many tests to explicitly require v1 policies if
they require it, and generalizes the key handling for tests which can
work fine with v2. It duplicates two generic tests which can't easily be
generalized to work with btrfs, and adds all necessary function
invocations to implement the ciphertext-checking functions.

There are definitely additional areas which deserve testing. There are
some tests which ought be split into v1-specific and v2-specific tests
so that btrfs can work on the v2 part. A key feature for btrfs is
subvolume encryption, and tests for that should be added.
 
Necessary btrfs-progs changes are available at [2]; kernel changes
are available at [3]. Additional tests around subvolume-level encryption
will be added in the next version. 

[1]
https://lore.kernel.org/linux-btrfs/YXGyq+buM79A1S0L@relinquished.localdomain/
[2] https://lore.kernel.org/linux-btrfs/cover.1660729916.git.sweettea-kernel@dorminy.me
[3] https://lore.kernel.org/linux-btrfs/cover.1660744500.git.sweettea-kernel@dorminy.me

Sweet Tea Dorminy (2):
  fstests: fscrypt: enable btrfs testing.
  fstests: fscrypt: update tests of encryption contents for btrfs

 common/encrypt           | 184 +++++++++++++++++++++++++++++++++++++--
 common/verity            |   2 +-
 src/fscrypt-crypt-util.c |  34 +++++++-
 tests/btrfs/298          |  85 ++++++++++++++++++
 tests/btrfs/298.out      |  34 ++++++++
 tests/btrfs/299          |  68 +++++++++++++++
 tests/btrfs/299.out      |   4 +
 tests/generic/395        |   2 +-
 tests/generic/397        |   8 +-
 tests/generic/398        |  12 +--
 tests/generic/399        |   7 +-
 tests/generic/419        |   7 +-
 tests/generic/421        |   7 +-
 tests/generic/429        |   2 +-
 tests/generic/435        |   2 +-
 tests/generic/440        |   2 +-
 tests/generic/576        |   8 +-
 tests/generic/580        |   1 +
 tests/generic/581        |   1 +
 tests/generic/593        |   1 +
 tests/generic/613        |   1 +
 21 files changed, 439 insertions(+), 33 deletions(-)
 create mode 100755 tests/btrfs/298
 create mode 100644 tests/btrfs/298.out
 create mode 100755 tests/btrfs/299
 create mode 100644 tests/btrfs/299.out