atheros: Process SAE authentication frames using EVENT_RX_MGMT

This adds support for SAE in AP mode with the atheros driver interface.
EVENT_RX_MGMT includes SAE processing while EVENT_AUTH would require
more changes to make this work.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Ashok Kumar Ponnaiah 2017-11-14 18:47:07 +02:00 committed by Jouni Malinen
parent 3d9dd4b772
commit 41db74cf76

View File

@ -931,6 +931,12 @@ static void atheros_raw_receive(void *ctx, const u8 *src_addr, const u8 *buf,
if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth))
break; break;
os_memset(&event, 0, sizeof(event)); os_memset(&event, 0, sizeof(event));
if (le_to_host16(mgmt->u.auth.auth_alg) == WLAN_AUTH_SAE) {
event.rx_mgmt.frame = buf;
event.rx_mgmt.frame_len = len;
wpa_supplicant_event(drv->hapd, EVENT_RX_MGMT, &event);
break;
}
os_memcpy(event.auth.peer, mgmt->sa, ETH_ALEN); os_memcpy(event.auth.peer, mgmt->sa, ETH_ALEN);
os_memcpy(event.auth.bssid, mgmt->bssid, ETH_ALEN); os_memcpy(event.auth.bssid, mgmt->bssid, ETH_ALEN);
event.auth.auth_type = le_to_host16(mgmt->u.auth.auth_alg); event.auth.auth_type = le_to_host16(mgmt->u.auth.auth_alg);