Commit 3ec4f2a6 authored by Eric Biggers's avatar Eric Biggers

fscrypt: refactor key setup code in preparation for v2 policies

Do some more refactoring of the key setup code, in preparation for
introducing a filesystem-level keyring and v2 encryption policies:

- Now that ci_inode exists, don't pass around the inode unnecessarily.

- Define a function setup_file_encryption_key() which handles the crypto
  key setup given an under-construction fscrypt_info.  Don't pass the
  fscrypt_context, since everything is in the fscrypt_info.
  [This will be extended for v2 policies and the fs-level keyring.]

- Define a function fscrypt_set_derived_key() which sets the per-file
  key, without depending on anything specific to v1 policies.
  [This will also be used for v2 policies.]

- Define a function fscrypt_setup_v1_file_key() which takes the raw
  master key, thus separating finding the key from using it.
  [This will also be used if the key is found in the fs-level keyring.]
Reviewed-by: default avatarTheodore Ts'o <tytso@mit.edu>
Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
parent a828daab
...@@ -4,9 +4,8 @@ ...@@ -4,9 +4,8 @@
* *
* Copyright (C) 2015, Google, Inc. * Copyright (C) 2015, Google, Inc.
* *
* This contains encryption key functions. * Originally written by Michael Halcrow, Ildar Muslukhov, and Uday Savagaonkar.
* * Heavily modified since then.
* Written by Michael Halcrow, Ildar Muslukhov, and Uday Savagaonkar, 2015.
*/ */
#ifndef _FSCRYPT_PRIVATE_H #ifndef _FSCRYPT_PRIVATE_H
...@@ -168,4 +167,10 @@ struct fscrypt_mode { ...@@ -168,4 +167,10 @@ struct fscrypt_mode {
bool needs_essiv; bool needs_essiv;
}; };
static inline bool
fscrypt_mode_supports_direct_key(const struct fscrypt_mode *mode)
{
return mode->ivsize >= offsetofend(union fscrypt_iv, nonce);
}
#endif /* _FSCRYPT_PRIVATE_H */ #endif /* _FSCRYPT_PRIVATE_H */
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment