Lines Matching refs:ci
173 const struct fscrypt_inode_info *ci)
185 memcpy(&hash_key, ci->ci_policy.v1.master_key_descriptor,
190 if (memcmp(ci->ci_policy.v1.master_key_descriptor,
193 if (ci->ci_mode != dk->dk_mode)
195 if (!fscrypt_is_key_prepared(&dk->dk_key, ci))
197 if (crypto_memneq(raw_key, dk->dk_raw, ci->ci_mode->keysize))
213 fscrypt_get_direct_key(const struct fscrypt_inode_info *ci, const u8 *raw_key)
219 dk = find_or_insert_direct_key(NULL, raw_key, ci);
227 dk->dk_sb = ci->ci_inode->i_sb;
229 dk->dk_mode = ci->ci_mode;
230 err = fscrypt_prepare_key(&dk->dk_key, raw_key, ci);
233 memcpy(dk->dk_descriptor, ci->ci_policy.v1.master_key_descriptor,
235 memcpy(dk->dk_raw, raw_key, ci->ci_mode->keysize);
237 return find_or_insert_direct_key(dk, raw_key, ci);
245 static int setup_v1_file_key_direct(struct fscrypt_inode_info *ci,
250 dk = fscrypt_get_direct_key(ci, raw_master_key);
253 ci->ci_direct_key = dk;
254 ci->ci_enc_key = dk->dk_key;
259 static int setup_v1_file_key_derived(struct fscrypt_inode_info *ci,
269 derived_key = kmalloc(ci->ci_mode->keysize, GFP_KERNEL);
273 err = derive_key_aes(raw_master_key, ci->ci_nonce,
274 derived_key, ci->ci_mode->keysize);
278 err = fscrypt_set_per_file_enc_key(ci, derived_key);
284 int fscrypt_setup_v1_file_key(struct fscrypt_inode_info *ci,
287 if (ci->ci_policy.v1.flags & FSCRYPT_POLICY_FLAG_DIRECT_KEY)
288 return setup_v1_file_key_direct(ci, raw_master_key);
290 return setup_v1_file_key_derived(ci, raw_master_key);
294 fscrypt_setup_v1_file_key_via_subscribed_keyrings(struct fscrypt_inode_info *ci)
296 const struct super_block *sb = ci->ci_inode->i_sb;
302 ci->ci_policy.v1.master_key_descriptor,
303 ci->ci_mode->keysize, &payload);
306 ci->ci_policy.v1.master_key_descriptor,
307 ci->ci_mode->keysize, &payload);
312 err = fscrypt_setup_v1_file_key(ci, payload->raw);