Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

crypto: testmgr - Use ahash for generic tfm

As shash is being phased out, use ahash for the generic tfm.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

+18 -19
+18 -19
crypto/testmgr.c
··· 1699 1699 * Assumes the buffers in 'vec' were already allocated. 1700 1700 */ 1701 1701 static void generate_random_hash_testvec(struct rnd_state *rng, 1702 - struct shash_desc *desc, 1702 + struct ahash_request *req, 1703 1703 struct hash_testvec *vec, 1704 1704 unsigned int maxkeysize, 1705 1705 unsigned int maxdatasize, ··· 1721 1721 vec->ksize = prandom_u32_inclusive(rng, 1, maxkeysize); 1722 1722 generate_random_bytes(rng, (u8 *)vec->key, vec->ksize); 1723 1723 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); 1726 1726 /* If the key couldn't be set, no need to continue to digest. */ 1727 1727 if (vec->setkey_error) 1728 1728 goto done; 1729 1729 } 1730 1730 1731 1731 /* 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); 1734 1735 done: 1735 1736 snprintf(name, max_namelen, "\"random: psize=%u ksize=%u\"", 1736 1737 vec->psize, vec->ksize); ··· 1756 1755 const char *driver = crypto_ahash_driver_name(tfm); 1757 1756 struct rnd_state rng; 1758 1757 char _generic_driver[CRYPTO_MAX_ALG_NAME]; 1759 - struct crypto_shash *generic_tfm = NULL; 1760 - struct shash_desc *generic_desc = NULL; 1758 + struct ahash_request *generic_req = NULL; 1759 + struct crypto_ahash *generic_tfm = NULL; 1761 1760 unsigned int i; 1762 1761 struct hash_testvec vec = { 0 }; 1763 1762 char vec_name[64]; ··· 1780 1779 if (strcmp(generic_driver, driver) == 0) /* Already the generic impl? */ 1781 1780 return 0; 1782 1781 1783 - generic_tfm = crypto_alloc_shash(generic_driver, 0, 0); 1782 + generic_tfm = crypto_alloc_ahash(generic_driver, 0, 0); 1784 1783 if (IS_ERR(generic_tfm)) { 1785 1784 err = PTR_ERR(generic_tfm); 1786 1785 if (err == -ENOENT) { ··· 1799 1798 goto out; 1800 1799 } 1801 1800 1802 - generic_desc = kzalloc(sizeof(*desc) + 1803 - crypto_shash_descsize(generic_tfm), GFP_KERNEL); 1804 - if (!generic_desc) { 1801 + generic_req = ahash_request_alloc(generic_tfm, GFP_KERNEL); 1802 + if (!generic_req) { 1805 1803 err = -ENOMEM; 1806 1804 goto out; 1807 1805 } 1808 - generic_desc->tfm = generic_tfm; 1809 1806 1810 1807 /* Check the algorithm properties for consistency. */ 1811 1808 1812 - if (digestsize != crypto_shash_digestsize(generic_tfm)) { 1809 + if (digestsize != crypto_ahash_digestsize(generic_tfm)) { 1813 1810 pr_err("alg: hash: digestsize for %s (%u) doesn't match generic impl (%u)\n", 1814 1811 driver, digestsize, 1815 - crypto_shash_digestsize(generic_tfm)); 1812 + crypto_ahash_digestsize(generic_tfm)); 1816 1813 err = -EINVAL; 1817 1814 goto out; 1818 1815 } 1819 1816 1820 - if (blocksize != crypto_shash_blocksize(generic_tfm)) { 1817 + if (blocksize != crypto_ahash_blocksize(generic_tfm)) { 1821 1818 pr_err("alg: hash: blocksize for %s (%u) doesn't match generic impl (%u)\n", 1822 - driver, blocksize, crypto_shash_blocksize(generic_tfm)); 1819 + driver, blocksize, crypto_ahash_blocksize(generic_tfm)); 1823 1820 err = -EINVAL; 1824 1821 goto out; 1825 1822 } ··· 1836 1837 } 1837 1838 1838 1839 for (i = 0; i < fuzz_iterations * 8; i++) { 1839 - generate_random_hash_testvec(&rng, generic_desc, &vec, 1840 + generate_random_hash_testvec(&rng, generic_req, &vec, 1840 1841 maxkeysize, maxdatasize, 1841 1842 vec_name, sizeof(vec_name)); 1842 1843 generate_random_testvec_config(&rng, cfg, cfgname, ··· 1854 1855 kfree(vec.key); 1855 1856 kfree(vec.plaintext); 1856 1857 kfree(vec.digest); 1857 - crypto_free_shash(generic_tfm); 1858 - kfree_sensitive(generic_desc); 1858 + ahash_request_free(generic_req); 1859 + crypto_free_ahash(generic_tfm); 1859 1860 return err; 1860 1861 } 1861 1862