aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/wpa.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/wpa.c')
-rw-r--r--net/mac80211/wpa.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index a07fd7484cdf..6695efba57ec 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -175,6 +175,10 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx)
175 /* remove Michael MIC from payload */ 175 /* remove Michael MIC from payload */
176 skb_trim(skb, skb->len - MICHAEL_MIC_LEN); 176 skb_trim(skb, skb->len - MICHAEL_MIC_LEN);
177 177
178 /* update IV in key information to be able to detect replays */
179 rx->key->u.tkip.iv32_rx[rx->u.rx.queue] = rx->u.rx.tkip_iv32;
180 rx->key->u.tkip.iv16_rx[rx->u.rx.queue] = rx->u.rx.tkip_iv16;
181
178 return TXRX_CONTINUE; 182 return TXRX_CONTINUE;
179} 183}
180 184
@@ -315,7 +319,9 @@ ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx)
315 res = ieee80211_tkip_decrypt_data(rx->local->wep_rx_tfm, 319 res = ieee80211_tkip_decrypt_data(rx->local->wep_rx_tfm,
316 key, skb->data + hdrlen, 320 key, skb->data + hdrlen,
317 skb->len - hdrlen, rx->sta->addr, 321 skb->len - hdrlen, rx->sta->addr,
318 hwaccel, rx->u.rx.queue); 322 hwaccel, rx->u.rx.queue,
323 &rx->u.rx.tkip_iv32,
324 &rx->u.rx.tkip_iv16);
319 if (res != TKIP_DECRYPT_OK || wpa_test) { 325 if (res != TKIP_DECRYPT_OK || wpa_test) {
320 printk(KERN_DEBUG "%s: TKIP decrypt failed for RX frame from " 326 printk(KERN_DEBUG "%s: TKIP decrypt failed for RX frame from "
321 "%s (res=%d)\n", 327 "%s (res=%d)\n",