Lines Matching refs:ci

182 			  const struct fscrypt_inode_info *ci)
194 memcpy(&hash_key, ci->ci_policy.v1.master_key_descriptor,
199 if (memcmp(ci->ci_policy.v1.master_key_descriptor,
202 if (ci->ci_mode != dk->dk_mode)
204 if (!fscrypt_is_key_prepared(&dk->dk_key, ci))
206 if (crypto_memneq(raw_key, dk->dk_raw, ci->ci_mode->keysize))
222 fscrypt_get_direct_key(const struct fscrypt_inode_info *ci, const u8 *raw_key)
228 dk = find_or_insert_direct_key(NULL, raw_key, ci);
236 dk->dk_sb = ci->ci_inode->i_sb;
238 dk->dk_mode = ci->ci_mode;
239 err = fscrypt_prepare_key(&dk->dk_key, raw_key, ci);
242 memcpy(dk->dk_descriptor, ci->ci_policy.v1.master_key_descriptor,
244 memcpy(dk->dk_raw, raw_key, ci->ci_mode->keysize);
246 return find_or_insert_direct_key(dk, raw_key, ci);
254 static int setup_v1_file_key_direct(struct fscrypt_inode_info *ci,
259 dk = fscrypt_get_direct_key(ci, raw_master_key);
262 ci->ci_direct_key = dk;
263 ci->ci_enc_key = dk->dk_key;
268 static int setup_v1_file_key_derived(struct fscrypt_inode_info *ci,
278 derived_key = kmalloc(ci->ci_mode->keysize, GFP_KERNEL);
282 err = derive_key_aes(raw_master_key, ci->ci_nonce,
283 derived_key, ci->ci_mode->keysize);
287 err = fscrypt_set_per_file_enc_key(ci, derived_key);
293 int fscrypt_setup_v1_file_key(struct fscrypt_inode_info *ci,
296 if (ci->ci_policy.v1.flags & FSCRYPT_POLICY_FLAG_DIRECT_KEY)
297 return setup_v1_file_key_direct(ci, raw_master_key);
299 return setup_v1_file_key_derived(ci, raw_master_key);
303 fscrypt_setup_v1_file_key_via_subscribed_keyrings(struct fscrypt_inode_info *ci)
305 const struct super_block *sb = ci->ci_inode->i_sb;
311 ci->ci_policy.v1.master_key_descriptor,
312 ci->ci_mode->keysize, &payload);
315 ci->ci_policy.v1.master_key_descriptor,
316 ci->ci_mode->keysize, &payload);
321 err = fscrypt_setup_v1_file_key(ci, payload->raw);