This patchset is not intended to be accepted yet. It is reliant on HCTR2 support in the kernel which has not yet been accepted. See the HCTR2 patchset here: https://lore.kernel.org/all/20220520181501.2159644-1-nhuck@xxxxxxxxxx/ HCTR2 is a new wide-block encryption mode that can used for filename encryption in fscrypt. This patchset adds a reference implementation of HCTR2 to the fscrypt testing utility and adds tests for filename encryption with HCTR2. More information on HCTR2 can be found here: "Length-preserving encryption with HCTR2": https://ia.cr/2021/1441 Changes in v5: * Added links to relevant references for POLYVAL and HCTR2 * Removed POLYVAL partial block handling * Referenced HCTR2 commit in test Changes in v4: * Add helper functions for HCTR2 hashing * Fix accumulator alignment bug * Small style fixes Changes in v3: * Consolidate tests into one file Changes in v2: * Use POLYVAL multiplication directly instead of using GHASH trick * Split reference implementation and tests into two patches * Remove v1 policy tests * Various small style fixes Nathan Huckleberry (2): fscrypt-crypt-util: add HCTR2 implementation generic: add tests for fscrypt policies with HCTR2 common/encrypt | 2 + src/fscrypt-crypt-util.c | 358 ++++++++++++++++++++++++++++++++------- tests/generic/900 | 31 ++++ tests/generic/900.out | 16 ++ 4 files changed, 350 insertions(+), 57 deletions(-) create mode 100755 tests/generic/900 create mode 100644 tests/generic/900.out -- 2.37.1.455.g008518b4e5-goog