linux/net/mac80211
Johannes Berg 3017b80bf0 [MAC80211]: fix software decryption
When doing key selection for software decryption, mac80211 gets
a few things wrong: it always uses pairwise keys if configured,
even if the frame is addressed to a multicast address. Also, it
doesn't allow using a key index of zero if a pairwise key has
also been found.

This patch changes the key selection code to be (more) in line
with the 802.11 specification. I have confirmed that with this,
multicast frames are correctly decrypted and I've tested with
WEP as well.

While at it, I've cleaned up the semantics of the hardware flags
IEEE80211_HW_WEP_INCLUDE_IV and IEEE80211_HW_DEVICE_HIDES_WEP
and clarified them in the mac80211.h header; it is also now
allowed to set the IEEE80211_HW_DEVICE_HIDES_WEP option even if
it only applies to frames that have been decrypted by the hw,
unencrypted frames must be dropped but encrypted frames that
the hardware couldn't handle can be passed up unmodified.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-10-10 16:48:44 -07:00
..
aes_ccm.c [NET]: DIV_ROUND_UP cleanup (part two) 2007-10-10 16:48:37 -07:00
aes_ccm.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
debugfs_key.c [MAC80211]: fix key debugfs 2007-10-10 16:48:40 -07:00
debugfs_key.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_netdev.c [PATCH] mac80211: use do { } while (0) for multi-line macros 2007-08-06 15:38:48 -04:00
debugfs_netdev.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_sta.c [PATCH] mac80211: Fix sparse error for sta_last_seq_ctrl_read 2007-08-06 15:39:01 -04:00
debugfs_sta.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs.c [PATCH] mac80211: fix debugfs tx power reduction output 2007-06-11 17:47:48 -04:00
debugfs.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
hostapd_ioctl.h [MAC80211]: remove PRISM2_PARAM_RADIO_ENABLED 2007-10-10 16:48:41 -07:00
ieee80211_cfg.c [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
ieee80211_cfg.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
ieee80211_common.h [MAC80211]: remove radar stuff 2007-10-10 16:48:43 -07:00
ieee80211_i.h [MAC80211]: implement ERP info change notifications 2007-10-10 16:47:39 -07:00
ieee80211_iface.c [MAC80211]: improve locking of sta_info related structures 2007-10-10 16:47:37 -07:00
ieee80211_ioctl.c [MAC80211]: remove PRISM2_PARAM_RADIO_ENABLED 2007-10-10 16:48:41 -07:00
ieee80211_key.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
ieee80211_led.c [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
ieee80211_led.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
ieee80211_rate.c [MAC80211]: move some rate control functions out of ieee80211.c 2007-10-10 16:47:35 -07:00
ieee80211_rate.h [MAC80211]: move some rate control functions out of ieee80211.c 2007-10-10 16:47:35 -07:00
ieee80211_sta.c [MAC80211]: use more GFP_KERNEL instead of GFP_ATOMIC 2007-10-10 16:47:40 -07:00
ieee80211.c [MAC80211]: remove radar stuff 2007-10-10 16:48:43 -07:00
Kconfig [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
key.c [MAC80211]: split out some key functions from ieee80211.c 2007-10-10 16:47:34 -07:00
Makefile [MAC80211]: introduce util.c 2007-10-10 16:47:36 -07:00
michael.c [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
michael.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
rc80211_simple.c [PATCH] mac80211: fix initialisation when built-in 2007-09-25 22:55:45 -07:00
regdomain.c [PATCH] mac80211: regdomain.c needs to include ieee80211_i.h 2007-07-17 21:50:20 -04:00
rx.c [MAC80211]: fix software decryption 2007-10-10 16:48:44 -07:00
sta_info.c [MAC80211]: improve locking of sta_info related structures 2007-10-10 16:47:37 -07:00
sta_info.h [MAC80211]: improve locking of sta_info related structures 2007-10-10 16:47:37 -07:00
tkip.c [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
tkip.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
tx.c [NET]: DIV_ROUND_UP cleanup (part two) 2007-10-10 16:48:37 -07:00
util.c [MAC80211]: improved short preamble handling 2007-10-10 16:47:38 -07:00
wep.c [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
wep.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
wme.c [MAC80211]: move QoS rx handlers into rx.c 2007-10-10 16:47:30 -07:00
wme.h [MAC80211]: move QoS rx handlers into rx.c 2007-10-10 16:47:30 -07:00
wpa.c [MAC80211]: fix software decryption 2007-10-10 16:48:44 -07:00
wpa.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00