diff options
Diffstat (limited to 'fs/ext4/crypto.c')
-rw-r--r-- | fs/ext4/crypto.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/fs/ext4/crypto.c b/fs/ext4/crypto.c index f240cef8b326..f6096ee77662 100644 --- a/fs/ext4/crypto.c +++ b/fs/ext4/crypto.c @@ -457,9 +457,17 @@ errout: return err; } -bool ext4_valid_contents_enc_mode(uint32_t mode) +bool ext4_valid_enc_modes(uint32_t contents_mode, uint32_t filenames_mode) { - return (mode == EXT4_ENCRYPTION_MODE_AES_256_XTS); + if (contents_mode == EXT4_ENCRYPTION_MODE_AES_256_XTS) { + return (filenames_mode == EXT4_ENCRYPTION_MODE_AES_256_CTS || + filenames_mode == EXT4_ENCRYPTION_MODE_AES_256_HEH); + } + + if (contents_mode == EXT4_ENCRYPTION_MODE_SPECK128_256_XTS) + return filenames_mode == EXT4_ENCRYPTION_MODE_SPECK128_256_CTS; + + return false; } /** |