Skip to content

Commit c2a8135

Browse files
committed
crypto: testmgr - Use ahash for generic tfm
As shash is being phased out, use ahash for the generic tfm. Signed-off-by: Herbert Xu <[email protected]>
1 parent c310341 commit c2a8135

File tree

1 file changed

+18
-19
lines changed

1 file changed

+18
-19
lines changed

crypto/testmgr.c

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,7 +1699,7 @@ static int test_hash_vec(const struct hash_testvec *vec, unsigned int vec_num,
16991699
* Assumes the buffers in 'vec' were already allocated.
17001700
*/
17011701
static void generate_random_hash_testvec(struct rnd_state *rng,
1702-
struct shash_desc *desc,
1702+
struct ahash_request *req,
17031703
struct hash_testvec *vec,
17041704
unsigned int maxkeysize,
17051705
unsigned int maxdatasize,
@@ -1721,16 +1721,17 @@ static void generate_random_hash_testvec(struct rnd_state *rng,
17211721
vec->ksize = prandom_u32_inclusive(rng, 1, maxkeysize);
17221722
generate_random_bytes(rng, (u8 *)vec->key, vec->ksize);
17231723

1724-
vec->setkey_error = crypto_shash_setkey(desc->tfm, vec->key,
1725-
vec->ksize);
1724+
vec->setkey_error = crypto_ahash_setkey(
1725+
crypto_ahash_reqtfm(req), vec->key, vec->ksize);
17261726
/* If the key couldn't be set, no need to continue to digest. */
17271727
if (vec->setkey_error)
17281728
goto done;
17291729
}
17301730

17311731
/* Digest */
1732-
vec->digest_error = crypto_shash_digest(desc, vec->plaintext,
1733-
vec->psize, (u8 *)vec->digest);
1732+
vec->digest_error = crypto_hash_digest(
1733+
crypto_ahash_reqtfm(req), vec->plaintext,
1734+
vec->psize, (u8 *)vec->digest);
17341735
done:
17351736
snprintf(name, max_namelen, "\"random: psize=%u ksize=%u\"",
17361737
vec->psize, vec->ksize);
@@ -1755,8 +1756,8 @@ static int test_hash_vs_generic_impl(const char *generic_driver,
17551756
const char *driver = crypto_ahash_driver_name(tfm);
17561757
struct rnd_state rng;
17571758
char _generic_driver[CRYPTO_MAX_ALG_NAME];
1758-
struct crypto_shash *generic_tfm = NULL;
1759-
struct shash_desc *generic_desc = NULL;
1759+
struct ahash_request *generic_req = NULL;
1760+
struct crypto_ahash *generic_tfm = NULL;
17601761
unsigned int i;
17611762
struct hash_testvec vec = { 0 };
17621763
char vec_name[64];
@@ -1779,7 +1780,7 @@ static int test_hash_vs_generic_impl(const char *generic_driver,
17791780
if (strcmp(generic_driver, driver) == 0) /* Already the generic impl? */
17801781
return 0;
17811782

1782-
generic_tfm = crypto_alloc_shash(generic_driver, 0, 0);
1783+
generic_tfm = crypto_alloc_ahash(generic_driver, 0, 0);
17831784
if (IS_ERR(generic_tfm)) {
17841785
err = PTR_ERR(generic_tfm);
17851786
if (err == -ENOENT) {
@@ -1798,27 +1799,25 @@ static int test_hash_vs_generic_impl(const char *generic_driver,
17981799
goto out;
17991800
}
18001801

1801-
generic_desc = kzalloc(sizeof(*desc) +
1802-
crypto_shash_descsize(generic_tfm), GFP_KERNEL);
1803-
if (!generic_desc) {
1802+
generic_req = ahash_request_alloc(generic_tfm, GFP_KERNEL);
1803+
if (!generic_req) {
18041804
err = -ENOMEM;
18051805
goto out;
18061806
}
1807-
generic_desc->tfm = generic_tfm;
18081807

18091808
/* Check the algorithm properties for consistency. */
18101809

1811-
if (digestsize != crypto_shash_digestsize(generic_tfm)) {
1810+
if (digestsize != crypto_ahash_digestsize(generic_tfm)) {
18121811
pr_err("alg: hash: digestsize for %s (%u) doesn't match generic impl (%u)\n",
18131812
driver, digestsize,
1814-
crypto_shash_digestsize(generic_tfm));
1813+
crypto_ahash_digestsize(generic_tfm));
18151814
err = -EINVAL;
18161815
goto out;
18171816
}
18181817

1819-
if (blocksize != crypto_shash_blocksize(generic_tfm)) {
1818+
if (blocksize != crypto_ahash_blocksize(generic_tfm)) {
18201819
pr_err("alg: hash: blocksize for %s (%u) doesn't match generic impl (%u)\n",
1821-
driver, blocksize, crypto_shash_blocksize(generic_tfm));
1820+
driver, blocksize, crypto_ahash_blocksize(generic_tfm));
18221821
err = -EINVAL;
18231822
goto out;
18241823
}
@@ -1837,7 +1836,7 @@ static int test_hash_vs_generic_impl(const char *generic_driver,
18371836
}
18381837

18391838
for (i = 0; i < fuzz_iterations * 8; i++) {
1840-
generate_random_hash_testvec(&rng, generic_desc, &vec,
1839+
generate_random_hash_testvec(&rng, generic_req, &vec,
18411840
maxkeysize, maxdatasize,
18421841
vec_name, sizeof(vec_name));
18431842
generate_random_testvec_config(&rng, cfg, cfgname,
@@ -1855,8 +1854,8 @@ static int test_hash_vs_generic_impl(const char *generic_driver,
18551854
kfree(vec.key);
18561855
kfree(vec.plaintext);
18571856
kfree(vec.digest);
1858-
crypto_free_shash(generic_tfm);
1859-
kfree_sensitive(generic_desc);
1857+
ahash_request_free(generic_req);
1858+
crypto_free_ahash(generic_tfm);
18601859
return err;
18611860
}
18621861

0 commit comments

Comments
 (0)