diff options
Diffstat (limited to 'net-wireless/ieee80211')
-rw-r--r-- | net-wireless/ieee80211/ChangeLog | 7 | ||||
-rw-r--r-- | net-wireless/ieee80211/Manifest | 26 | ||||
-rw-r--r-- | net-wireless/ieee80211/files/ieee80211-1.1.13-tkip.patch | 188 | ||||
-rw-r--r-- | net-wireless/ieee80211/ieee80211-1.1.13-r1.ebuild | 8 |
4 files changed, 213 insertions, 16 deletions
diff --git a/net-wireless/ieee80211/ChangeLog b/net-wireless/ieee80211/ChangeLog index 35026a06c5aa..910933fa0fee 100644 --- a/net-wireless/ieee80211/ChangeLog +++ b/net-wireless/ieee80211/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for net-wireless/ieee80211 # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ChangeLog,v 1.39 2006/09/13 12:32:02 phreak Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ChangeLog,v 1.40 2006/10/13 12:22:10 phreak Exp $ + + 13 Oct 2006; Christian Heim <phreak@gentoo.org> + +files/ieee80211-1.1.13-tkip.patch, ieee80211-1.1.13-r1.ebuild: + Fixing ieee80211-1.1.13 for SMP-systems (see #150752 for reference). Thanks + to Simon Koenig for reporting the issue and pointing me to the patch. *ieee80211-1.2.15 (13 Sep 2006) diff --git a/net-wireless/ieee80211/Manifest b/net-wireless/ieee80211/Manifest index 050fe16f4002..0115d288ad0d 100644 --- a/net-wireless/ieee80211/Manifest +++ b/net-wireless/ieee80211/Manifest @@ -5,6 +5,10 @@ AUX ieee80211-1.1.13-cflags.patch 1184 RMD160 ee477fc15c98048fd17ecc6982175e7e03 MD5 4f7fd86211611d66908e597267f2578f files/ieee80211-1.1.13-cflags.patch 1184 RMD160 ee477fc15c98048fd17ecc6982175e7e03edaa37 files/ieee80211-1.1.13-cflags.patch 1184 SHA256 45ac2892b2c17b68bfaa03dfda77954a260a18a05d9dc64a1e2ab57811e0d276 files/ieee80211-1.1.13-cflags.patch 1184 +AUX ieee80211-1.1.13-tkip.patch 6154 RMD160 9f368a19ab179e574729d381129800beade0b3f6 SHA1 b325d3fca854923c99bfa8a8dd4714879a634603 SHA256 a182e1beb805c506868002c9efd6d0a5a44779c7542d7d19d9b21503b13f5e16 +MD5 733be1adf0bd4b65e27769af5b40e79e files/ieee80211-1.1.13-tkip.patch 6154 +RMD160 9f368a19ab179e574729d381129800beade0b3f6 files/ieee80211-1.1.13-tkip.patch 6154 +SHA256 a182e1beb805c506868002c9efd6d0a5a44779c7542d7d19d9b21503b13f5e16 files/ieee80211-1.1.13-tkip.patch 6154 AUX ieee80211-1.1.14-smp-disconnect.patch 6206 RMD160 380cb6fb04d90b0e8cf31679e1a3a65c418f3d9f SHA1 db4e4bb54b51c5c08d3053bfbc0f68b9b30afa24 SHA256 210525f05e415b25e79ddba20bf5cc8c3ef4854f46f7650b02f27fe0eef64f9f MD5 9a7a3438179e0997bfdb71ab71689675 files/ieee80211-1.1.14-smp-disconnect.patch 6206 RMD160 380cb6fb04d90b0e8cf31679e1a3a65c418f3d9f files/ieee80211-1.1.14-smp-disconnect.patch 6206 @@ -16,10 +20,10 @@ SHA256 2ff1047385787a6b4c7ceff3d4ca9ad13fbcaca1280f7f60e4414928a86e0c76 files/re DIST ieee80211-1.1.13.tgz 67289 RMD160 adf594006278adc51de6e61124a99b05cfec4d08 SHA1 76c9e0c7233aacdacfc0b663dbe8d2d665b14310 SHA256 b22ce1bd9f4e3638e6b516e55e35f29103eb4ada814a6d401555957beced8afa DIST ieee80211-1.1.14.tgz 67848 RMD160 6ddf9b4a682d01317242d8117c3263cdcc81d541 SHA1 bf171feb64e8ca3e662f8c9320886c32b5a6bed1 SHA256 77058469b94de08313f06cb5452ce9c4f2c5dce2f3e4b82228fe5aa1d3972cd0 DIST ieee80211-1.2.15.tgz 68832 RMD160 514e54eb8477a2187deb05ef212c23c5ce7094ad SHA1 a54e66ae96f66bd0d58e29431a60f5f63a6453db SHA256 89fa1c610ac7b6db3c4b6b79c220334a65f85b4011429ce3631094d268ae5668 -EBUILD ieee80211-1.1.13-r1.ebuild 2982 RMD160 80ad2b1c8c4f115363aa8baa09d689c6954abe69 SHA1 ea7554078927c88413115a14171d2ca89d87d706 SHA256 aa87fd7190568d6cf96a8c6245072856a14fe1c5bbff837064193e583cfebd97 -MD5 5144709418ed40b1e0cd64e5417ab663 ieee80211-1.1.13-r1.ebuild 2982 -RMD160 80ad2b1c8c4f115363aa8baa09d689c6954abe69 ieee80211-1.1.13-r1.ebuild 2982 -SHA256 aa87fd7190568d6cf96a8c6245072856a14fe1c5bbff837064193e583cfebd97 ieee80211-1.1.13-r1.ebuild 2982 +EBUILD ieee80211-1.1.13-r1.ebuild 2985 RMD160 e03e34949981345d62eb654d3ea07b2f44d15f50 SHA1 85e2938a9da80f85a709961131f16919314423bb SHA256 52246bbb05e0c702ec545a69bd05f83b276b03991c29350171f6342240ff52f7 +MD5 735a17ed82994f5d3b42334b6509606e ieee80211-1.1.13-r1.ebuild 2985 +RMD160 e03e34949981345d62eb654d3ea07b2f44d15f50 ieee80211-1.1.13-r1.ebuild 2985 +SHA256 52246bbb05e0c702ec545a69bd05f83b276b03991c29350171f6342240ff52f7 ieee80211-1.1.13-r1.ebuild 2985 EBUILD ieee80211-1.1.14-r1.ebuild 2999 RMD160 f9becd32d9f69b05733a4490f4f665c599747564 SHA1 7b4ec6b471cc048ef867cea251db4a8361d05760 SHA256 7c23863f271aa5ae20be4d6dbec9df8e934d08ccfa66d7e2830284f1aa6f67b1 MD5 5e0154b79c5530b0499133ff8166873a ieee80211-1.1.14-r1.ebuild 2999 RMD160 f9becd32d9f69b05733a4490f4f665c599747564 ieee80211-1.1.14-r1.ebuild 2999 @@ -32,10 +36,10 @@ EBUILD ieee80211-1.2.15.ebuild 2948 RMD160 c5cbb47b9cfbf6927ef96feef92f2ec094465 MD5 f43bb92136b5ed7a8e27682cf9feb14c ieee80211-1.2.15.ebuild 2948 RMD160 c5cbb47b9cfbf6927ef96feef92f2ec094465774 ieee80211-1.2.15.ebuild 2948 SHA256 d500bd34f968ae9caff92bd730785b73721914afbf229fef1c52a8982d916c47 ieee80211-1.2.15.ebuild 2948 -MISC ChangeLog 7595 RMD160 43aa0b879d3009d6d6f261f9bdf79d23ac5c5b98 SHA1 b5dceeab64220dbef7b0736d80bfcfe4483b924b SHA256 6ee2aaabfb858ac9c547bd0dd0cfd6a123c14bf62136d06728cd1df4d28747fd -MD5 17df3229744c934837881c36317aab88 ChangeLog 7595 -RMD160 43aa0b879d3009d6d6f261f9bdf79d23ac5c5b98 ChangeLog 7595 -SHA256 6ee2aaabfb858ac9c547bd0dd0cfd6a123c14bf62136d06728cd1df4d28747fd ChangeLog 7595 +MISC ChangeLog 7862 RMD160 3d5afc6c25b5f9b26178595af054b787ba6d5243 SHA1 841b4891b34eb0b58cf641218f804d65ea4c21ba SHA256 4018bb3951721e2b2206f1ddb4b80db1ba04624df287933c16687a8ab1188674 +MD5 0dd51ba5ea85968284edee047bbdfc9f ChangeLog 7862 +RMD160 3d5afc6c25b5f9b26178595af054b787ba6d5243 ChangeLog 7862 +SHA256 4018bb3951721e2b2206f1ddb4b80db1ba04624df287933c16687a8ab1188674 ChangeLog 7862 MISC metadata.xml 254 RMD160 2e69b345a5604844f1c5a8256ea172c7a3cc485f SHA1 653c702fdb89577e9d15e9cbca3891e4acdba061 SHA256 9bffc4ff1cf574848699e33b09ff0f6137d6b64b69d82c7b95cafb32ee75becb MD5 f3e68295a919220f58e91a1d3468c851 metadata.xml 254 RMD160 2e69b345a5604844f1c5a8256ea172c7a3cc485f metadata.xml 254 @@ -55,7 +59,7 @@ SHA256 4670076b2a3644bd9721e173a2caf2c78a6e7415634c1999de958582457c26f1 files/di -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) -iD8DBQFFB/pJyuNVb5qfaOYRAutAAKC4p8eHKeFb7Q0cZd9b7ISad5WkaQCgxXbA -T+LgIujjwvKTFMLgJZBHJME= -=dMjz +iD8DBQFFL4T5yuNVb5qfaOYRAp5kAJ9qrgHO8UFf+Dh2kX/WLuaEs1uZZwCfW043 +d4gVODpHUmDfefBUGWRhYdQ= +=mnhk -----END PGP SIGNATURE----- diff --git a/net-wireless/ieee80211/files/ieee80211-1.1.13-tkip.patch b/net-wireless/ieee80211/files/ieee80211-1.1.13-tkip.patch new file mode 100644 index 000000000000..9f21a9e724fa --- /dev/null +++ b/net-wireless/ieee80211/files/ieee80211-1.1.13-tkip.patch @@ -0,0 +1,188 @@ +Index: ieee80211-1.1.13/ieee80211_crypt_tkip.c +=================================================================== +--- ieee80211-1.1.13.orig/ieee80211_crypt_tkip.c ++++ ieee80211-1.1.13/ieee80211_crypt_tkip.c +@@ -53,8 +53,10 @@ struct ieee80211_tkip_data { + + int key_idx; + +- struct crypto_tfm *tfm_arc4; +- struct crypto_tfm *tfm_michael; ++ struct crypto_tfm *tx_tfm_arc4; ++ struct crypto_tfm *tx_tfm_michael; ++ struct crypto_tfm *rx_tfm_arc4; ++ struct crypto_tfm *rx_tfm_michael; + + /* scratch buffers for virt_to_page() (crypto API) */ + u8 rx_hdr[16], tx_hdr[16]; +@@ -86,15 +88,29 @@ static void *ieee80211_tkip_init(int key + + priv->key_idx = key_idx; + +- priv->tfm_arc4 = crypto_alloc_tfm("arc4", 0); +- if (priv->tfm_arc4 == NULL) { ++ priv->tx_tfm_arc4 = crypto_alloc_tfm("arc4", 0); ++ if (priv->tx_tfm_arc4 == NULL) { + printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate " + "crypto API arc4\n"); + goto fail; + } + +- priv->tfm_michael = crypto_alloc_tfm("michael_mic", 0); +- if (priv->tfm_michael == NULL) { ++ priv->tx_tfm_michael = crypto_alloc_tfm("michael_mic", 0); ++ if (priv->tx_tfm_michael == NULL) { ++ printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate " ++ "crypto API michael_mic\n"); ++ goto fail; ++ } ++ ++ priv->rx_tfm_arc4 = crypto_alloc_tfm("arc4", 0); ++ if (priv->rx_tfm_arc4 == NULL) { ++ printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate " ++ "crypto API arc4\n"); ++ goto fail; ++ } ++ ++ priv->rx_tfm_michael = crypto_alloc_tfm("michael_mic", 0); ++ if (priv->rx_tfm_michael == NULL) { + printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate " + "crypto API michael_mic\n"); + goto fail; +@@ -104,10 +120,14 @@ static void *ieee80211_tkip_init(int key + + fail: + if (priv) { +- if (priv->tfm_michael) +- crypto_free_tfm(priv->tfm_michael); +- if (priv->tfm_arc4) +- crypto_free_tfm(priv->tfm_arc4); ++ if (priv->tx_tfm_michael) ++ crypto_free_tfm(priv->tx_tfm_michael); ++ if (priv->tx_tfm_arc4) ++ crypto_free_tfm(priv->tx_tfm_arc4); ++ if (priv->rx_tfm_michael) ++ crypto_free_tfm(priv->rx_tfm_michael); ++ if (priv->rx_tfm_arc4) ++ crypto_free_tfm(priv->rx_tfm_arc4); + kfree(priv); + } + +@@ -117,10 +137,14 @@ static void *ieee80211_tkip_init(int key + static void ieee80211_tkip_deinit(void *priv) + { + struct ieee80211_tkip_data *_priv = priv; +- if (_priv && _priv->tfm_michael) +- crypto_free_tfm(_priv->tfm_michael); +- if (_priv && _priv->tfm_arc4) +- crypto_free_tfm(_priv->tfm_arc4); ++ if (_priv && _priv->tx_tfm_michael) ++ crypto_free_tfm(_priv->tx_tfm_michael); ++ if (_priv && _priv->tx_tfm_arc4) ++ crypto_free_tfm(_priv->tx_tfm_arc4); ++ if (_priv && _priv->rx_tfm_michael) ++ crypto_free_tfm(_priv->rx_tfm_michael); ++ if (_priv && _priv->rx_tfm_arc4) ++ crypto_free_tfm(_priv->rx_tfm_arc4); + kfree(priv); + } + +@@ -352,11 +376,11 @@ static int ieee80211_tkip_encrypt(struct + icv[2] = crc >> 16; + icv[3] = crc >> 24; + +- crypto_cipher_setkey(tkey->tfm_arc4, rc4key, 16); ++ crypto_cipher_setkey(tkey->tx_tfm_arc4, rc4key, 16); + sg.page = virt_to_page(pos); + sg.offset = offset_in_page(pos); + sg.length = len + 4; +- crypto_cipher_encrypt(tkey->tfm_arc4, &sg, &sg, len + 4); ++ crypto_cipher_encrypt(tkey->tx_tfm_arc4, &sg, &sg, len + 4); + + return 0; + } +@@ -447,11 +471,11 @@ static int ieee80211_tkip_decrypt(struct + + plen = skb->len - hdr_len - 12; + +- crypto_cipher_setkey(tkey->tfm_arc4, rc4key, 16); ++ crypto_cipher_setkey(tkey->rx_tfm_arc4, rc4key, 16); + sg.page = virt_to_page(pos); + sg.offset = offset_in_page(pos); + sg.length = plen + 4; +- crypto_cipher_decrypt(tkey->tfm_arc4, &sg, &sg, plen + 4); ++ crypto_cipher_decrypt(tkey->rx_tfm_arc4, &sg, &sg, plen + 4); + + crc = ~crc32_le(~0, pos, plen); + icv[0] = crc; +@@ -485,12 +509,12 @@ static int ieee80211_tkip_decrypt(struct + return keyidx; + } + +-static int michael_mic(struct ieee80211_tkip_data *tkey, u8 * key, u8 * hdr, ++static int michael_mic(struct crypto_tfm *tfm_michael, u8 * key, u8 * hdr, + u8 * data, size_t data_len, u8 * mic) + { + struct scatterlist sg[2]; + +- if (tkey->tfm_michael == NULL) { ++ if (tfm_michael == NULL) { + printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n"); + return -1; + } +@@ -502,10 +526,10 @@ static int michael_mic(struct ieee80211_ + sg[1].offset = offset_in_page(data); + sg[1].length = data_len; + +- crypto_digest_init(tkey->tfm_michael); +- crypto_digest_setkey(tkey->tfm_michael, key, 8); +- crypto_digest_update(tkey->tfm_michael, sg, 2); +- crypto_digest_final(tkey->tfm_michael, mic); ++ crypto_digest_init(tfm_michael); ++ crypto_digest_setkey(tfm_michael, key, 8); ++ crypto_digest_update(tfm_michael, sg, 2); ++ crypto_digest_final(tfm_michael, mic); + + return 0; + } +@@ -563,7 +587,7 @@ static int ieee80211_michael_mic_add(str + + michael_mic_hdr(skb, tkey->tx_hdr); + pos = skb_put(skb, 8); +- if (michael_mic(tkey, &tkey->key[16], tkey->tx_hdr, ++ if (michael_mic(tkey->tx_tfm_michael, &tkey->key[16], tkey->tx_hdr, + skb->data + hdr_len, skb->len - 8 - hdr_len, pos)) + return -1; + +@@ -625,7 +649,7 @@ static int ieee80211_michael_mic_verify( + return -1; + + michael_mic_hdr(skb, tkey->rx_hdr); +- if (michael_mic(tkey, &tkey->key[24], tkey->rx_hdr, ++ if (michael_mic(tkey->rx_tfm_michael, &tkey->key[24], tkey->rx_hdr, + skb->data + hdr_len, skb->len - 8 - hdr_len, mic)) + return -1; + if (memcmp(mic, skb->data + skb->len - 8, 8) != 0) { +@@ -655,14 +679,18 @@ static int ieee80211_tkip_set_key(void * + { + struct ieee80211_tkip_data *tkey = priv; + int keyidx; +- struct crypto_tfm *tfm = tkey->tfm_michael; +- struct crypto_tfm *tfm2 = tkey->tfm_arc4; ++ struct crypto_tfm *tfm = tkey->tx_tfm_michael; ++ struct crypto_tfm *tfm2 = tkey->tx_tfm_arc4; ++ struct crypto_tfm *tfm3 = tkey->rx_tfm_michael; ++ struct crypto_tfm *tfm4 = tkey->rx_tfm_arc4; + + keyidx = tkey->key_idx; + memset(tkey, 0, sizeof(*tkey)); + tkey->key_idx = keyidx; +- tkey->tfm_michael = tfm; +- tkey->tfm_arc4 = tfm2; ++ tkey->tx_tfm_michael = tfm; ++ tkey->tx_tfm_arc4 = tfm2; ++ tkey->rx_tfm_michael = tfm3; ++ tkey->rx_tfm_arc4 = tfm4; + if (len == TKIP_KEY_LEN) { + memcpy(tkey->key, key, TKIP_KEY_LEN); + tkey->key_set = 1; diff --git a/net-wireless/ieee80211/ieee80211-1.1.13-r1.ebuild b/net-wireless/ieee80211/ieee80211-1.1.13-r1.ebuild index 4556ad366b50..da4dce9e4fac 100644 --- a/net-wireless/ieee80211/ieee80211-1.1.13-r1.ebuild +++ b/net-wireless/ieee80211/ieee80211-1.1.13-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ieee80211-1.1.13-r1.ebuild,v 1.2 2006/04/22 14:39:39 brix Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ieee80211-1.1.13-r1.ebuild,v 1.3 2006/10/13 12:22:10 phreak Exp $ inherit eutils linux-mod @@ -74,13 +74,13 @@ src_unpack() { unpack ${A} - cd ${S} - epatch ${FILESDIR}/${P}-cflags.patch + cd "${S}" + epatch "${FILESDIR}"/${P}-*.patch use debug && debug="y" sed -i \ -e "s:^\(CONFIG_IEEE80211_DEBUG\)=.*:\1=${debug}:" \ - ${S}/Makefile || die + "${S}"/Makefile || die } src_install() { |