diff options
| author | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-05-04 22:05:01 -0700 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-04-13 12:33:29 +0200 |
| commit | 4a64798025aaf701d53bc099837a97ed9559b471 (patch) | |
| tree | ec65c39930861befbc09b7dc3751df32aa2020c4 /include/linux | |
| parent | f5cb03d909c488a33376ad868f41dd02b9babcca (diff) | |
fscrypto/f2fs: allow fs-specific key prefix for fs encryption
This patch allows fscrypto to handle a second key prefix given by filesystem.
The main reason is to provide backward compatibility, since previously f2fs
used "f2fs:" as a crypto prefix instead of "fscrypt:".
Later, ext4 should also provide key_prefix() to give "ext4:".
One concern decribed by Ted would be kinda double check overhead of prefixes.
In x86, for example, validate_user_key consumes 8 ms after boot-up, which turns
out derive_key_aes() consumed most of the time to load specific crypto module.
After such the cold miss, it shows almost zero latencies, which treats as a
negligible overhead.
Note that request_key() detects wrong prefix in prior to derive_key_aes() even.
Cc: Ted Tso <tytso@mit.edu>
Cc: stable@vger.kernel.org # v4.6
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Conflicts:
fs/crypto/keyinfo.c
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/fscrypto.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/fscrypto.h b/include/linux/fscrypto.h index 4c4bc8c05..7ddcd5bc8 100644 --- a/include/linux/fscrypto.h +++ b/include/linux/fscrypto.h @@ -174,6 +174,7 @@ struct fscrypt_name { */ struct fscrypt_operations { int (*get_context)(struct inode *, void *, size_t); + int (*key_prefix)(struct inode *, u8 **); int (*prepare_context)(struct inode *); int (*set_context)(struct inode *, const void *, size_t, void *); int (*dummy_context)(struct inode *); |
