Show SAE flags in scan results

Indicate AP support for SAE H2E and SAE-PK in scan results.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
Jouni Malinen 2020-05-30 23:30:42 +03:00 committed by Jouni Malinen
parent e7aeb6d8ac
commit 9bf576870e

View file

@ -2940,7 +2940,7 @@ static int wpa_supplicant_ctrl_iface_scan_result(
{ {
char *pos, *end; char *pos, *end;
int ret; int ret;
const u8 *ie, *ie2, *osen_ie, *p2p, *mesh, *owe; const u8 *ie, *ie2, *osen_ie, *p2p, *mesh, *owe, *rsnxe;
mesh = wpa_bss_get_ie(bss, WLAN_EID_MESH_ID); mesh = wpa_bss_get_ie(bss, WLAN_EID_MESH_ID);
p2p = wpa_bss_get_vendor_ie(bss, P2P_IE_VENDOR_TYPE); p2p = wpa_bss_get_vendor_ie(bss, P2P_IE_VENDOR_TYPE);
@ -2967,6 +2967,21 @@ static int wpa_supplicant_ctrl_iface_scan_result(
pos = wpa_supplicant_ie_txt(pos, end, mesh ? "RSN" : "WPA2", pos = wpa_supplicant_ie_txt(pos, end, mesh ? "RSN" : "WPA2",
ie2, 2 + ie2[1]); ie2, 2 + ie2[1]);
} }
rsnxe = wpa_bss_get_ie(bss, WLAN_EID_RSNX);
if (rsnxe && rsnxe[1] >= 1) {
if (rsnxe[2] & BIT(WLAN_RSNX_CAPAB_SAE_H2E)) {
ret = os_snprintf(pos, end - pos, "[SAE-H2E]");
if (os_snprintf_error(end - pos, ret))
return -1;
pos += ret;
}
if (rsnxe[2] & BIT(WLAN_RSNX_CAPAB_SAE_PK)) {
ret = os_snprintf(pos, end - pos, "[SAE-PK]");
if (os_snprintf_error(end - pos, ret))
return -1;
pos += ret;
}
}
osen_ie = wpa_bss_get_vendor_ie(bss, OSEN_IE_VENDOR_TYPE); osen_ie = wpa_bss_get_vendor_ie(bss, OSEN_IE_VENDOR_TYPE);
if (osen_ie) if (osen_ie)
pos = wpa_supplicant_ie_txt(pos, end, "OSEN", pos = wpa_supplicant_ie_txt(pos, end, "OSEN",
@ -4831,7 +4846,7 @@ static int print_bss_info(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
size_t i; size_t i;
int ret; int ret;
char *pos, *end; char *pos, *end;
const u8 *ie, *ie2, *osen_ie, *mesh, *owe; const u8 *ie, *ie2, *osen_ie, *mesh, *owe, *rsnxe;
pos = buf; pos = buf;
end = buf + buflen; end = buf + buflen;
@ -4951,6 +4966,21 @@ static int print_bss_info(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
pos = wpa_supplicant_ie_txt(pos, end, pos = wpa_supplicant_ie_txt(pos, end,
mesh ? "RSN" : "WPA2", ie2, mesh ? "RSN" : "WPA2", ie2,
2 + ie2[1]); 2 + ie2[1]);
rsnxe = wpa_bss_get_ie(bss, WLAN_EID_RSNX);
if (rsnxe && rsnxe[1] >= 1) {
if (rsnxe[2] & BIT(WLAN_RSNX_CAPAB_SAE_H2E)) {
ret = os_snprintf(pos, end - pos, "[SAE-H2E]");
if (os_snprintf_error(end - pos, ret))
return -1;
pos += ret;
}
if (rsnxe[2] & BIT(WLAN_RSNX_CAPAB_SAE_PK)) {
ret = os_snprintf(pos, end - pos, "[SAE-PK]");
if (os_snprintf_error(end - pos, ret))
return -1;
pos += ret;
}
}
osen_ie = wpa_bss_get_vendor_ie(bss, OSEN_IE_VENDOR_TYPE); osen_ie = wpa_bss_get_vendor_ie(bss, OSEN_IE_VENDOR_TYPE);
if (osen_ie) if (osen_ie)
pos = wpa_supplicant_ie_txt(pos, end, "OSEN", pos = wpa_supplicant_ie_txt(pos, end, "OSEN",