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
..
2014-10-20 10:30:15 +08:00
2014-09-23 23:15:46 -07:00
2015-04-21 16:16:02 -04: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
2015-08-25 14:41:50 -05:00
2014-11-19 14:48:02 -06:00
2016-01-20 17:09:18 -08:00
2014-08-08 15:57:31 -07:00
2016-06-08 11:36:02 -07:00
2015-04-12 21:25:13 -04: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
2014-12-02 13:52:53 -07: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-08-03 17:30:00 -07:00
2014-08-08 15:57:31 -07:00
2015-07-21 10:39:05 -07:00
2015-11-23 15:06:38 -05:00
2015-01-20 13:51:06 +01:00
2014-12-13 12:42:52 -08:00
2015-05-05 13:40:44 -06:00
2015-04-23 15:16:14 -04:00
2015-07-20 14:58:46 -04: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
2015-09-04 16:54:41 -07: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
2014-12-09 14:10:41 +08:00
2015-06-11 23:37:37 +02:00
2015-12-18 17:48:51 -08:00
2015-10-27 18:55:31 -07:00
2016-05-20 17:58:30 -07:00
2016-08-02 16:53:54 +03:00
2015-03-29 12:13:52 +10:30
2014-12-09 12:05:24 +02:00
2016-04-30 09:26:55 -07:00