wlantest: Fix EAPOL buffer length with variable MIC length
struct wpa_eapol_key does not include the MIC field anymore, so need to add it explicitly. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
6c2056abe5
commit
19e7ddf7fb
1 changed files with 6 additions and 4 deletions
|
@ -640,7 +640,7 @@ static void rx_data_eapol_key_3_of_4(struct wlantest *wt, const u8 *dst,
|
||||||
}
|
}
|
||||||
if (wt->write_pcap_dumper && decrypted != key_data) {
|
if (wt->write_pcap_dumper && decrypted != key_data) {
|
||||||
/* Fill in a dummy Data frame header */
|
/* Fill in a dummy Data frame header */
|
||||||
u8 buf[24 + 8 + sizeof(*eapol) + sizeof(*hdr)];
|
u8 buf[24 + 8 + sizeof(*eapol) + sizeof(*hdr) + 64];
|
||||||
struct ieee80211_hdr *h;
|
struct ieee80211_hdr *h;
|
||||||
struct wpa_eapol_key *k;
|
struct wpa_eapol_key *k;
|
||||||
const u8 *p;
|
const u8 *p;
|
||||||
|
@ -675,7 +675,8 @@ static void rx_data_eapol_key_3_of_4(struct wlantest *wt, const u8 *dst,
|
||||||
WPA_PUT_BE16(k->key_info,
|
WPA_PUT_BE16(k->key_info,
|
||||||
key_info & ~WPA_KEY_INFO_ENCR_KEY_DATA);
|
key_info & ~WPA_KEY_INFO_ENCR_KEY_DATA);
|
||||||
WPA_PUT_BE16(pos, plain_len);
|
WPA_PUT_BE16(pos, plain_len);
|
||||||
write_pcap_decrypted(wt, buf, sizeof(buf),
|
write_pcap_decrypted(wt, buf, 24 + 8 + sizeof(*eapol) +
|
||||||
|
sizeof(*hdr) + mic_len + 2,
|
||||||
decrypted, plain_len);
|
decrypted, plain_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -835,7 +836,7 @@ static void rx_data_eapol_key_1_of_2(struct wlantest *wt, const u8 *dst,
|
||||||
decrypted, decrypted_len);
|
decrypted, decrypted_len);
|
||||||
if (wt->write_pcap_dumper) {
|
if (wt->write_pcap_dumper) {
|
||||||
/* Fill in a dummy Data frame header */
|
/* Fill in a dummy Data frame header */
|
||||||
u8 buf[24 + 8 + sizeof(*eapol) + sizeof(*hdr)];
|
u8 buf[24 + 8 + sizeof(*eapol) + sizeof(*hdr) + 64];
|
||||||
struct ieee80211_hdr *h;
|
struct ieee80211_hdr *h;
|
||||||
struct wpa_eapol_key *k;
|
struct wpa_eapol_key *k;
|
||||||
u8 *pos;
|
u8 *pos;
|
||||||
|
@ -869,7 +870,8 @@ static void rx_data_eapol_key_1_of_2(struct wlantest *wt, const u8 *dst,
|
||||||
WPA_PUT_BE16(k->key_info,
|
WPA_PUT_BE16(k->key_info,
|
||||||
key_info & ~WPA_KEY_INFO_ENCR_KEY_DATA);
|
key_info & ~WPA_KEY_INFO_ENCR_KEY_DATA);
|
||||||
WPA_PUT_BE16(pos, plain_len);
|
WPA_PUT_BE16(pos, plain_len);
|
||||||
write_pcap_decrypted(wt, buf, sizeof(buf),
|
write_pcap_decrypted(wt, buf, 24 + 8 + sizeof(*eapol) +
|
||||||
|
sizeof(*hdr) + mic_len + 2,
|
||||||
decrypted, plain_len);
|
decrypted, plain_len);
|
||||||
}
|
}
|
||||||
if (sta->proto & WPA_PROTO_RSN)
|
if (sta->proto & WPA_PROTO_RSN)
|
||||||
|
|
Loading…
Reference in a new issue