Files
kernel_google_b1c1/include/uapi/linux
Daniel Walter 8e989de6f8 fscrypt: add support for AES-128-CBC
fscrypt provides facilities to use different encryption algorithms which
are selectable by userspace when setting the encryption policy. Currently,
only AES-256-XTS for file contents and AES-256-CBC-CTS for file names are
implemented. This is a clear case of kernel offers the mechanism and
userspace selects a policy. Similar to what dm-crypt and ecryptfs have.

This patch adds support for using AES-128-CBC for file contents and
AES-128-CBC-CTS for file name encryption. To mitigate watermarking
attacks, IVs are generated using the ESSIV algorithm. While AES-CBC is
actually slightly less secure than AES-XTS from a security point of view,
there is more widespread hardware support. Using AES-CBC gives us the
acceptable performance while still providing a moderate level of security
for persistent storage.

Especially low-powered embedded devices with crypto accelerators such as
CAAM or CESA often only support AES-CBC. Since using AES-CBC over AES-XTS
is basically thought of a last resort, we use AES-128-CBC over AES-256-CBC
since it has less encryption rounds and yields noticeable better
performance starting from a file size of just a few kB.

Signed-off-by: Daniel Walter <dwalter@sigma-star.at>
[david@sigma-star.at: addressed review comments]
Signed-off-by: David Gstir <david@sigma-star.at>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2017-07-13 17:48:36 -07:00
..
2016-12-05 19:43:02 -05:00
2017-06-24 07:11:15 +02:00
2016-09-23 08:40:28 -04:00
2016-10-03 18:52:14 +02:00
2016-01-20 17:09:18 -08:00
2016-06-08 11:36:02 -07:00
2017-07-13 17:48:36 -07:00
2016-10-01 07:32:32 +02:00
2015-12-14 12:19:37 -06:00
2016-03-22 15:36:02 -07:00
2016-06-27 16:31:25 +01:00
2016-04-12 19:54:58 +01:00
2016-04-25 15:09:10 -04:00
2016-01-12 08:21:18 -07:00
2015-11-23 15:06:38 -05:00
2016-05-17 17:14:21 -06:00
2016-10-14 15:00:10 -04:00
2016-09-27 21:52:00 -04:00
2016-09-27 21:52:00 -04:00
2016-05-08 23:46:14 -04:00
2016-04-26 12:00:48 -04:00
2016-04-04 22:11:20 -04:00
2016-09-21 00:23:00 -04:00
2015-12-18 17:48:51 -08:00
2016-05-20 17:58:30 -07:00
2016-08-02 16:53:54 +03:00
2016-04-30 09:26:55 -07:00