summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_crypto_wep.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-06-10 16:11:24 +0000
committersam <sam@FreeBSD.org>2005-06-10 16:11:24 +0000
commit6ee6d8891675b656ba92d6c73aa98b03a975c2fe (patch)
tree0391865cf0d816fd8505a8fd066ed529a159383e /sys/net80211/ieee80211_crypto_wep.c
parent53aa8b7547fb9b83ef5c1565f6c2a45b0cf8c9b1 (diff)
downloadFreeBSD-src-6ee6d8891675b656ba92d6c73aa98b03a975c2fe.zip
FreeBSD-src-6ee6d8891675b656ba92d6c73aa98b03a975c2fe.tar.gz
o fix wpa w/ wme: don't strip the QoS header on recv as tkip requires
it; instead pass the space occupied by the header down into the crypto modules (except in the demic case which needs it only when doing int in s/w) o while here fix defrag to strip the header from 2nd and later frames o teach decap code how to handle 4-address frames
Diffstat (limited to 'sys/net80211/ieee80211_crypto_wep.c')
-rw-r--r--sys/net80211/ieee80211_crypto_wep.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/net80211/ieee80211_crypto_wep.c b/sys/net80211/ieee80211_crypto_wep.c
index f392886..45132419 100644
--- a/sys/net80211/ieee80211_crypto_wep.c
+++ b/sys/net80211/ieee80211_crypto_wep.c
@@ -55,7 +55,7 @@ static void *wep_attach(struct ieee80211com *, struct ieee80211_key *);
static void wep_detach(struct ieee80211_key *);
static int wep_setkey(struct ieee80211_key *);
static int wep_encap(struct ieee80211_key *, struct mbuf *, u_int8_t keyid);
-static int wep_decap(struct ieee80211_key *, struct mbuf *);
+static int wep_decap(struct ieee80211_key *, struct mbuf *, int hdrlen);
static int wep_enmic(struct ieee80211_key *, struct mbuf *, int);
static int wep_demic(struct ieee80211_key *, struct mbuf *, int);
@@ -205,14 +205,12 @@ wep_enmic(struct ieee80211_key *k, struct mbuf *m, int force)
* the specified key.
*/
static int
-wep_decap(struct ieee80211_key *k, struct mbuf *m)
+wep_decap(struct ieee80211_key *k, struct mbuf *m, int hdrlen)
{
struct wep_ctx *ctx = k->wk_private;
struct ieee80211_frame *wh;
- int hdrlen;
wh = mtod(m, struct ieee80211_frame *);
- hdrlen = ieee80211_hdrsize(wh);
/*
* Check if the device handled the decrypt in hardware.
OpenPOWER on IntegriCloud