Lines Matching refs:mk

188 				  struct fscrypt_master_key *mk,  in setup_per_mode_enc_key()  argument
225 err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf, in setup_per_mode_enc_key()
250 static int fscrypt_derive_siphash_key(const struct fscrypt_master_key *mk, in fscrypt_derive_siphash_key() argument
256 err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf, context, info, infolen, in fscrypt_derive_siphash_key()
269 const struct fscrypt_master_key *mk) in fscrypt_derive_dirhash_key() argument
273 err = fscrypt_derive_siphash_key(mk, HKDF_CONTEXT_DIRHASH_KEY, in fscrypt_derive_dirhash_key()
283 const struct fscrypt_master_key *mk) in fscrypt_hash_inode_number() argument
286 WARN_ON_ONCE(!mk->mk_ino_hash_key_initialized); in fscrypt_hash_inode_number()
289 &mk->mk_ino_hash_key); in fscrypt_hash_inode_number()
293 struct fscrypt_master_key *mk) in fscrypt_setup_iv_ino_lblk_32_key() argument
297 err = setup_per_mode_enc_key(ci, mk, mk->mk_iv_ino_lblk_32_keys, in fscrypt_setup_iv_ino_lblk_32_key()
303 if (!smp_load_acquire(&mk->mk_ino_hash_key_initialized)) { in fscrypt_setup_iv_ino_lblk_32_key()
307 if (mk->mk_ino_hash_key_initialized) in fscrypt_setup_iv_ino_lblk_32_key()
310 err = fscrypt_derive_siphash_key(mk, in fscrypt_setup_iv_ino_lblk_32_key()
312 NULL, 0, &mk->mk_ino_hash_key); in fscrypt_setup_iv_ino_lblk_32_key()
316 smp_store_release(&mk->mk_ino_hash_key_initialized, true); in fscrypt_setup_iv_ino_lblk_32_key()
328 fscrypt_hash_inode_number(ci, mk); in fscrypt_setup_iv_ino_lblk_32_key()
333 struct fscrypt_master_key *mk, in fscrypt_setup_v2_file_key() argument
347 err = setup_per_mode_enc_key(ci, mk, mk->mk_direct_keys, in fscrypt_setup_v2_file_key()
357 err = setup_per_mode_enc_key(ci, mk, mk->mk_iv_ino_lblk_64_keys, in fscrypt_setup_v2_file_key()
362 err = fscrypt_setup_iv_ino_lblk_32_key(ci, mk); in fscrypt_setup_v2_file_key()
366 err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf, in fscrypt_setup_v2_file_key()
381 err = fscrypt_derive_dirhash_key(ci, mk); in fscrypt_setup_v2_file_key()
406 static bool fscrypt_valid_master_key_size(const struct fscrypt_master_key *mk, in fscrypt_valid_master_key_size() argument
416 if (mk->mk_secret.size < min_keysize) { in fscrypt_valid_master_key_size()
419 master_key_spec_type(&mk->mk_spec), in fscrypt_valid_master_key_size()
420 master_key_spec_len(&mk->mk_spec), in fscrypt_valid_master_key_size()
421 (u8 *)&mk->mk_spec.u, in fscrypt_valid_master_key_size()
422 mk->mk_secret.size, min_keysize); in fscrypt_valid_master_key_size()
443 struct fscrypt_master_key *mk; in setup_file_encryption_key() local
454 mk = fscrypt_find_master_key(sb, &mk_spec); in setup_file_encryption_key()
455 if (unlikely(!mk)) { in setup_file_encryption_key()
470 mk = fscrypt_find_master_key(sb, &mk_spec); in setup_file_encryption_key()
473 if (unlikely(!mk)) { in setup_file_encryption_key()
485 down_read(&mk->mk_sem); in setup_file_encryption_key()
488 if (!is_master_key_secret_present(&mk->mk_secret)) { in setup_file_encryption_key()
493 if (!fscrypt_valid_master_key_size(mk, ci)) { in setup_file_encryption_key()
500 err = fscrypt_setup_v1_file_key(ci, mk->mk_secret.raw); in setup_file_encryption_key()
503 err = fscrypt_setup_v2_file_key(ci, mk, need_dirhash_key); in setup_file_encryption_key()
513 *mk_ret = mk; in setup_file_encryption_key()
517 up_read(&mk->mk_sem); in setup_file_encryption_key()
518 fscrypt_put_master_key(mk); in setup_file_encryption_key()
524 struct fscrypt_master_key *mk; in put_crypt_info() local
535 mk = ci->ci_master_key; in put_crypt_info()
536 if (mk) { in put_crypt_info()
543 spin_lock(&mk->mk_decrypted_inodes_lock); in put_crypt_info()
545 spin_unlock(&mk->mk_decrypted_inodes_lock); in put_crypt_info()
546 fscrypt_put_master_key_activeref(ci->ci_inode->i_sb, mk); in put_crypt_info()
560 struct fscrypt_master_key *mk = NULL; in fscrypt_setup_encryption_info() local
583 res = setup_file_encryption_key(crypt_info, need_dirhash_key, &mk); in fscrypt_setup_encryption_info()
598 if (mk) { in fscrypt_setup_encryption_info()
599 crypt_info->ci_master_key = mk; in fscrypt_setup_encryption_info()
600 refcount_inc(&mk->mk_active_refs); in fscrypt_setup_encryption_info()
601 spin_lock(&mk->mk_decrypted_inodes_lock); in fscrypt_setup_encryption_info()
603 &mk->mk_decrypted_inodes); in fscrypt_setup_encryption_info()
604 spin_unlock(&mk->mk_decrypted_inodes_lock); in fscrypt_setup_encryption_info()
610 if (mk) { in fscrypt_setup_encryption_info()
611 up_read(&mk->mk_sem); in fscrypt_setup_encryption_info()
612 fscrypt_put_master_key(mk); in fscrypt_setup_encryption_info()