FT: Fix FTE MIC calculation with fragmented FTE
Currently wpa_ft_parse_ies() is setting FTE information to wpa_buf
pointer data which is generated after defragmentation. This data will
not contain FTE and Fragment element(s) headers.
IEEE P802.11be/D5.0 describes the MIC to be calculated on the
concatenation of FTE and corresponding Fragment element(s) which
implies the element headers are included for each element in the
fragmented case.
Fix this by correctly populating FTE information when FTE is
fragmented.
Fixes: 43b5f11d9
("Defragmentation of FTE")
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
This commit is contained in:
parent
e7172e26d3
commit
c3d305d939
1 changed files with 5 additions and 3 deletions
|
@ -1031,9 +1031,6 @@ static int wpa_ft_parse_ftie(const u8 *ie, size_t ie_len,
|
||||||
const u8 *end, *pos;
|
const u8 *end, *pos;
|
||||||
u8 link_id;
|
u8 link_id;
|
||||||
|
|
||||||
parse->ftie = ie;
|
|
||||||
parse->ftie_len = ie_len;
|
|
||||||
|
|
||||||
pos = opt;
|
pos = opt;
|
||||||
end = ie + ie_len;
|
end = ie + ie_len;
|
||||||
wpa_hexdump(MSG_DEBUG, "FT: Parse FTE subelements", pos, end - pos);
|
wpa_hexdump(MSG_DEBUG, "FT: Parse FTE subelements", pos, end - pos);
|
||||||
|
@ -1339,6 +1336,11 @@ int wpa_ft_parse_ies(const u8 *ies, size_t ies_len, struct wpa_ft_ies *parse,
|
||||||
}
|
}
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
/* FTE might be fragmented. If it is, the separate Fragment
|
||||||
|
* elements are included in MIC calculation as full elements. */
|
||||||
|
parse->ftie = fte;
|
||||||
|
parse->ftie_len = fte_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prot_ie_count == 0)
|
if (prot_ie_count == 0)
|
||||||
|
|
Loading…
Reference in a new issue