@@ -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 */
17011701static 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 );
17341735done :
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