diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-11-11 22:39:19 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-11-11 22:39:19 +0000 |
commit | e6eb9ff254c15a28545b1d90409df3cd5e24ad56 (patch) | |
tree | 9bc816515fc3f5a0a928260a4bf64e9e2afa2ee5 /package/hostapd/patches/400-madwifi_key_fixes.patch | |
parent | 7faef97df732c299e8b0404070fbd5d3bbb81b2c (diff) | |
download | upstream-e6eb9ff254c15a28545b1d90409df3cd5e24ad56.tar.gz upstream-e6eb9ff254c15a28545b1d90409df3cd5e24ad56.tar.bz2 upstream-e6eb9ff254c15a28545b1d90409df3cd5e24ad56.zip |
hostapd: update to 2010-11-11
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23969 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/hostapd/patches/400-madwifi_key_fixes.patch')
-rw-r--r-- | package/hostapd/patches/400-madwifi_key_fixes.patch | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/package/hostapd/patches/400-madwifi_key_fixes.patch b/package/hostapd/patches/400-madwifi_key_fixes.patch deleted file mode 100644 index d6883ffce4..0000000000 --- a/package/hostapd/patches/400-madwifi_key_fixes.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/src/drivers/driver_madwifi.c -+++ b/src/drivers/driver_madwifi.c -@@ -438,9 +438,11 @@ madwifi_set_key(const char *ifname, void - wpa_printf(MSG_DEBUG, "%s: alg=%d addr=%s key_idx=%d", - __func__, alg, ether_sprintf(addr), key_idx); - -- if (alg == WPA_ALG_WEP) -+ if (alg == WPA_ALG_WEP) { - cipher = IEEE80211_CIPHER_WEP; -- else if (alg == WPA_ALG_TKIP) -+ if (!addr || !memcmp(addr, "\xff\xff\xff\xff\xff\xff", ETH_ALEN)) -+ return wpa_driver_wext_set_key(ifname, drv->wext, alg, addr, key_idx, set_tx, seq, seq_len, key, key_len); -+ } else if (alg == WPA_ALG_TKIP) - cipher = IEEE80211_CIPHER_TKIP; - else if (alg == WPA_ALG_CCMP) - cipher = IEEE80211_CIPHER_AES_CCM; -@@ -464,15 +466,30 @@ madwifi_set_key(const char *ifname, void - memset(wk.ik_macaddr, 0xff, IEEE80211_ADDR_LEN); - wk.ik_keyix = key_idx; - wk.ik_flags |= IEEE80211_KEY_DEFAULT; -+ wk.ik_flags |= IEEE80211_KEY_GROUP; - } else if (!memcmp(addr, "\xff\xff\xff\xff\xff\xff", ETH_ALEN)) { -+ wk.ik_keyix = key_idx; - wk.ik_flags |= IEEE80211_KEY_GROUP; -- memcpy(wk.ik_macaddr, addr, IEEE80211_ADDR_LEN); -+ memset(wk.ik_macaddr, 0, IEEE80211_ADDR_LEN); - } else { - memcpy(wk.ik_macaddr, addr, IEEE80211_ADDR_LEN); - wk.ik_keyix = IEEE80211_KEYIX_NONE; - } - wk.ik_keylen = key_len; - memcpy(wk.ik_keydata, key, key_len); -+#ifdef WORDS_BIGENDIAN -+#define WPA_KEY_RSC_LEN 8 -+ { -+ size_t i; -+ u8 tmp[WPA_KEY_RSC_LEN]; -+ os_memset(tmp, 0, sizeof(tmp)); -+ for (i = 0; i < seq_len; i++) -+ tmp[WPA_KEY_RSC_LEN - i - 1] = seq[i]; -+ os_memcpy(&wk.ik_keyrsc, tmp, WPA_KEY_RSC_LEN); -+ } -+#else /* WORDS_BIGENDIAN */ -+ os_memcpy(&wk.ik_keyrsc, seq, seq_len); -+#endif /* WORDS_BIGENDIAN */ - - ret = set80211priv(drv, IEEE80211_IOCTL_SETKEY, &wk, sizeof(wk)); - if (ret < 0) { |