Lines Matching refs:mk

164 				  struct fscrypt_master_key *mk,
201 err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf,
226 static int fscrypt_derive_siphash_key(const struct fscrypt_master_key *mk,
232 err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf, context, info, infolen,
245 const struct fscrypt_master_key *mk)
249 err = fscrypt_derive_siphash_key(mk, HKDF_CONTEXT_DIRHASH_KEY,
259 const struct fscrypt_master_key *mk)
262 WARN_ON(!mk->mk_ino_hash_key_initialized);
265 &mk->mk_ino_hash_key);
269 struct fscrypt_master_key *mk)
273 err = setup_per_mode_enc_key(ci, mk, mk->mk_iv_ino_lblk_32_keys,
279 if (!smp_load_acquire(&mk->mk_ino_hash_key_initialized)) {
283 if (mk->mk_ino_hash_key_initialized)
286 err = fscrypt_derive_siphash_key(mk,
288 NULL, 0, &mk->mk_ino_hash_key);
292 smp_store_release(&mk->mk_ino_hash_key_initialized, true);
304 fscrypt_hash_inode_number(ci, mk);
309 struct fscrypt_master_key *mk,
323 err = setup_per_mode_enc_key(ci, mk, mk->mk_direct_keys,
333 err = setup_per_mode_enc_key(ci, mk, mk->mk_iv_ino_lblk_64_keys,
338 err = fscrypt_setup_iv_ino_lblk_32_key(ci, mk);
342 err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf,
357 err = fscrypt_derive_dirhash_key(ci, mk);
366 * Check whether the size of the given master key (@mk) is appropriate for the
382 static bool fscrypt_valid_master_key_size(const struct fscrypt_master_key *mk,
392 if (mk->mk_secret.size < min_keysize) {
395 master_key_spec_type(&mk->mk_spec),
396 master_key_spec_len(&mk->mk_spec),
397 (u8 *)&mk->mk_spec.u,
398 mk->mk_secret.size, min_keysize);
418 struct fscrypt_master_key *mk;
443 mk = fscrypt_find_master_key(ci->ci_inode->i_sb, &mk_spec);
444 if (!mk) {
456 down_read(&mk->mk_sem);
459 if (!is_master_key_secret_present(&mk->mk_secret)) {
464 if (!fscrypt_valid_master_key_size(mk, ci)) {
471 err = fscrypt_setup_v1_file_key(ci, mk->mk_secret.raw);
474 err = fscrypt_setup_v2_file_key(ci, mk, need_dirhash_key);
484 *mk_ret = mk;
488 up_read(&mk->mk_sem);
489 fscrypt_put_master_key(mk);
495 struct fscrypt_master_key *mk;
505 mk = ci->ci_master_key;
506 if (mk) {
513 spin_lock(&mk->mk_decrypted_inodes_lock);
515 spin_unlock(&mk->mk_decrypted_inodes_lock);
516 fscrypt_put_master_key_activeref(mk);
530 struct fscrypt_master_key *mk = NULL;
553 res = setup_file_encryption_key(crypt_info, need_dirhash_key, &mk);
568 if (mk) {
569 crypt_info->ci_master_key = mk;
570 refcount_inc(&mk->mk_active_refs);
571 spin_lock(&mk->mk_decrypted_inodes_lock);
573 &mk->mk_decrypted_inodes);
574 spin_unlock(&mk->mk_decrypted_inodes_lock);
580 if (mk) {
581 up_read(&mk->mk_sem);
582 fscrypt_put_master_key(mk);