• Eric Biggers's avatar
    fscrypt: refactor key setup code in preparation for v2 policies · 3ec4f2a6
    Eric Biggers authored
    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>
    3ec4f2a6
fscrypt_private.h 4.49 KB