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.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6

Pull crypto fixes from Herbert Xu:
"This removes IPsec ESN support from the talitos/caam drivers since
they were implemented incorrectly, causing interoperability problems
if ESN is used with them."

* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
Revert "crypto: caam - add IPsec ESN support"
Revert "crypto: talitos - add IPsec ESN support"

+4 -54
+2 -25
drivers/crypto/caam/caamalg.c
··· 1650 1650 }; 1651 1651 1652 1652 static struct caam_alg_template driver_algs[] = { 1653 - /* 1654 - * single-pass ipsec_esp descriptor 1655 - * authencesn(*,*) is also registered, although not present 1656 - * explicitly here. 1657 - */ 1653 + /* single-pass ipsec_esp descriptor */ 1658 1654 { 1659 1655 .name = "authenc(hmac(md5),cbc(aes))", 1660 1656 .driver_name = "authenc-hmac-md5-cbc-aes-caam", ··· 2213 2217 for (i = 0; i < ARRAY_SIZE(driver_algs); i++) { 2214 2218 /* TODO: check if h/w supports alg */ 2215 2219 struct caam_crypto_alg *t_alg; 2216 - bool done = false; 2217 2220 2218 - authencesn: 2219 2221 t_alg = caam_alg_alloc(ctrldev, &driver_algs[i]); 2220 2222 if (IS_ERR(t_alg)) { 2221 2223 err = PTR_ERR(t_alg); ··· 2227 2233 dev_warn(ctrldev, "%s alg registration failed\n", 2228 2234 t_alg->crypto_alg.cra_driver_name); 2229 2235 kfree(t_alg); 2230 - } else { 2236 + } else 2231 2237 list_add_tail(&t_alg->entry, &priv->alg_list); 2232 - if (driver_algs[i].type == CRYPTO_ALG_TYPE_AEAD && 2233 - !memcmp(driver_algs[i].name, "authenc", 7) && 2234 - !done) { 2235 - char *name; 2236 - 2237 - name = driver_algs[i].name; 2238 - memmove(name + 10, name + 7, strlen(name) - 7); 2239 - memcpy(name + 7, "esn", 3); 2240 - 2241 - name = driver_algs[i].driver_name; 2242 - memmove(name + 10, name + 7, strlen(name) - 7); 2243 - memcpy(name + 7, "esn", 3); 2244 - 2245 - done = true; 2246 - goto authencesn; 2247 - } 2248 - } 2249 2238 } 2250 2239 if (!list_empty(&priv->alg_list)) 2251 2240 dev_info(ctrldev, "%s algorithms registered in /proc/crypto\n",
-1
drivers/crypto/caam/compat.h
··· 23 23 #include <linux/types.h> 24 24 #include <linux/debugfs.h> 25 25 #include <linux/circ_buf.h> 26 - #include <linux/string.h> 27 26 #include <net/xfrm.h> 28 27 29 28 #include <crypto/algapi.h>
+2 -28
drivers/crypto/talitos.c
··· 38 38 #include <linux/spinlock.h> 39 39 #include <linux/rtnetlink.h> 40 40 #include <linux/slab.h> 41 - #include <linux/string.h> 42 41 43 42 #include <crypto/algapi.h> 44 43 #include <crypto/aes.h> ··· 1973 1974 }; 1974 1975 1975 1976 static struct talitos_alg_template driver_algs[] = { 1976 - /* 1977 - * AEAD algorithms. These use a single-pass ipsec_esp descriptor. 1978 - * authencesn(*,*) is also registered, although not present 1979 - * explicitly here. 1980 - */ 1977 + /* AEAD algorithms. These use a single-pass ipsec_esp descriptor */ 1981 1978 { .type = CRYPTO_ALG_TYPE_AEAD, 1982 1979 .alg.crypto = { 1983 1980 .cra_name = "authenc(hmac(sha1),cbc(aes))", ··· 2815 2820 if (hw_supports(dev, driver_algs[i].desc_hdr_template)) { 2816 2821 struct talitos_crypto_alg *t_alg; 2817 2822 char *name = NULL; 2818 - bool authenc = false; 2819 2823 2820 - authencesn: 2821 2824 t_alg = talitos_alg_alloc(dev, &driver_algs[i]); 2822 2825 if (IS_ERR(t_alg)) { 2823 2826 err = PTR_ERR(t_alg); ··· 2830 2837 err = crypto_register_alg( 2831 2838 &t_alg->algt.alg.crypto); 2832 2839 name = t_alg->algt.alg.crypto.cra_driver_name; 2833 - authenc = authenc ? !authenc : 2834 - !(bool)memcmp(name, "authenc", 7); 2835 2840 break; 2836 2841 case CRYPTO_ALG_TYPE_AHASH: 2837 2842 err = crypto_register_ahash( ··· 2842 2851 dev_err(dev, "%s alg registration failed\n", 2843 2852 name); 2844 2853 kfree(t_alg); 2845 - } else { 2854 + } else 2846 2855 list_add_tail(&t_alg->entry, &priv->alg_list); 2847 - if (authenc) { 2848 - struct crypto_alg *alg = 2849 - &driver_algs[i].alg.crypto; 2850 - 2851 - name = alg->cra_name; 2852 - memmove(name + 10, name + 7, 2853 - strlen(name) - 7); 2854 - memcpy(name + 7, "esn", 3); 2855 - 2856 - name = alg->cra_driver_name; 2857 - memmove(name + 10, name + 7, 2858 - strlen(name) - 7); 2859 - memcpy(name + 7, "esn", 3); 2860 - 2861 - goto authencesn; 2862 - } 2863 - } 2864 2856 } 2865 2857 } 2866 2858 if (!list_empty(&priv->alg_list))