Lines Matching refs:mk

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