fscrypto: improved validation when loading inode encryption metadata
authorEric Biggers <ebiggers@google.com>
Thu, 15 Sep 2016 17:32:11 +0000 (13:32 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 15 Sep 2016 17:32:11 +0000 (13:32 -0400)
commit8f39850dffa9cba0f6920ff907710bcddc7f2a26
tree981f9f701c25c4bf160fae1101476a5f516f5a03
parentdcce7a46c6f28f41447272fb44348ead8f584573
fscrypto: improved validation when loading inode encryption metadata

- Validate fscrypt_context.format and fscrypt_context.flags.  If
  unrecognized values are set, then the kernel may not know how to
  interpret the encrypted file, so it should fail the operation.

- Validate that AES_256_XTS is used for contents and that AES_256_CTS is
  used for filenames.  It was previously possible for the kernel to
  accept these reversed, though it would have taken manual editing of
  the block device.  This was not intended.

- Fail cleanly rather than BUG()-ing if a file has an unexpected type.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/crypto/keyinfo.c
include/linux/fscrypto.h