Lines Matching refs:alg
42 * Return: pointer to the hash alg on success, else an ERR_PTR()
47 struct fsverity_hash_alg *alg;
56 alg = &fsverity_hash_algs[num];
59 if (likely(smp_load_acquire(&alg->tfm) != NULL))
60 return alg;
64 if (alg->tfm != NULL)
67 tfm = crypto_alloc_shash(alg->name, 0, 0);
72 alg->name);
73 alg = ERR_PTR(-ENOPKG);
78 alg->name, PTR_ERR(tfm));
79 alg = ERR_CAST(tfm);
84 if (WARN_ON_ONCE(alg->digest_size != crypto_shash_digestsize(tfm)))
86 if (WARN_ON_ONCE(alg->block_size != crypto_shash_blocksize(tfm)))
90 alg->name, crypto_shash_driver_name(tfm));
93 smp_store_release(&alg->tfm, tfm);
98 alg = ERR_PTR(err);
101 return alg;
106 * @alg: hash algorithm
113 const u8 *fsverity_prepare_hash_state(const struct fsverity_hash_alg *alg,
117 SHASH_DESC_ON_STACK(desc, alg->tfm);
122 desc->tfm = alg->tfm;
127 hashstate = kmalloc(crypto_shash_statesize(alg->tfm), GFP_KERNEL);
138 padded_salt_size = round_up(salt_size, alg->block_size);
204 * @alg: the hash algorithm to use
207 * @out: output digest, size 'alg->digest_size' bytes
211 int fsverity_hash_buffer(const struct fsverity_hash_alg *alg,
214 return crypto_shash_tfm_digest(alg->tfm, data, size, out);
226 const struct fsverity_hash_alg *alg = &fsverity_hash_algs[i];
228 if (!alg->name)
239 BUG_ON(alg->digest_size > FS_VERITY_MAX_DIGEST_SIZE);
246 BUG_ON(!is_power_of_2(alg->digest_size));
247 BUG_ON(!is_power_of_2(alg->block_size));
250 BUG_ON(alg->algo_id == 0);
251 BUG_ON(alg->digest_size != hash_digest_size[alg->algo_id]);