Add parsing of Key ID KDE for Extended Key ID

wpa_parse_generic() can now recognize the Key ID KDE that will be needed
to deliver the Key ID of the pairwise key when Extended Key ID is used.

Signed-off-by: Alexander Wetzel <alexander@wetzel-home.de>
This commit is contained in:
Alexander Wetzel 2020-03-15 20:04:20 +01:00 committed by Jouni Malinen
parent f5c0104f3b
commit 094c9cdc7e
2 changed files with 9 additions and 0 deletions

View File

@ -2717,6 +2717,14 @@ static int wpa_parse_generic(const u8 *pos, const u8 *end,
return 0; return 0;
} }
if (pos[1] >= RSN_SELECTOR_LEN + 2 &&
RSN_SELECTOR_GET(pos + 2) == RSN_KEY_DATA_KEYID) {
ie->key_id = pos + 2 + RSN_SELECTOR_LEN;
wpa_hexdump(MSG_DEBUG, "WPA: KeyID in EAPOL-Key",
pos, pos[1] + 2);
return 0;
}
if (pos[1] > RSN_SELECTOR_LEN + 2 && if (pos[1] > RSN_SELECTOR_LEN + 2 &&
RSN_SELECTOR_GET(pos + 2) == RSN_KEY_DATA_GROUPKEY) { RSN_SELECTOR_GET(pos + 2) == RSN_KEY_DATA_GROUPKEY) {
ie->gtk = pos + 2 + RSN_SELECTOR_LEN; ie->gtk = pos + 2 + RSN_SELECTOR_LEN;

View File

@ -494,6 +494,7 @@ struct wpa_eapol_ie_parse {
const u8 *rsn_ie; const u8 *rsn_ie;
size_t rsn_ie_len; size_t rsn_ie_len;
const u8 *pmkid; const u8 *pmkid;
const u8 *key_id;
const u8 *gtk; const u8 *gtk;
size_t gtk_len; size_t gtk_len;
const u8 *mac_addr; const u8 *mac_addr;