Lines Matching defs:alg
40 * Return: pointer to the hash alg on success, else an ERR_PTR()
45 struct fsverity_hash_alg *alg;
54 alg = &fsverity_hash_algs[num];
57 if (likely(smp_load_acquire(&alg->tfm) != NULL))
58 return alg;
62 if (alg->tfm != NULL)
65 tfm = crypto_alloc_shash(alg->name, 0, 0);
70 alg->name);
71 alg = ERR_PTR(-ENOPKG);
76 alg->name, PTR_ERR(tfm));
77 alg = ERR_CAST(tfm);
82 if (WARN_ON_ONCE(alg->digest_size != crypto_shash_digestsize(tfm)))
84 if (WARN_ON_ONCE(alg->block_size != crypto_shash_blocksize(tfm)))
88 alg->name, crypto_shash_driver_name(tfm));
91 smp_store_release(&alg->tfm, tfm);
96 alg = ERR_PTR(err);
99 return alg;
104 * @alg: hash algorithm
111 const u8 *fsverity_prepare_hash_state(const struct fsverity_hash_alg *alg,
115 SHASH_DESC_ON_STACK(desc, alg->tfm);
120 desc->tfm = alg->tfm;
125 hashstate = kmalloc(crypto_shash_statesize(alg->tfm), GFP_KERNEL);
136 padded_salt_size = round_up(salt_size, alg->block_size);
202 * @alg: the hash algorithm to use
205 * @out: output digest, size 'alg->digest_size' bytes
209 int fsverity_hash_buffer(const struct fsverity_hash_alg *alg,
212 return crypto_shash_tfm_digest(alg->tfm, data, size, out);
224 const struct fsverity_hash_alg *alg = &fsverity_hash_algs[i];
226 if (!alg->name)
237 BUG_ON(alg->digest_size > FS_VERITY_MAX_DIGEST_SIZE);
244 BUG_ON(!is_power_of_2(alg->digest_size));
245 BUG_ON(!is_power_of_2(alg->block_size));
248 BUG_ON(alg->algo_id == 0);
249 BUG_ON(alg->digest_size != hash_digest_size[alg->algo_id]);