Lines Matching refs:mk

173 				  struct fscrypt_master_key *mk,  in setup_per_mode_enc_key()  argument
210 err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf, in setup_per_mode_enc_key()
235 static int fscrypt_derive_siphash_key(const struct fscrypt_master_key *mk, in fscrypt_derive_siphash_key() argument
241 err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf, context, info, infolen, in fscrypt_derive_siphash_key()
254 const struct fscrypt_master_key *mk) in fscrypt_derive_dirhash_key() argument
258 err = fscrypt_derive_siphash_key(mk, HKDF_CONTEXT_DIRHASH_KEY, in fscrypt_derive_dirhash_key()
268 const struct fscrypt_master_key *mk) in fscrypt_hash_inode_number() argument
271 WARN_ON(!mk->mk_ino_hash_key_initialized); in fscrypt_hash_inode_number()
274 &mk->mk_ino_hash_key); in fscrypt_hash_inode_number()
278 struct fscrypt_master_key *mk) in fscrypt_setup_iv_ino_lblk_32_key() argument
282 err = setup_per_mode_enc_key(ci, mk, mk->mk_iv_ino_lblk_32_keys, in fscrypt_setup_iv_ino_lblk_32_key()
288 if (!smp_load_acquire(&mk->mk_ino_hash_key_initialized)) { in fscrypt_setup_iv_ino_lblk_32_key()
292 if (mk->mk_ino_hash_key_initialized) in fscrypt_setup_iv_ino_lblk_32_key()
295 err = fscrypt_derive_siphash_key(mk, in fscrypt_setup_iv_ino_lblk_32_key()
297 NULL, 0, &mk->mk_ino_hash_key); in fscrypt_setup_iv_ino_lblk_32_key()
301 smp_store_release(&mk->mk_ino_hash_key_initialized, true); in fscrypt_setup_iv_ino_lblk_32_key()
313 fscrypt_hash_inode_number(ci, mk); in fscrypt_setup_iv_ino_lblk_32_key()
318 struct fscrypt_master_key *mk, in fscrypt_setup_v2_file_key() argument
332 err = setup_per_mode_enc_key(ci, mk, mk->mk_direct_keys, in fscrypt_setup_v2_file_key()
342 err = setup_per_mode_enc_key(ci, mk, mk->mk_iv_ino_lblk_64_keys, in fscrypt_setup_v2_file_key()
347 err = fscrypt_setup_iv_ino_lblk_32_key(ci, mk); in fscrypt_setup_v2_file_key()
351 err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf, in fscrypt_setup_v2_file_key()
366 err = fscrypt_derive_dirhash_key(ci, mk); in fscrypt_setup_v2_file_key()
391 static bool fscrypt_valid_master_key_size(const struct fscrypt_master_key *mk, in fscrypt_valid_master_key_size() argument
401 if (mk->mk_secret.size < min_keysize) { in fscrypt_valid_master_key_size()
404 master_key_spec_type(&mk->mk_spec), in fscrypt_valid_master_key_size()
405 master_key_spec_len(&mk->mk_spec), in fscrypt_valid_master_key_size()
406 (u8 *)&mk->mk_spec.u, in fscrypt_valid_master_key_size()
407 mk->mk_secret.size, min_keysize); in fscrypt_valid_master_key_size()
427 struct fscrypt_master_key *mk; in setup_file_encryption_key() local
438 mk = fscrypt_find_master_key(ci->ci_inode->i_sb, &mk_spec); in setup_file_encryption_key()
439 if (!mk) { in setup_file_encryption_key()
451 down_read(&mk->mk_sem); in setup_file_encryption_key()
454 if (!is_master_key_secret_present(&mk->mk_secret)) { in setup_file_encryption_key()
459 if (!fscrypt_valid_master_key_size(mk, ci)) { in setup_file_encryption_key()
466 err = fscrypt_setup_v1_file_key(ci, mk->mk_secret.raw); in setup_file_encryption_key()
469 err = fscrypt_setup_v2_file_key(ci, mk, need_dirhash_key); in setup_file_encryption_key()
479 *mk_ret = mk; in setup_file_encryption_key()
483 up_read(&mk->mk_sem); in setup_file_encryption_key()
484 fscrypt_put_master_key(mk); in setup_file_encryption_key()
490 struct fscrypt_master_key *mk; in put_crypt_info() local
501 mk = ci->ci_master_key; in put_crypt_info()
502 if (mk) { in put_crypt_info()
509 spin_lock(&mk->mk_decrypted_inodes_lock); in put_crypt_info()
511 spin_unlock(&mk->mk_decrypted_inodes_lock); in put_crypt_info()
512 fscrypt_put_master_key_activeref(mk); in put_crypt_info()
526 struct fscrypt_master_key *mk = NULL; in fscrypt_setup_encryption_info() local
549 res = setup_file_encryption_key(crypt_info, need_dirhash_key, &mk); in fscrypt_setup_encryption_info()
564 if (mk) { in fscrypt_setup_encryption_info()
565 crypt_info->ci_master_key = mk; in fscrypt_setup_encryption_info()
566 refcount_inc(&mk->mk_active_refs); in fscrypt_setup_encryption_info()
567 spin_lock(&mk->mk_decrypted_inodes_lock); in fscrypt_setup_encryption_info()
569 &mk->mk_decrypted_inodes); in fscrypt_setup_encryption_info()
570 spin_unlock(&mk->mk_decrypted_inodes_lock); in fscrypt_setup_encryption_info()
576 if (mk) { in fscrypt_setup_encryption_info()
577 up_read(&mk->mk_sem); in fscrypt_setup_encryption_info()
578 fscrypt_put_master_key(mk); in fscrypt_setup_encryption_info()