summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'crypto')
-rw-r--r--crypto/testmgr.c515
-rw-r--r--crypto/testmgr.h253
2 files changed, 245 insertions, 523 deletions
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index ca3fd5f0c094..a275c7c2c371 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -284,6 +284,68 @@ struct testvec_config {
284 284
285#define TESTVEC_CONFIG_NAMELEN 192 285#define TESTVEC_CONFIG_NAMELEN 192
286 286
287/*
288 * The following are the lists of testvec_configs to test for each algorithm
289 * type when the basic crypto self-tests are enabled, i.e. when
290 * CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is unset. They aim to provide good test
291 * coverage, while keeping the test time much shorter than the full fuzz tests
292 * so that the basic tests can be enabled in a wider range of circumstances.
293 */
294
295/* Configs for skciphers and aeads */
296static const struct testvec_config default_cipher_testvec_configs[] = {
297 {
298 .name = "in-place",
299 .inplace = true,
300 .src_divs = { { .proportion_of_total = 10000 } },
301 }, {
302 .name = "out-of-place",
303 .src_divs = { { .proportion_of_total = 10000 } },
304 }, {
305 .name = "unaligned buffer, offset=1",
306 .src_divs = { { .proportion_of_total = 10000, .offset = 1 } },
307 .iv_offset = 1,
308 }, {
309 .name = "buffer aligned only to alignmask",
310 .src_divs = {
311 {
312 .proportion_of_total = 10000,
313 .offset = 1,
314 .offset_relative_to_alignmask = true,
315 },
316 },
317 .iv_offset = 1,
318 .iv_offset_relative_to_alignmask = true,
319 }, {
320 .name = "two even aligned splits",
321 .src_divs = {
322 { .proportion_of_total = 5000 },
323 { .proportion_of_total = 5000 },
324 },
325 }, {
326 .name = "uneven misaligned splits, may sleep",
327 .req_flags = CRYPTO_TFM_REQ_MAY_SLEEP,
328 .src_divs = {
329 { .proportion_of_total = 1900, .offset = 33 },
330 { .proportion_of_total = 3300, .offset = 7 },
331 { .proportion_of_total = 4800, .offset = 18 },
332 },
333 .iv_offset = 3,
334 }, {
335 .name = "misaligned splits crossing pages, inplace",
336 .inplace = true,
337 .src_divs = {
338 {
339 .proportion_of_total = 7500,
340 .offset = PAGE_SIZE - 32
341 }, {
342 .proportion_of_total = 2500,
343 .offset = PAGE_SIZE - 7
344 },
345 },
346 }
347};
348
287static unsigned int count_test_sg_divisions(const struct test_sg_division *divs) 349static unsigned int count_test_sg_divisions(const struct test_sg_division *divs)
288{ 350{
289 unsigned int remaining = TEST_SG_TOTAL; 351 unsigned int remaining = TEST_SG_TOTAL;
@@ -1608,8 +1670,6 @@ static int test_cipher(struct crypto_cipher *tfm, int enc,
1608 1670
1609 j = 0; 1671 j = 0;
1610 for (i = 0; i < tcount; i++) { 1672 for (i = 0; i < tcount; i++) {
1611 if (template[i].np)
1612 continue;
1613 1673
1614 if (fips_enabled && template[i].fips_skip) 1674 if (fips_enabled && template[i].fips_skip)
1615 continue; 1675 continue;
@@ -1667,282 +1727,214 @@ out_nobuf:
1667 return ret; 1727 return ret;
1668} 1728}
1669 1729
1670static int __test_skcipher(struct crypto_skcipher *tfm, int enc, 1730static int test_skcipher_vec_cfg(const char *driver, int enc,
1671 const struct cipher_testvec *template, 1731 const struct cipher_testvec *vec,
1672 unsigned int tcount, 1732 unsigned int vec_num,
1673 const bool diff_dst, const int align_offset) 1733 const struct testvec_config *cfg,
1734 struct skcipher_request *req,
1735 struct cipher_test_sglists *tsgls)
1674{ 1736{
1675 const char *algo = 1737 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
1676 crypto_tfm_alg_driver_name(crypto_skcipher_tfm(tfm)); 1738 const unsigned int alignmask = crypto_skcipher_alignmask(tfm);
1677 unsigned int i, j, k, n, temp; 1739 const unsigned int ivsize = crypto_skcipher_ivsize(tfm);
1678 char *q; 1740 const u32 req_flags = CRYPTO_TFM_REQ_MAY_BACKLOG | cfg->req_flags;
1679 struct skcipher_request *req; 1741 const char *op = enc ? "encryption" : "decryption";
1680 struct scatterlist sg[8]; 1742 DECLARE_CRYPTO_WAIT(wait);
1681 struct scatterlist sgout[8]; 1743 u8 _iv[3 * (MAX_ALGAPI_ALIGNMASK + 1) + MAX_IVLEN];
1682 const char *e, *d; 1744 u8 *iv = PTR_ALIGN(&_iv[0], 2 * (MAX_ALGAPI_ALIGNMASK + 1)) +
1683 struct crypto_wait wait; 1745 cfg->iv_offset +
1684 const char *input, *result; 1746 (cfg->iv_offset_relative_to_alignmask ? alignmask : 0);
1685 void *data; 1747 struct kvec input;
1686 char iv[MAX_IVLEN]; 1748 int err;
1687 char *xbuf[XBUFSIZE];
1688 char *xoutbuf[XBUFSIZE];
1689 int ret = -ENOMEM;
1690 unsigned int ivsize = crypto_skcipher_ivsize(tfm);
1691
1692 if (testmgr_alloc_buf(xbuf))
1693 goto out_nobuf;
1694
1695 if (diff_dst && testmgr_alloc_buf(xoutbuf))
1696 goto out_nooutbuf;
1697
1698 if (diff_dst)
1699 d = "-ddst";
1700 else
1701 d = "";
1702 1749
1703 if (enc == ENCRYPT) 1750 /* Set the key */
1704 e = "encryption"; 1751 if (vec->wk)
1752 crypto_skcipher_set_flags(tfm, CRYPTO_TFM_REQ_FORBID_WEAK_KEYS);
1705 else 1753 else
1706 e = "decryption"; 1754 crypto_skcipher_clear_flags(tfm,
1707 1755 CRYPTO_TFM_REQ_FORBID_WEAK_KEYS);
1708 crypto_init_wait(&wait); 1756 err = crypto_skcipher_setkey(tfm, vec->key, vec->klen);
1709 1757 if (err) {
1710 req = skcipher_request_alloc(tfm, GFP_KERNEL); 1758 if (vec->fail) /* expectedly failed to set key? */
1711 if (!req) { 1759 return 0;
1712 pr_err("alg: skcipher%s: Failed to allocate request for %s\n", 1760 pr_err("alg: skcipher: %s setkey failed with err %d on test vector %u; flags=%#x\n",
1713 d, algo); 1761 driver, err, vec_num, crypto_skcipher_get_flags(tfm));
1714 goto out; 1762 return err;
1763 }
1764 if (vec->fail) {
1765 pr_err("alg: skcipher: %s setkey unexpectedly succeeded on test vector %u\n",
1766 driver, vec_num);
1767 return -EINVAL;
1715 } 1768 }
1716 1769
1717 skcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG, 1770 /* The IV must be copied to a buffer, as the algorithm may modify it */
1718 crypto_req_done, &wait); 1771 if (ivsize) {
1719 1772 if (WARN_ON(ivsize > MAX_IVLEN))
1720 j = 0; 1773 return -EINVAL;
1721 for (i = 0; i < tcount; i++) { 1774 if (vec->iv && !(vec->generates_iv && enc))
1722 if (template[i].np && !template[i].also_non_np) 1775 memcpy(iv, vec->iv, ivsize);
1723 continue;
1724
1725 if (fips_enabled && template[i].fips_skip)
1726 continue;
1727
1728 if (template[i].iv && !(template[i].generates_iv && enc))
1729 memcpy(iv, template[i].iv, ivsize);
1730 else 1776 else
1731 memset(iv, 0, MAX_IVLEN); 1777 memset(iv, 0, ivsize);
1732 1778 } else {
1733 input = enc ? template[i].ptext : template[i].ctext; 1779 if (vec->generates_iv) {
1734 result = enc ? template[i].ctext : template[i].ptext; 1780 pr_err("alg: skcipher: %s has ivsize=0 but test vector %u generates IV!\n",
1735 j++; 1781 driver, vec_num);
1736 ret = -EINVAL; 1782 return -EINVAL;
1737 if (WARN_ON(align_offset + template[i].len > PAGE_SIZE))
1738 goto out;
1739
1740 data = xbuf[0];
1741 data += align_offset;
1742 memcpy(data, input, template[i].len);
1743
1744 crypto_skcipher_clear_flags(tfm, ~0);
1745 if (template[i].wk)
1746 crypto_skcipher_set_flags(tfm, CRYPTO_TFM_REQ_FORBID_WEAK_KEYS);
1747
1748 ret = crypto_skcipher_setkey(tfm, template[i].key,
1749 template[i].klen);
1750 if (template[i].fail == !ret) {
1751 pr_err("alg: skcipher%s: setkey failed on test %d for %s: flags=%x\n",
1752 d, j, algo, crypto_skcipher_get_flags(tfm));
1753 goto out;
1754 } else if (ret)
1755 continue;
1756
1757 sg_init_one(&sg[0], data, template[i].len);
1758 if (diff_dst) {
1759 data = xoutbuf[0];
1760 data += align_offset;
1761 sg_init_one(&sgout[0], data, template[i].len);
1762 }
1763
1764 skcipher_request_set_crypt(req, sg, (diff_dst) ? sgout : sg,
1765 template[i].len, iv);
1766 ret = crypto_wait_req(enc ? crypto_skcipher_encrypt(req) :
1767 crypto_skcipher_decrypt(req), &wait);
1768
1769 if (ret) {
1770 pr_err("alg: skcipher%s: %s failed on test %d for %s: ret=%d\n",
1771 d, e, j, algo, -ret);
1772 goto out;
1773 }
1774
1775 q = data;
1776 if (memcmp(q, result, template[i].len)) {
1777 pr_err("alg: skcipher%s: Test %d failed (invalid result) on %s for %s\n",
1778 d, j, e, algo);
1779 hexdump(q, template[i].len);
1780 ret = -EINVAL;
1781 goto out;
1782 }
1783
1784 if (template[i].generates_iv && enc &&
1785 memcmp(iv, template[i].iv, crypto_skcipher_ivsize(tfm))) {
1786 pr_err("alg: skcipher%s: Test %d failed (invalid output IV) on %s for %s\n",
1787 d, j, e, algo);
1788 hexdump(iv, crypto_skcipher_ivsize(tfm));
1789 ret = -EINVAL;
1790 goto out;
1791 } 1783 }
1784 iv = NULL;
1792 } 1785 }
1793 1786
1794 j = 0; 1787 /* Build the src/dst scatterlists */
1795 for (i = 0; i < tcount; i++) { 1788 input.iov_base = enc ? (void *)vec->ptext : (void *)vec->ctext;
1796 /* alignment tests are only done with continuous buffers */ 1789 input.iov_len = vec->len;
1797 if (align_offset != 0) 1790 err = build_cipher_test_sglists(tsgls, cfg, alignmask,
1798 break; 1791 vec->len, vec->len, &input, 1);
1799 1792 if (err) {
1800 if (!template[i].np) 1793 pr_err("alg: skcipher: %s %s: error preparing scatterlists for test vector %u, cfg=\"%s\"\n",
1801 continue; 1794 driver, op, vec_num, cfg->name);
1802 1795 return err;
1803 if (fips_enabled && template[i].fips_skip) 1796 }
1804 continue;
1805
1806 if (template[i].iv && !(template[i].generates_iv && enc))
1807 memcpy(iv, template[i].iv, ivsize);
1808 else
1809 memset(iv, 0, MAX_IVLEN);
1810
1811 input = enc ? template[i].ptext : template[i].ctext;
1812 result = enc ? template[i].ctext : template[i].ptext;
1813 j++;
1814 crypto_skcipher_clear_flags(tfm, ~0);
1815 if (template[i].wk)
1816 crypto_skcipher_set_flags(tfm, CRYPTO_TFM_REQ_FORBID_WEAK_KEYS);
1817
1818 ret = crypto_skcipher_setkey(tfm, template[i].key,
1819 template[i].klen);
1820 if (template[i].fail == !ret) {
1821 pr_err("alg: skcipher%s: setkey failed on chunk test %d for %s: flags=%x\n",
1822 d, j, algo, crypto_skcipher_get_flags(tfm));
1823 goto out;
1824 } else if (ret)
1825 continue;
1826
1827 temp = 0;
1828 ret = -EINVAL;
1829 sg_init_table(sg, template[i].np);
1830 if (diff_dst)
1831 sg_init_table(sgout, template[i].np);
1832 for (k = 0; k < template[i].np; k++) {
1833 if (WARN_ON(offset_in_page(IDX[k]) +
1834 template[i].tap[k] > PAGE_SIZE))
1835 goto out;
1836
1837 q = xbuf[IDX[k] >> PAGE_SHIFT] + offset_in_page(IDX[k]);
1838
1839 memcpy(q, input + temp, template[i].tap[k]);
1840
1841 if (offset_in_page(q) + template[i].tap[k] < PAGE_SIZE)
1842 q[template[i].tap[k]] = 0;
1843
1844 sg_set_buf(&sg[k], q, template[i].tap[k]);
1845 if (diff_dst) {
1846 q = xoutbuf[IDX[k] >> PAGE_SHIFT] +
1847 offset_in_page(IDX[k]);
1848
1849 sg_set_buf(&sgout[k], q, template[i].tap[k]);
1850 1797
1851 memset(q, 0, template[i].tap[k]); 1798 /* Do the actual encryption or decryption */
1852 if (offset_in_page(q) + 1799 testmgr_poison(req->__ctx, crypto_skcipher_reqsize(tfm));
1853 template[i].tap[k] < PAGE_SIZE) 1800 skcipher_request_set_callback(req, req_flags, crypto_req_done, &wait);
1854 q[template[i].tap[k]] = 0; 1801 skcipher_request_set_crypt(req, tsgls->src.sgl_ptr, tsgls->dst.sgl_ptr,
1855 } 1802 vec->len, iv);
1803 err = crypto_wait_req(enc ? crypto_skcipher_encrypt(req) :
1804 crypto_skcipher_decrypt(req), &wait);
1805 if (err) {
1806 pr_err("alg: skcipher: %s %s failed with err %d on test vector %u, cfg=\"%s\"\n",
1807 driver, op, err, vec_num, cfg->name);
1808 return err;
1809 }
1856 1810
1857 temp += template[i].tap[k]; 1811 /* Check for the correct output (ciphertext or plaintext) */
1858 } 1812 err = verify_correct_output(&tsgls->dst, enc ? vec->ctext : vec->ptext,
1813 vec->len, 0, true);
1814 if (err == -EOVERFLOW) {
1815 pr_err("alg: skcipher: %s %s overran dst buffer on test vector %u, cfg=\"%s\"\n",
1816 driver, op, vec_num, cfg->name);
1817 return err;
1818 }
1819 if (err) {
1820 pr_err("alg: skcipher: %s %s test failed (wrong result) on test vector %u, cfg=\"%s\"\n",
1821 driver, op, vec_num, cfg->name);
1822 return err;
1823 }
1859 1824
1860 skcipher_request_set_crypt(req, sg, (diff_dst) ? sgout : sg, 1825 /* If applicable, check that the algorithm generated the correct IV */
1861 template[i].len, iv); 1826 if (vec->generates_iv && enc && memcmp(iv, vec->iv, ivsize) != 0) {
1827 pr_err("alg: skcipher: %s %s test failed (wrong output IV) on test vector %u, cfg=\"%s\"\n",
1828 driver, op, vec_num, cfg->name);
1829 hexdump(iv, ivsize);
1830 return -EINVAL;
1831 }
1862 1832
1863 ret = crypto_wait_req(enc ? crypto_skcipher_encrypt(req) : 1833 return 0;
1864 crypto_skcipher_decrypt(req), &wait); 1834}
1865 1835
1866 if (ret) { 1836static int test_skcipher_vec(const char *driver, int enc,
1867 pr_err("alg: skcipher%s: %s failed on chunk test %d for %s: ret=%d\n", 1837 const struct cipher_testvec *vec,
1868 d, e, j, algo, -ret); 1838 unsigned int vec_num,
1869 goto out; 1839 struct skcipher_request *req,
1870 } 1840 struct cipher_test_sglists *tsgls)
1841{
1842 unsigned int i;
1843 int err;
1871 1844
1872 temp = 0; 1845 if (fips_enabled && vec->fips_skip)
1873 ret = -EINVAL; 1846 return 0;
1874 for (k = 0; k < template[i].np; k++) {
1875 if (diff_dst)
1876 q = xoutbuf[IDX[k] >> PAGE_SHIFT] +
1877 offset_in_page(IDX[k]);
1878 else
1879 q = xbuf[IDX[k] >> PAGE_SHIFT] +
1880 offset_in_page(IDX[k]);
1881 1847
1882 if (memcmp(q, result + temp, template[i].tap[k])) { 1848 for (i = 0; i < ARRAY_SIZE(default_cipher_testvec_configs); i++) {
1883 pr_err("alg: skcipher%s: Chunk test %d failed on %s at page %u for %s\n", 1849 err = test_skcipher_vec_cfg(driver, enc, vec, vec_num,
1884 d, j, e, k, algo); 1850 &default_cipher_testvec_configs[i],
1885 hexdump(q, template[i].tap[k]); 1851 req, tsgls);
1886 goto out; 1852 if (err)
1887 } 1853 return err;
1854 }
1888 1855
1889 q += template[i].tap[k]; 1856#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS
1890 for (n = 0; offset_in_page(q + n) && q[n]; n++) 1857 if (!noextratests) {
1891 ; 1858 struct testvec_config cfg;
1892 if (n) { 1859 char cfgname[TESTVEC_CONFIG_NAMELEN];
1893 pr_err("alg: skcipher%s: Result buffer corruption in chunk test %d on %s at page %u for %s: %u bytes:\n", 1860
1894 d, j, e, k, algo, n); 1861 for (i = 0; i < fuzz_iterations; i++) {
1895 hexdump(q, n); 1862 generate_random_testvec_config(&cfg, cfgname,
1896 goto out; 1863 sizeof(cfgname));
1897 } 1864 err = test_skcipher_vec_cfg(driver, enc, vec, vec_num,
1898 temp += template[i].tap[k]; 1865 &cfg, req, tsgls);
1866 if (err)
1867 return err;
1899 } 1868 }
1900 } 1869 }
1870#endif
1871 return 0;
1872}
1901 1873
1902 ret = 0; 1874static int test_skcipher(const char *driver, int enc,
1875 const struct cipher_test_suite *suite,
1876 struct skcipher_request *req,
1877 struct cipher_test_sglists *tsgls)
1878{
1879 unsigned int i;
1880 int err;
1903 1881
1904out: 1882 for (i = 0; i < suite->count; i++) {
1905 skcipher_request_free(req); 1883 err = test_skcipher_vec(driver, enc, &suite->vecs[i], i, req,
1906 if (diff_dst) 1884 tsgls);
1907 testmgr_free_buf(xoutbuf); 1885 if (err)
1908out_nooutbuf: 1886 return err;
1909 testmgr_free_buf(xbuf); 1887 }
1910out_nobuf: 1888 return 0;
1911 return ret;
1912} 1889}
1913 1890
1914static int test_skcipher(struct crypto_skcipher *tfm, int enc, 1891static int alg_test_skcipher(const struct alg_test_desc *desc,
1915 const struct cipher_testvec *template, 1892 const char *driver, u32 type, u32 mask)
1916 unsigned int tcount)
1917{ 1893{
1918 unsigned int alignmask; 1894 const struct cipher_test_suite *suite = &desc->suite.cipher;
1919 int ret; 1895 struct crypto_skcipher *tfm;
1896 struct skcipher_request *req = NULL;
1897 struct cipher_test_sglists *tsgls = NULL;
1898 int err;
1920 1899
1921 /* test 'dst == src' case */ 1900 if (suite->count <= 0) {
1922 ret = __test_skcipher(tfm, enc, template, tcount, false, 0); 1901 pr_err("alg: skcipher: empty test suite for %s\n", driver);
1923 if (ret) 1902 return -EINVAL;
1924 return ret; 1903 }
1925 1904
1926 /* test 'dst != src' case */ 1905 tfm = crypto_alloc_skcipher(driver, type, mask);
1927 ret = __test_skcipher(tfm, enc, template, tcount, true, 0); 1906 if (IS_ERR(tfm)) {
1928 if (ret) 1907 pr_err("alg: skcipher: failed to allocate transform for %s: %ld\n",
1929 return ret; 1908 driver, PTR_ERR(tfm));
1909 return PTR_ERR(tfm);
1910 }
1930 1911
1931 /* test unaligned buffers, check with one byte offset */ 1912 req = skcipher_request_alloc(tfm, GFP_KERNEL);
1932 ret = __test_skcipher(tfm, enc, template, tcount, true, 1); 1913 if (!req) {
1933 if (ret) 1914 pr_err("alg: skcipher: failed to allocate request for %s\n",
1934 return ret; 1915 driver);
1916 err = -ENOMEM;
1917 goto out;
1918 }
1935 1919
1936 alignmask = crypto_tfm_alg_alignmask(&tfm->base); 1920 tsgls = alloc_cipher_test_sglists();
1937 if (alignmask) { 1921 if (!tsgls) {
1938 /* Check if alignment mask for tfm is correctly set. */ 1922 pr_err("alg: skcipher: failed to allocate test buffers for %s\n",
1939 ret = __test_skcipher(tfm, enc, template, tcount, true, 1923 driver);
1940 alignmask + 1); 1924 err = -ENOMEM;
1941 if (ret) 1925 goto out;
1942 return ret;
1943 } 1926 }
1944 1927
1945 return 0; 1928 err = test_skcipher(driver, ENCRYPT, suite, req, tsgls);
1929 if (err)
1930 goto out;
1931
1932 err = test_skcipher(driver, DECRYPT, suite, req, tsgls);
1933out:
1934 free_cipher_test_sglists(tsgls);
1935 skcipher_request_free(req);
1936 crypto_free_skcipher(tfm);
1937 return err;
1946} 1938}
1947 1939
1948static int test_comp(struct crypto_comp *tfm, 1940static int test_comp(struct crypto_comp *tfm,
@@ -2326,28 +2318,6 @@ static int alg_test_cipher(const struct alg_test_desc *desc,
2326 return err; 2318 return err;
2327} 2319}
2328 2320
2329static int alg_test_skcipher(const struct alg_test_desc *desc,
2330 const char *driver, u32 type, u32 mask)
2331{
2332 const struct cipher_test_suite *suite = &desc->suite.cipher;
2333 struct crypto_skcipher *tfm;
2334 int err;
2335
2336 tfm = crypto_alloc_skcipher(driver, type, mask);
2337 if (IS_ERR(tfm)) {
2338 printk(KERN_ERR "alg: skcipher: Failed to load transform for "
2339 "%s: %ld\n", driver, PTR_ERR(tfm));
2340 return PTR_ERR(tfm);
2341 }
2342
2343 err = test_skcipher(tfm, ENCRYPT, suite->vecs, suite->count);
2344 if (!err)
2345 err = test_skcipher(tfm, DECRYPT, suite->vecs, suite->count);
2346
2347 crypto_free_skcipher(tfm);
2348 return err;
2349}
2350
2351static int alg_test_comp(const struct alg_test_desc *desc, const char *driver, 2321static int alg_test_comp(const struct alg_test_desc *desc, const char *driver,
2352 u32 type, u32 mask) 2322 u32 type, u32 mask)
2353{ 2323{
@@ -4224,6 +4194,11 @@ static void alg_check_test_descs_order(void)
4224 4194
4225static void alg_check_testvec_configs(void) 4195static void alg_check_testvec_configs(void)
4226{ 4196{
4197 int i;
4198
4199 for (i = 0; i < ARRAY_SIZE(default_cipher_testvec_configs); i++)
4200 WARN_ON(!valid_testvec_config(
4201 &default_cipher_testvec_configs[i]));
4227} 4202}
4228 4203
4229static void testmgr_onetime_init(void) 4204static void testmgr_onetime_init(void)
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index d8f6035c7ff2..1a73af8a79f7 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -52,10 +52,6 @@ struct hash_testvec {
52 * @fail: If set to one, the test need to fail 52 * @fail: If set to one, the test need to fail
53 * @wk: Does the test need CRYPTO_TFM_REQ_FORBID_WEAK_KEYS? 53 * @wk: Does the test need CRYPTO_TFM_REQ_FORBID_WEAK_KEYS?
54 * ( e.g. test needs to fail due to a weak key ) 54 * ( e.g. test needs to fail due to a weak key )
55 * @np: numbers of SG to distribute data in (from 1 to MAX_TAP)
56 * @tap: How to distribute data in @np SGs
57 * @also_non_np: if set to 1, the test will be also done without
58 * splitting data in @np SGs
59 * @fips_skip: Skip the test vector in FIPS mode 55 * @fips_skip: Skip the test vector in FIPS mode
60 * @generates_iv: Encryption should ignore the given IV, and output @iv. 56 * @generates_iv: Encryption should ignore the given IV, and output @iv.
61 * Decryption takes @iv. Needed for AES Keywrap ("kw(aes)"). 57 * Decryption takes @iv. Needed for AES Keywrap ("kw(aes)").
@@ -65,9 +61,6 @@ struct cipher_testvec {
65 const char *iv; 61 const char *iv;
66 const char *ptext; 62 const char *ptext;
67 const char *ctext; 63 const char *ctext;
68 unsigned short tap[MAX_TAP];
69 int np;
70 unsigned char also_non_np;
71 bool fail; 64 bool fail;
72 unsigned char wk; /* weak key flag */ 65 unsigned char wk; /* weak key flag */
73 unsigned char klen; 66 unsigned char klen;
@@ -7011,18 +7004,6 @@ static const struct cipher_testvec des_tv_template[] = {
7011 .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" 7004 .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d"
7012 "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", 7005 "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b",
7013 .len = 16, 7006 .len = 16,
7014 .np = 2,
7015 .tap = { 8, 8 }
7016 }, {
7017 .key = "\x01\x23\x45\x67\x89\xab\xcd\xef",
7018 .klen = 8,
7019 .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7"
7020 "\xa3\x99\x7b\xca\xaf\x69\xa0\xf5",
7021 .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d"
7022 "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b",
7023 .len = 16,
7024 .np = 2,
7025 .tap = { 8, 8 }
7026 }, { 7007 }, {
7027 .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 7008 .key = "\x01\x23\x45\x67\x89\xab\xcd\xef",
7028 .klen = 8, 7009 .klen = 8,
@@ -7031,8 +7012,6 @@ static const struct cipher_testvec des_tv_template[] = {
7031 .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" 7012 .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d"
7032 "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b", 7013 "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b",
7033 .len = 16, 7014 .len = 16,
7034 .np = 3,
7035 .tap = { 3, 12, 1 }
7036 }, { /* Four blocks -- for testing encryption with chunking */ 7015 }, { /* Four blocks -- for testing encryption with chunking */
7037 .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 7016 .key = "\x01\x23\x45\x67\x89\xab\xcd\xef",
7038 .klen = 8, 7017 .klen = 8,
@@ -7045,38 +7024,6 @@ static const struct cipher_testvec des_tv_template[] = {
7045 "\xb4\x99\x26\xf7\x1f\xe1\xd4\x90" 7024 "\xb4\x99\x26\xf7\x1f\xe1\xd4\x90"
7046 "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", 7025 "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b",
7047 .len = 32, 7026 .len = 32,
7048 .np = 3,
7049 .tap = { 14, 10, 8 }
7050 }, {
7051 .key = "\x01\x23\x45\x67\x89\xab\xcd\xef",
7052 .klen = 8,
7053 .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7"
7054 "\x22\x33\x44\x55\x66\x77\x88\x99"
7055 "\xca\xfe\xba\xbe\xfe\xed\xbe\xef",
7056 .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d"
7057 "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b"
7058 "\xb4\x99\x26\xf7\x1f\xe1\xd4\x90",
7059 .len = 24,
7060 .np = 4,
7061 .tap = { 2, 1, 3, 18 }
7062 }, {
7063 .key = "\x01\x23\x45\x67\x89\xab\xcd\xef",
7064 .klen = 8,
7065 .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7"
7066 "\x22\x33\x44\x55\x66\x77\x88\x99",
7067 .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d"
7068 "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b",
7069 .len = 16,
7070 .np = 5,
7071 .tap = { 2, 2, 2, 2, 8 }
7072 }, {
7073 .key = "\x01\x23\x45\x67\x89\xab\xcd\xef",
7074 .klen = 8,
7075 .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
7076 .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
7077 .len = 8,
7078 .np = 8,
7079 .tap = { 1, 1, 1, 1, 1, 1, 1, 1 }
7080 }, { /* Generated with Crypto++ */ 7027 }, { /* Generated with Crypto++ */
7081 .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", 7028 .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
7082 .klen = 8, 7029 .klen = 8,
@@ -7143,9 +7090,6 @@ static const struct cipher_testvec des_tv_template[] = {
7143 "\xE1\x58\x39\x09\xB4\x8B\x40\xAC" 7090 "\xE1\x58\x39\x09\xB4\x8B\x40\xAC"
7144 "\x5F\x62\xC7\x72\xD9\xFC\xCB\x9A", 7091 "\x5F\x62\xC7\x72\xD9\xFC\xCB\x9A",
7145 .len = 248, 7092 .len = 248,
7146 .also_non_np = 1,
7147 .np = 3,
7148 .tap = { 248 - 10, 2, 8 },
7149 }, 7093 },
7150}; 7094};
7151 7095
@@ -7182,23 +7126,6 @@ static const struct cipher_testvec des_cbc_tv_template[] = {
7182 .ptext = "\x66\x6f\x72\x20\x61\x6c\x6c\x20", 7126 .ptext = "\x66\x6f\x72\x20\x61\x6c\x6c\x20",
7183 .ctext = "\x68\x37\x88\x49\x9a\x7c\x05\xf6", 7127 .ctext = "\x68\x37\x88\x49\x9a\x7c\x05\xf6",
7184 .len = 8, 7128 .len = 8,
7185 .np = 2,
7186 .tap = { 4, 4 },
7187 .also_non_np = 1,
7188 }, { /* Copy of openssl vector for chunk testing */
7189 /* From OpenSSL */
7190 .key = "\x01\x23\x45\x67\x89\xab\xcd\xef",
7191 .klen = 8,
7192 .iv = "\xfe\xdc\xba\x98\x76\x54\x32\x10",
7193 .ptext = "\x37\x36\x35\x34\x33\x32\x31\x20"
7194 "\x4e\x6f\x77\x20\x69\x73\x20\x74"
7195 "\x68\x65\x20\x74\x69\x6d\x65\x20",
7196 .ctext = "\xcc\xd1\x73\xff\xab\x20\x39\xf4"
7197 "\xac\xd8\xae\xfd\xdf\xd8\xa1\xeb"
7198 "\x46\x8e\x91\x15\x78\x88\xba\x68",
7199 .len = 24,
7200 .np = 2,
7201 .tap = { 13, 11 }
7202 }, { /* Generated with Crypto++ */ 7129 }, { /* Generated with Crypto++ */
7203 .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", 7130 .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
7204 .klen = 8, 7131 .klen = 8,
@@ -7266,9 +7193,6 @@ static const struct cipher_testvec des_cbc_tv_template[] = {
7266 "\x82\xA9\xBD\x6A\x31\x91\x39\x11" 7193 "\x82\xA9\xBD\x6A\x31\x91\x39\x11"
7267 "\xC6\x4A\xF3\x55\xC7\x29\x2E\x63", 7194 "\xC6\x4A\xF3\x55\xC7\x29\x2E\x63",
7268 .len = 248, 7195 .len = 248,
7269 .also_non_np = 1,
7270 .np = 3,
7271 .tap = { 248 - 10, 2, 8 },
7272 }, 7196 },
7273}; 7197};
7274 7198
@@ -7340,9 +7264,6 @@ static const struct cipher_testvec des_ctr_tv_template[] = {
7340 "\x19\x7F\x99\x19\x53\xCE\x1D\x14" 7264 "\x19\x7F\x99\x19\x53\xCE\x1D\x14"
7341 "\x69\x74\xA1\x06\x46\x0F\x4E\x75", 7265 "\x69\x74\xA1\x06\x46\x0F\x4E\x75",
7342 .len = 248, 7266 .len = 248,
7343 .also_non_np = 1,
7344 .np = 3,
7345 .tap = { 248 - 10, 2, 8 },
7346 }, { /* Generated with Crypto++ */ 7267 }, { /* Generated with Crypto++ */
7347 .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", 7268 .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
7348 .klen = 8, 7269 .klen = 8,
@@ -7410,9 +7331,6 @@ static const struct cipher_testvec des_ctr_tv_template[] = {
7410 "\xA5\xA6\xE7\xB0\x51\x36\x52\x37" 7331 "\xA5\xA6\xE7\xB0\x51\x36\x52\x37"
7411 "\x91\x45\x05\x3E\x58\xBF\x32", 7332 "\x91\x45\x05\x3E\x58\xBF\x32",
7412 .len = 247, 7333 .len = 247,
7413 .also_non_np = 1,
7414 .np = 2,
7415 .tap = { 247 - 8, 8 },
7416 }, 7334 },
7417}; 7335};
7418 7336
@@ -7571,9 +7489,6 @@ static const struct cipher_testvec des3_ede_tv_template[] = {
7571 "\x93\x03\xD7\x51\x09\xFA\xBE\x68" 7489 "\x93\x03\xD7\x51\x09\xFA\xBE\x68"
7572 "\xD8\x45\xFF\x33\xBA\xBB\x2B\x63", 7490 "\xD8\x45\xFF\x33\xBA\xBB\x2B\x63",
7573 .len = 496, 7491 .len = 496,
7574 .also_non_np = 1,
7575 .np = 3,
7576 .tap = { 496 - 20, 4, 16 },
7577 }, 7492 },
7578}; 7493};
7579 7494
@@ -7749,9 +7664,6 @@ static const struct cipher_testvec des3_ede_cbc_tv_template[] = {
7749 "\x83\x70\xFF\x86\xE6\xAA\x0F\x1F" 7664 "\x83\x70\xFF\x86\xE6\xAA\x0F\x1F"
7750 "\x95\x63\x73\xA2\x44\xAC\xF8\xA5", 7665 "\x95\x63\x73\xA2\x44\xAC\xF8\xA5",
7751 .len = 496, 7666 .len = 496,
7752 .also_non_np = 1,
7753 .np = 3,
7754 .tap = { 496 - 20, 4, 16 },
7755 }, 7667 },
7756}; 7668};
7757 7669
@@ -7888,9 +7800,6 @@ static const struct cipher_testvec des3_ede_ctr_tv_template[] = {
7888 "\xFD\x51\xB0\xC6\x2C\x63\x13\x78" 7800 "\xFD\x51\xB0\xC6\x2C\x63\x13\x78"
7889 "\x5C\xEE\xFC\xCF\xC4\x70\x00\x34", 7801 "\x5C\xEE\xFC\xCF\xC4\x70\x00\x34",
7890 .len = 496, 7802 .len = 496,
7891 .also_non_np = 1,
7892 .np = 3,
7893 .tap = { 496 - 20, 4, 16 },
7894 }, { /* Generated with Crypto++ */ 7803 }, { /* Generated with Crypto++ */
7895 .key = "\x9C\xD6\xF3\x9C\xB9\x5A\x67\x00" 7804 .key = "\x9C\xD6\xF3\x9C\xB9\x5A\x67\x00"
7896 "\x5A\x67\x00\x2D\xCE\xEB\x2D\xCE" 7805 "\x5A\x67\x00\x2D\xCE\xEB\x2D\xCE"
@@ -8025,9 +7934,6 @@ static const struct cipher_testvec des3_ede_ctr_tv_template[] = {
8025 "\x32\x0F\x05\x2F\xF2\x4C\x95\x3B" 7934 "\x32\x0F\x05\x2F\xF2\x4C\x95\x3B"
8026 "\xF2\x79\xD9", 7935 "\xF2\x79\xD9",
8027 .len = 499, 7936 .len = 499,
8028 .also_non_np = 1,
8029 .np = 2,
8030 .tap = { 499 - 16, 16 },
8031 }, 7937 },
8032}; 7938};
8033 7939
@@ -8213,9 +8119,6 @@ static const struct cipher_testvec bf_tv_template[] = {
8213 "\x56\xEB\x36\x77\x3D\xAA\xB8\xF5" 8119 "\x56\xEB\x36\x77\x3D\xAA\xB8\xF5"
8214 "\xC9\x1A\xFB\x5D\xDE\xBB\x43\xF4", 8120 "\xC9\x1A\xFB\x5D\xDE\xBB\x43\xF4",
8215 .len = 504, 8121 .len = 504,
8216 .also_non_np = 1,
8217 .np = 3,
8218 .tap = { 504 - 10, 2, 8 },
8219 }, 8122 },
8220}; 8123};
8221 8124
@@ -8368,9 +8271,6 @@ static const struct cipher_testvec bf_cbc_tv_template[] = {
8368 "\x93\x9B\xEE\xB5\x97\x41\xD2\xA0" 8271 "\x93\x9B\xEE\xB5\x97\x41\xD2\xA0"
8369 "\xB4\x98\xD8\x6B\x74\xE7\x65\xF4", 8272 "\xB4\x98\xD8\x6B\x74\xE7\x65\xF4",
8370 .len = 504, 8273 .len = 504,
8371 .also_non_np = 1,
8372 .np = 3,
8373 .tap = { 504 - 10, 2, 8 },
8374 }, 8274 },
8375}; 8275};
8376 8276
@@ -8643,9 +8543,6 @@ static const struct cipher_testvec bf_ctr_tv_template[] = {
8643 "\x32\x44\x96\x1C\xD8\xEB\x95\xD2" 8543 "\x32\x44\x96\x1C\xD8\xEB\x95\xD2"
8644 "\xF3\x71\xEF\xEB\x4E\xBB\x4D", 8544 "\xF3\x71\xEF\xEB\x4E\xBB\x4D",
8645 .len = 503, 8545 .len = 503,
8646 .also_non_np = 1,
8647 .np = 2,
8648 .tap = { 503 - 8, 8 },
8649 }, { /* Generated with Crypto++ */ 8546 }, { /* Generated with Crypto++ */
8650 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" 8547 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
8651 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" 8548 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
@@ -8944,9 +8841,6 @@ static const struct cipher_testvec tf_tv_template[] = {
8944 "\x58\x33\x9B\x78\xC7\x58\x48\x6B" 8841 "\x58\x33\x9B\x78\xC7\x58\x48\x6B"
8945 "\x2C\x75\x64\xC4\xCA\xC1\x7E\xD5", 8842 "\x2C\x75\x64\xC4\xCA\xC1\x7E\xD5",
8946 .len = 496, 8843 .len = 496,
8947 .also_non_np = 1,
8948 .np = 3,
8949 .tap = { 496 - 20, 4, 16 },
8950 }, 8844 },
8951}; 8845};
8952 8846
@@ -9122,9 +9016,6 @@ static const struct cipher_testvec tf_cbc_tv_template[] = {
9122 "\x30\x70\x56\xA4\x37\xDD\x7C\xC0" 9016 "\x30\x70\x56\xA4\x37\xDD\x7C\xC0"
9123 "\x0A\xA3\x30\x10\x26\x25\x41\x2C", 9017 "\x0A\xA3\x30\x10\x26\x25\x41\x2C",
9124 .len = 496, 9018 .len = 496,
9125 .also_non_np = 1,
9126 .np = 3,
9127 .tap = { 496 - 20, 4, 16 },
9128 }, 9019 },
9129}; 9020};
9130 9021
@@ -9530,9 +9421,6 @@ static const struct cipher_testvec tf_ctr_tv_template[] = {
9530 "\xC5\xC9\x7F\x9E\xCF\x33\x7A\xDF" 9421 "\xC5\xC9\x7F\x9E\xCF\x33\x7A\xDF"
9531 "\x6C\x82\x9D", 9422 "\x6C\x82\x9D",
9532 .len = 499, 9423 .len = 499,
9533 .also_non_np = 1,
9534 .np = 2,
9535 .tap = { 499 - 16, 16 },
9536 }, 9424 },
9537}; 9425};
9538 9426
@@ -9774,9 +9662,6 @@ static const struct cipher_testvec tf_lrw_tv_template[] = {
9774 "\x80\x18\xc4\x6c\x03\xd3\xb7\xba" 9662 "\x80\x18\xc4\x6c\x03\xd3\xb7\xba"
9775 "\x11\xd7\xb8\x6e\xea\xe1\x80\x30", 9663 "\x11\xd7\xb8\x6e\xea\xe1\x80\x30",
9776 .len = 512, 9664 .len = 512,
9777 .also_non_np = 1,
9778 .np = 3,
9779 .tap = { 512 - 20, 4, 16 },
9780 }, 9665 },
9781}; 9666};
9782 9667
@@ -10111,9 +9996,6 @@ static const struct cipher_testvec tf_xts_tv_template[] = {
10111 "\xa4\x05\x0b\xb2\xb3\xa8\x30\x97" 9996 "\xa4\x05\x0b\xb2\xb3\xa8\x30\x97"
10112 "\x37\x30\xe1\x91\x8d\xb3\x2a\xff", 9997 "\x37\x30\xe1\x91\x8d\xb3\x2a\xff",
10113 .len = 512, 9998 .len = 512,
10114 .also_non_np = 1,
10115 .np = 3,
10116 .tap = { 512 - 20, 4, 16 },
10117 }, 9999 },
10118}; 10000};
10119 10001
@@ -10286,9 +10168,6 @@ static const struct cipher_testvec serpent_tv_template[] = {
10286 "\x75\x55\x9B\xFF\x36\x73\xAB\x7C" 10168 "\x75\x55\x9B\xFF\x36\x73\xAB\x7C"
10287 "\xF4\x46\x2E\xEB\xAC\xF3\xD2\xB7", 10169 "\xF4\x46\x2E\xEB\xAC\xF3\xD2\xB7",
10288 .len = 496, 10170 .len = 496,
10289 .also_non_np = 1,
10290 .np = 3,
10291 .tap = { 496 - 20, 4, 16 },
10292 }, 10171 },
10293}; 10172};
10294 10173
@@ -10505,9 +10384,6 @@ static const struct cipher_testvec serpent_cbc_tv_template[] = {
10505 "\xFC\x66\xAA\x37\xF2\x37\x39\x6B" 10384 "\xFC\x66\xAA\x37\xF2\x37\x39\x6B"
10506 "\xBC\x08\x3A\xA2\x29\xB3\xDF\xD1", 10385 "\xBC\x08\x3A\xA2\x29\xB3\xDF\xD1",
10507 .len = 496, 10386 .len = 496,
10508 .also_non_np = 1,
10509 .np = 3,
10510 .tap = { 496 - 20, 4, 16 },
10511 }, 10387 },
10512}; 10388};
10513 10389
@@ -10780,9 +10656,6 @@ static const struct cipher_testvec serpent_ctr_tv_template[] = {
10780 "\x40\x53\x77\x8C\x15\xF8\x8D\x13" 10656 "\x40\x53\x77\x8C\x15\xF8\x8D\x13"
10781 "\x38\xE2\xE5", 10657 "\x38\xE2\xE5",
10782 .len = 499, 10658 .len = 499,
10783 .also_non_np = 1,
10784 .np = 2,
10785 .tap = { 499 - 16, 16 },
10786 }, { /* Generated with Crypto++ */ 10659 }, { /* Generated with Crypto++ */
10787 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" 10660 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
10788 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" 10661 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
@@ -11157,9 +11030,6 @@ static const struct cipher_testvec serpent_lrw_tv_template[] = {
11157 "\x5c\xc6\x84\xfe\x7c\xcb\x26\xfd" 11030 "\x5c\xc6\x84\xfe\x7c\xcb\x26\xfd"
11158 "\xd9\x51\x0f\xd7\x94\x2f\xc5\xa7", 11031 "\xd9\x51\x0f\xd7\x94\x2f\xc5\xa7",
11159 .len = 512, 11032 .len = 512,
11160 .also_non_np = 1,
11161 .np = 3,
11162 .tap = { 512 - 20, 4, 16 },
11163 }, 11033 },
11164}; 11034};
11165 11035
@@ -11494,9 +11364,6 @@ static const struct cipher_testvec serpent_xts_tv_template[] = {
11494 "\xaf\x43\x0b\xc5\x20\x41\x92\x20" 11364 "\xaf\x43\x0b\xc5\x20\x41\x92\x20"
11495 "\xd4\xa0\x91\x98\x11\x5f\x4d\xb1", 11365 "\xd4\xa0\x91\x98\x11\x5f\x4d\xb1",
11496 .len = 512, 11366 .len = 512,
11497 .also_non_np = 1,
11498 .np = 3,
11499 .tap = { 512 - 20, 4, 16 },
11500 }, 11367 },
11501}; 11368};
11502 11369
@@ -11836,9 +11703,6 @@ static const struct cipher_testvec cast6_tv_template[] = {
11836 "\x84\x52\x6D\x68\xDE\xC6\x64\xB2" 11703 "\x84\x52\x6D\x68\xDE\xC6\x64\xB2"
11837 "\x11\x74\x93\x57\xB4\x7E\xC6\x00", 11704 "\x11\x74\x93\x57\xB4\x7E\xC6\x00",
11838 .len = 496, 11705 .len = 496,
11839 .also_non_np = 1,
11840 .np = 3,
11841 .tap = { 496 - 20, 4, 16 },
11842 }, 11706 },
11843}; 11707};
11844 11708
@@ -11976,9 +11840,6 @@ static const struct cipher_testvec cast6_cbc_tv_template[] = {
11976 "\x4D\x59\x7D\xC5\x28\x69\xFA\x92" 11840 "\x4D\x59\x7D\xC5\x28\x69\xFA\x92"
11977 "\x22\x46\x89\x2D\x0F\x2B\x08\x24", 11841 "\x22\x46\x89\x2D\x0F\x2B\x08\x24",
11978 .len = 496, 11842 .len = 496,
11979 .also_non_np = 1,
11980 .np = 3,
11981 .tap = { 496 - 20, 4, 16 },
11982 }, 11843 },
11983}; 11844};
11984 11845
@@ -12131,9 +11992,6 @@ static const struct cipher_testvec cast6_ctr_tv_template[] = {
12131 "\x0E\x74\x33\x30\x62\xB9\x89\xDF" 11992 "\x0E\x74\x33\x30\x62\xB9\x89\xDF"
12132 "\xF9\xC5\xDD\x27\xB3\x39\xCB\xCB", 11993 "\xF9\xC5\xDD\x27\xB3\x39\xCB\xCB",
12133 .len = 496, 11994 .len = 496,
12134 .also_non_np = 1,
12135 .np = 3,
12136 .tap = { 496 - 20, 4, 16 },
12137 }, 11995 },
12138}; 11996};
12139 11997
@@ -12277,9 +12135,6 @@ static const struct cipher_testvec cast6_lrw_tv_template[] = {
12277 "\x8D\xD9\xCD\x3B\x22\x67\x18\xC7" 12135 "\x8D\xD9\xCD\x3B\x22\x67\x18\xC7"
12278 "\xC4\xF5\x99\x61\xBC\xBB\x5B\x46", 12136 "\xC4\xF5\x99\x61\xBC\xBB\x5B\x46",
12279 .len = 512, 12137 .len = 512,
12280 .also_non_np = 1,
12281 .np = 3,
12282 .tap = { 512 - 20, 4, 16 },
12283 }, 12138 },
12284}; 12139};
12285 12140
@@ -12425,9 +12280,6 @@ static const struct cipher_testvec cast6_xts_tv_template[] = {
12425 "\xA1\xAC\xE8\xCF\xC6\x74\xCF\xDC" 12280 "\xA1\xAC\xE8\xCF\xC6\x74\xCF\xDC"
12426 "\x22\x60\x4E\xE8\xA4\x5D\x85\xB9", 12281 "\x22\x60\x4E\xE8\xA4\x5D\x85\xB9",
12427 .len = 512, 12282 .len = 512,
12428 .also_non_np = 1,
12429 .np = 3,
12430 .tap = { 512 - 20, 4, 16 },
12431 }, 12283 },
12432}; 12284};
12433 12285
@@ -12596,9 +12448,6 @@ static const struct cipher_testvec aes_tv_template[] = {
12596 "\x09\x79\xA0\x43\x5C\x0D\x08\x58" 12448 "\x09\x79\xA0\x43\x5C\x0D\x08\x58"
12597 "\x17\xBB\xC0\x6B\x62\x3F\x56\xE9", 12449 "\x17\xBB\xC0\x6B\x62\x3F\x56\xE9",
12598 .len = 496, 12450 .len = 496,
12599 .also_non_np = 1,
12600 .np = 3,
12601 .tap = { 496 - 20, 4, 16 },
12602 }, 12451 },
12603}; 12452};
12604 12453
@@ -12613,9 +12462,6 @@ static const struct cipher_testvec aes_cbc_tv_template[] = {
12613 .ctext = "\xe3\x53\x77\x9c\x10\x79\xae\xb8" 12462 .ctext = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
12614 "\x27\x08\x94\x2d\xbe\x77\x18\x1a", 12463 "\x27\x08\x94\x2d\xbe\x77\x18\x1a",
12615 .len = 16, 12464 .len = 16,
12616 .also_non_np = 1,
12617 .np = 8,
12618 .tap = { 3, 2, 3, 2, 3, 1, 1, 1 },
12619 }, { 12465 }, {
12620 .key = "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0" 12466 .key = "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
12621 "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a", 12467 "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
@@ -12813,9 +12659,6 @@ static const struct cipher_testvec aes_cbc_tv_template[] = {
12813 "\xE0\x1F\x91\xF8\x82\x96\x2D\x65" 12659 "\xE0\x1F\x91\xF8\x82\x96\x2D\x65"
12814 "\xA3\xAA\x13\xCC\x50\xFF\x7B\x02", 12660 "\xA3\xAA\x13\xCC\x50\xFF\x7B\x02",
12815 .len = 496, 12661 .len = 496,
12816 .also_non_np = 1,
12817 .np = 3,
12818 .tap = { 496 - 20, 4, 16 },
12819 }, 12662 },
12820}; 12663};
12821 12664
@@ -12892,9 +12735,6 @@ static const struct cipher_testvec aes_cfb_tv_template[] = {
12892 "\x75\xa3\x85\x74\x1a\xb9\xce\xf8" 12735 "\x75\xa3\x85\x74\x1a\xb9\xce\xf8"
12893 "\x20\x31\x62\x3d\x55\xb1\xe4\x71", 12736 "\x20\x31\x62\x3d\x55\xb1\xe4\x71",
12894 .len = 64, 12737 .len = 64,
12895 .also_non_np = 1,
12896 .np = 2,
12897 .tap = { 31, 33 },
12898 }, { /* > 16 bytes, not a multiple of 16 bytes */ 12738 }, { /* > 16 bytes, not a multiple of 16 bytes */
12899 .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6" 12739 .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6"
12900 "\xab\xf7\x15\x88\x09\xcf\x4f\x3c", 12740 "\xab\xf7\x15\x88\x09\xcf\x4f\x3c",
@@ -14795,9 +14635,6 @@ static const struct cipher_testvec aes_lrw_tv_template[] = {
14795 "\xcd\x7e\x2b\x5d\x43\xea\x42\xe7" 14635 "\xcd\x7e\x2b\x5d\x43\xea\x42\xe7"
14796 "\x74\x3f\x7d\x58\x88\x75\xde\x3e", 14636 "\x74\x3f\x7d\x58\x88\x75\xde\x3e",
14797 .len = 512, 14637 .len = 512,
14798 .also_non_np = 1,
14799 .np = 3,
14800 .tap = { 512 - 20, 4, 16 },
14801 } 14638 }
14802}; 14639};
14803 14640
@@ -15133,9 +14970,6 @@ static const struct cipher_testvec aes_xts_tv_template[] = {
15133 "\xc4\xf3\x6f\xfd\xa9\xfc\xea\x70" 14970 "\xc4\xf3\x6f\xfd\xa9\xfc\xea\x70"
15134 "\xb9\xc6\xe6\x93\xe1\x48\xc1\x51", 14971 "\xb9\xc6\xe6\x93\xe1\x48\xc1\x51",
15135 .len = 512, 14972 .len = 512,
15136 .also_non_np = 1,
15137 .np = 3,
15138 .tap = { 512 - 20, 4, 16 },
15139 } 14973 }
15140}; 14974};
15141 14975
@@ -15345,9 +15179,6 @@ static const struct cipher_testvec aes_ctr_tv_template[] = {
15345 "\xFA\x3A\x05\x4C\xFA\xD1\xFF\xFE" 15179 "\xFA\x3A\x05\x4C\xFA\xD1\xFF\xFE"
15346 "\xF1\x4C\xE5\xB2\x91\x64\x0C\x51", 15180 "\xF1\x4C\xE5\xB2\x91\x64\x0C\x51",
15347 .len = 496, 15181 .len = 496,
15348 .also_non_np = 1,
15349 .np = 3,
15350 .tap = { 496 - 20, 4, 16 },
15351 }, { /* Generated with Crypto++ */ 15182 }, { /* Generated with Crypto++ */
15352 .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" 15183 .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55"
15353 "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" 15184 "\x0F\x32\x55\x78\x9B\xBE\x78\x9B"
@@ -15483,9 +15314,6 @@ static const struct cipher_testvec aes_ctr_tv_template[] = {
15483 "\xD8\xFE\xC9\x5B\x5C\x25\xE5\x76" 15314 "\xD8\xFE\xC9\x5B\x5C\x25\xE5\x76"
15484 "\xFB\xF2\x3F", 15315 "\xFB\xF2\x3F",
15485 .len = 499, 15316 .len = 499,
15486 .also_non_np = 1,
15487 .np = 2,
15488 .tap = { 499 - 16, 16 },
15489 }, 15317 },
15490}; 15318};
15491 15319
@@ -16609,8 +16437,6 @@ static const struct cipher_testvec aes_ctr_rfc3686_tv_template[] = {
16609 "\x4b\xef\x31\x18\xea\xac\xb1\x84" 16437 "\x4b\xef\x31\x18\xea\xac\xb1\x84"
16610 "\x21\xed\xda\x86", 16438 "\x21\xed\xda\x86",
16611 .len = 4100, 16439 .len = 4100,
16612 .np = 2,
16613 .tap = { 4064, 36 },
16614 }, 16440 },
16615}; 16441};
16616 16442
@@ -16638,9 +16464,6 @@ static const struct cipher_testvec aes_ofb_tv_template[] = {
16638 "\x30\x4c\x65\x28\xf6\x59\xc7\x78" 16464 "\x30\x4c\x65\x28\xf6\x59\xc7\x78"
16639 "\x66\xa5\x10\xd9\xc1\xd6\xae\x5e", 16465 "\x66\xa5\x10\xd9\xc1\xd6\xae\x5e",
16640 .len = 64, 16466 .len = 64,
16641 .also_non_np = 1,
16642 .np = 2,
16643 .tap = { 31, 33 },
16644 }, { /* > 16 bytes, not a multiple of 16 bytes */ 16467 }, { /* > 16 bytes, not a multiple of 16 bytes */
16645 .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6" 16468 .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6"
16646 "\xab\xf7\x15\x88\x09\xcf\x4f\x3c", 16469 "\xab\xf7\x15\x88\x09\xcf\x4f\x3c",
@@ -23174,9 +22997,6 @@ static const struct cipher_testvec cast5_tv_template[] = {
23174 "\x4F\xFE\x24\x9C\x9A\x02\xE5\x57" 22997 "\x4F\xFE\x24\x9C\x9A\x02\xE5\x57"
23175 "\xF5\xBC\x25\xD6\x02\x56\x57\x1C", 22998 "\xF5\xBC\x25\xD6\x02\x56\x57\x1C",
23176 .len = 496, 22999 .len = 496,
23177 .also_non_np = 1,
23178 .np = 3,
23179 .tap = { 496 - 20, 4, 16 },
23180 }, 23000 },
23181}; 23001};
23182 23002
@@ -23311,9 +23131,6 @@ static const struct cipher_testvec cast5_cbc_tv_template[] = {
23311 "\x15\x5F\xDB\xE9\xB1\x83\xD2\xE6" 23131 "\x15\x5F\xDB\xE9\xB1\x83\xD2\xE6"
23312 "\x1D\x18\x66\x44\x5B\x8F\x14\xEB", 23132 "\x1D\x18\x66\x44\x5B\x8F\x14\xEB",
23313 .len = 496, 23133 .len = 496,
23314 .also_non_np = 1,
23315 .np = 3,
23316 .tap = { 496 - 20, 4, 16 },
23317 }, 23134 },
23318}; 23135};
23319 23136
@@ -23460,9 +23277,6 @@ static const struct cipher_testvec cast5_ctr_tv_template[] = {
23460 "\x8C\x98\xDB\xDE\xFC\x72\x94\xAA" 23277 "\x8C\x98\xDB\xDE\xFC\x72\x94\xAA"
23461 "\xC0\x0D\x96\xAA\x23\xF8\xFE\x13", 23278 "\xC0\x0D\x96\xAA\x23\xF8\xFE\x13",
23462 .len = 496, 23279 .len = 496,
23463 .also_non_np = 1,
23464 .np = 3,
23465 .tap = { 496 - 20, 4, 16 },
23466 }, 23280 },
23467}; 23281};
23468 23282
@@ -23835,20 +23649,6 @@ static const struct cipher_testvec fcrypt_pcbc_tv_template[] = {
23835 "\x19\x89\x09\x1c\x2a\x8e\x8c\x94" 23649 "\x19\x89\x09\x1c\x2a\x8e\x8c\x94"
23836 "\xfc\xc7\x68\xe4\x88\xaa\xde\x0f", 23650 "\xfc\xc7\x68\xe4\x88\xaa\xde\x0f",
23837 .len = 48, 23651 .len = 48,
23838 }, { /* split-page version */
23839 .key = "\xfe\xdc\xba\x98\x76\x54\x32\x10",
23840 .klen = 8,
23841 .iv = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87",
23842 .ptext = "The quick brown fox jumps over the lazy dogs.\0\0",
23843 .ctext = "\xca\x90\xf5\x9d\xcb\xd4\xd2\x3c"
23844 "\x01\x88\x7f\x3e\x31\x6e\x62\x9d"
23845 "\xd8\xe0\x57\xa3\x06\x3a\x42\x58"
23846 "\x2a\x28\xfe\x72\x52\x2f\xdd\xe0"
23847 "\x19\x89\x09\x1c\x2a\x8e\x8c\x94"
23848 "\xfc\xc7\x68\xe4\x88\xaa\xde\x0f",
23849 .len = 48,
23850 .np = 2,
23851 .tap = { 20, 28 },
23852 } 23652 }
23853}; 23653};
23854 23654
@@ -24145,9 +23945,6 @@ static const struct cipher_testvec camellia_tv_template[] = {
24145 "\xF8\xB2\xAA\x7A\xD6\xFF\xFA\x55" 23945 "\xF8\xB2\xAA\x7A\xD6\xFF\xFA\x55"
24146 "\x33\x1A\xBB\xD3\xA2\x7E\x97\x66", 23946 "\x33\x1A\xBB\xD3\xA2\x7E\x97\x66",
24147 .len = 1008, 23947 .len = 1008,
24148 .also_non_np = 1,
24149 .np = 3,
24150 .tap = { 1008 - 20, 4, 16 },
24151 }, 23948 },
24152}; 23949};
24153 23950
@@ -24438,9 +24235,6 @@ static const struct cipher_testvec camellia_cbc_tv_template[] = {
24438 "\x55\x01\xD4\x58\xB2\xF2\x85\x49" 24235 "\x55\x01\xD4\x58\xB2\xF2\x85\x49"
24439 "\x70\xC5\xB9\x0B\x3B\x7A\x6E\x6C", 24236 "\x70\xC5\xB9\x0B\x3B\x7A\x6E\x6C",
24440 .len = 1008, 24237 .len = 1008,
24441 .also_non_np = 1,
24442 .np = 3,
24443 .tap = { 1008 - 20, 4, 16 },
24444 }, 24238 },
24445}; 24239};
24446 24240
@@ -24841,9 +24635,6 @@ static const struct cipher_testvec camellia_ctr_tv_template[] = {
24841 "\xE7\x2C\x49\x08\x8B\x72\xFA\x5C" 24635 "\xE7\x2C\x49\x08\x8B\x72\xFA\x5C"
24842 "\xF1\x6B\xD9", 24636 "\xF1\x6B\xD9",
24843 .len = 1011, 24637 .len = 1011,
24844 .also_non_np = 1,
24845 .np = 2,
24846 .tap = { 1011 - 16, 16 },
24847 }, { /* Generated with Crypto++ */ 24638 }, { /* Generated with Crypto++ */
24848 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" 24639 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
24849 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" 24640 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
@@ -25346,9 +25137,6 @@ static const struct cipher_testvec camellia_lrw_tv_template[] = {
25346 "\xb2\x1a\xd8\x4c\xbd\x1d\x10\xe9" 25137 "\xb2\x1a\xd8\x4c\xbd\x1d\x10\xe9"
25347 "\x5a\xa8\x92\x7f\xba\xe6\x0c\x95", 25138 "\x5a\xa8\x92\x7f\xba\xe6\x0c\x95",
25348 .len = 512, 25139 .len = 512,
25349 .also_non_np = 1,
25350 .np = 3,
25351 .tap = { 512 - 20, 4, 16 },
25352 }, 25140 },
25353}; 25141};
25354 25142
@@ -25683,9 +25471,6 @@ static const struct cipher_testvec camellia_xts_tv_template[] = {
25683 "\xb7\x16\xd8\x12\x5c\xcd\x7d\x4e" 25471 "\xb7\x16\xd8\x12\x5c\xcd\x7d\x4e"
25684 "\xd5\xc6\x99\xcc\x4e\x6c\x94\x95", 25472 "\xd5\xc6\x99\xcc\x4e\x6c\x94\x95",
25685 .len = 512, 25473 .len = 512,
25686 .also_non_np = 1,
25687 .np = 3,
25688 .tap = { 512 - 20, 4, 16 },
25689 }, 25474 },
25690}; 25475};
25691 25476
@@ -26889,8 +26674,6 @@ static const struct cipher_testvec salsa20_stream_tv_template[] = {
26889 "\x87\x13\xc6\x5b\x59\x8d\xf2\xc8" 26674 "\x87\x13\xc6\x5b\x59\x8d\xf2\xc8"
26890 "\xaf\xdf\x11\x95", 26675 "\xaf\xdf\x11\x95",
26891 .len = 4100, 26676 .len = 4100,
26892 .np = 2,
26893 .tap = { 4064, 36 },
26894 }, 26677 },
26895}; 26678};
26896 26679
@@ -27023,9 +26806,6 @@ static const struct cipher_testvec chacha20_tv_template[] = {
27023 "\x5b\x86\x2f\x37\x30\xe3\x7c\xfd" 26806 "\x5b\x86\x2f\x37\x30\xe3\x7c\xfd"
27024 "\xc4\xfd\x80\x6c\x22\xf2\x21", 26807 "\xc4\xfd\x80\x6c\x22\xf2\x21",
27025 .len = 375, 26808 .len = 375,
27026 .also_non_np = 1,
27027 .np = 3,
27028 .tap = { 375 - 20, 4, 16 },
27029 26809
27030 }, { /* RFC7539 A.2. Test Vector #3 */ 26810 }, { /* RFC7539 A.2. Test Vector #3 */
27031 .key = "\x1c\x92\x40\xa5\xeb\x55\xd3\x8a" 26811 .key = "\x1c\x92\x40\xa5\xeb\x55\xd3\x8a"
@@ -27399,9 +27179,6 @@ static const struct cipher_testvec chacha20_tv_template[] = {
27399 "\xa1\xed\xad\xd5\x76\xfa\x24\x8f" 27179 "\xa1\xed\xad\xd5\x76\xfa\x24\x8f"
27400 "\x98", 27180 "\x98",
27401 .len = 1281, 27181 .len = 1281,
27402 .also_non_np = 1,
27403 .np = 3,
27404 .tap = { 1200, 1, 80 },
27405 }, 27182 },
27406}; 27183};
27407 27184
@@ -27594,9 +27371,6 @@ static const struct cipher_testvec xchacha20_tv_template[] = {
27594 "\xab\xff\x1f\x12\xc3\xee\xe5\x65" 27371 "\xab\xff\x1f\x12\xc3\xee\xe5\x65"
27595 "\x12\x8d\x7b\x61\xe5\x1f\x98", 27372 "\x12\x8d\x7b\x61\xe5\x1f\x98",
27596 .len = 375, 27373 .len = 375,
27597 .also_non_np = 1,
27598 .np = 3,
27599 .tap = { 375 - 20, 4, 16 },
27600 27374
27601 }, { /* Derived from a ChaCha20 test vector, via the process above */ 27375 }, { /* Derived from a ChaCha20 test vector, via the process above */
27602 .key = "\x1c\x92\x40\xa5\xeb\x55\xd3\x8a" 27376 .key = "\x1c\x92\x40\xa5\xeb\x55\xd3\x8a"
@@ -27974,9 +27748,6 @@ static const struct cipher_testvec xchacha20_tv_template[] = {
27974 "\xba\xd0\x34\xc9\x2d\x91\xc5\x17" 27748 "\xba\xd0\x34\xc9\x2d\x91\xc5\x17"
27975 "\x11", 27749 "\x11",
27976 .len = 1281, 27750 .len = 1281,
27977 .also_non_np = 1,
27978 .np = 3,
27979 .tap = { 1200, 1, 80 },
27980 }, { /* test vector from https://tools.ietf.org/html/draft-arciszewski-xchacha-02#appendix-A.3.2 */ 27751 }, { /* test vector from https://tools.ietf.org/html/draft-arciszewski-xchacha-02#appendix-A.3.2 */
27981 .key = "\x80\x81\x82\x83\x84\x85\x86\x87" 27752 .key = "\x80\x81\x82\x83\x84\x85\x86\x87"
27982 "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" 27753 "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
@@ -28259,9 +28030,6 @@ static const struct cipher_testvec xchacha12_tv_template[] = {
28259 "\xda\x4e\xc9\xab\x9b\x8a\x7b", 28030 "\xda\x4e\xc9\xab\x9b\x8a\x7b",
28260 28031
28261 .len = 375, 28032 .len = 375,
28262 .also_non_np = 1,
28263 .np = 3,
28264 .tap = { 375 - 20, 4, 16 },
28265 28033
28266 }, { 28034 }, {
28267 .key = "\x1c\x92\x40\xa5\xeb\x55\xd3\x8a" 28035 .key = "\x1c\x92\x40\xa5\xeb\x55\xd3\x8a"
@@ -28639,9 +28407,6 @@ static const struct cipher_testvec xchacha12_tv_template[] = {
28639 "\xf0\xfc\x5e\x1c\xf1\xf5\xf9\xf3" 28407 "\xf0\xfc\x5e\x1c\xf1\xf5\xf9\xf3"
28640 "\x5b", 28408 "\x5b",
28641 .len = 1281, 28409 .len = 1281,
28642 .also_non_np = 1,
28643 .np = 3,
28644 .tap = { 1200, 1, 80 },
28645 }, { 28410 }, {
28646 .key = "\x80\x81\x82\x83\x84\x85\x86\x87" 28411 .key = "\x80\x81\x82\x83\x84\x85\x86\x87"
28647 "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" 28412 "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
@@ -28749,9 +28514,6 @@ static const struct cipher_testvec adiantum_xchacha12_aes_tv_template[] = {
28749 .ctext = "\x6d\x32\x86\x18\x67\x86\x0f\x3f" 28514 .ctext = "\x6d\x32\x86\x18\x67\x86\x0f\x3f"
28750 "\x96\x7c\x9d\x28\x0d\x53\xec\x9f", 28515 "\x96\x7c\x9d\x28\x0d\x53\xec\x9f",
28751 .len = 16, 28516 .len = 16,
28752 .also_non_np = 1,
28753 .np = 2,
28754 .tap = { 14, 2 },
28755 }, { 28517 }, {
28756 .key = "\x36\x2b\x57\x97\xf8\x5d\xcd\x99" 28518 .key = "\x36\x2b\x57\x97\xf8\x5d\xcd\x99"
28757 "\x5f\x1a\x5a\x44\x1d\x92\x0f\x27" 28519 "\x5f\x1a\x5a\x44\x1d\x92\x0f\x27"
@@ -28814,9 +28576,6 @@ static const struct cipher_testvec adiantum_xchacha12_aes_tv_template[] = {
28814 "\x74\xa6\xaa\xa3\xac\xdc\xc2\xf5" 28576 "\x74\xa6\xaa\xa3\xac\xdc\xc2\xf5"
28815 "\x8d\xde\x34\x86\x78\x60\x75\x8d", 28577 "\x8d\xde\x34\x86\x78\x60\x75\x8d",
28816 .len = 128, 28578 .len = 128,
28817 .also_non_np = 1,
28818 .np = 4,
28819 .tap = { 104, 16, 4, 4 },
28820 }, { 28579 }, {
28821 .key = "\xd3\x81\x72\x18\x23\xff\x6f\x4a" 28580 .key = "\xd3\x81\x72\x18\x23\xff\x6f\x4a"
28822 "\x25\x74\x29\x0d\x51\x8a\x0e\x13" 28581 "\x25\x74\x29\x0d\x51\x8a\x0e\x13"
@@ -28956,9 +28715,6 @@ static const struct cipher_testvec adiantum_xchacha12_aes_tv_template[] = {
28956 "\x21\xb0\x21\x52\xba\xa7\x37\xaa" 28715 "\x21\xb0\x21\x52\xba\xa7\x37\xaa"
28957 "\xcc\xbf\x95\xa8\xf4\xd0\x91\xf6", 28716 "\xcc\xbf\x95\xa8\xf4\xd0\x91\xf6",
28958 .len = 512, 28717 .len = 512,
28959 .also_non_np = 1,
28960 .np = 2,
28961 .tap = { 144, 368 },
28962 } 28718 }
28963}; 28719};
28964 28720
@@ -28980,9 +28736,6 @@ static const struct cipher_testvec adiantum_xchacha20_aes_tv_template[] = {
28980 .ctext = "\xf6\x78\x97\xd6\xaa\x94\x01\x27" 28736 .ctext = "\xf6\x78\x97\xd6\xaa\x94\x01\x27"
28981 "\x2e\x4d\x83\xe0\x6e\x64\x9a\xdf", 28737 "\x2e\x4d\x83\xe0\x6e\x64\x9a\xdf",
28982 .len = 16, 28738 .len = 16,
28983 .also_non_np = 1,
28984 .np = 3,
28985 .tap = { 5, 2, 9 },
28986 }, { 28739 }, {
28987 .key = "\x36\x2b\x57\x97\xf8\x5d\xcd\x99" 28740 .key = "\x36\x2b\x57\x97\xf8\x5d\xcd\x99"
28988 "\x5f\x1a\x5a\x44\x1d\x92\x0f\x27" 28741 "\x5f\x1a\x5a\x44\x1d\x92\x0f\x27"
@@ -29002,9 +28755,6 @@ static const struct cipher_testvec adiantum_xchacha20_aes_tv_template[] = {
29002 "\x57\x72\xb5\xfd\xb5\x5d\xb8\x28" 28755 "\x57\x72\xb5\xfd\xb5\x5d\xb8\x28"
29003 "\x0c\x04\x91\x14\x91\xe9\x37", 28756 "\x0c\x04\x91\x14\x91\xe9\x37",
29004 .len = 31, 28757 .len = 31,
29005 .also_non_np = 1,
29006 .np = 2,
29007 .tap = { 16, 15 },
29008 }, { 28758 }, {
29009 .key = "\xa5\x28\x24\x34\x1a\x3c\xd8\xf7" 28759 .key = "\xa5\x28\x24\x34\x1a\x3c\xd8\xf7"
29010 "\x05\x91\x8f\xee\x85\x1f\x35\x7f" 28760 "\x05\x91\x8f\xee\x85\x1f\x35\x7f"
@@ -29048,9 +28798,6 @@ static const struct cipher_testvec adiantum_xchacha20_aes_tv_template[] = {
29048 "\x29\x62\x0d\xb2\xf6\x3c\x58\x57" 28798 "\x29\x62\x0d\xb2\xf6\x3c\x58\x57"
29049 "\xc1\xd5\x5a\xbb\xd6\xa6\x2a\xe5", 28799 "\xc1\xd5\x5a\xbb\xd6\xa6\x2a\xe5",
29050 .len = 128, 28800 .len = 128,
29051 .also_non_np = 1,
29052 .np = 4,
29053 .tap = { 112, 7, 8, 1 },
29054 }, { 28801 }, {
29055 .key = "\xd3\x81\x72\x18\x23\xff\x6f\x4a" 28802 .key = "\xd3\x81\x72\x18\x23\xff\x6f\x4a"
29056 "\x25\x74\x29\x0d\x51\x8a\x0e\x13" 28803 "\x25\x74\x29\x0d\x51\x8a\x0e\x13"