pos += ret;
}
+ if (wpa_s->bigtk_set) {
+ ret = os_snprintf(pos, end - pos, "bigtk_set=1\n");
+ if (os_snprintf_error(end - pos, ret))
+ return pos - buf;
+ pos += ret;
+ }
+
#ifdef ANDROID
/*
* Allow using the STATUS command with default behavior, say for debug,
#endif /* CONFIG_SME */
wpa_s->ssid_verified = false;
+ wpa_s->bigtk_set = false;
}
wpa_dbg(wpa_s, MSG_DEBUG, "Association info event");
wpa_s->ssid_verified = false;
+ wpa_s->bigtk_set = false;
#ifdef CONFIG_SAE
#ifdef CONFIG_SME
/* SAE H2E binds the SSID into PT and that verifies the SSID
enum key_flag key_flag)
{
struct wpa_supplicant *wpa_s = _wpa_s;
+ int ret;
+
if (alg == WPA_ALG_TKIP && key_idx == 0 && key_len == 32) {
/* Clear the MIC error counter when setting a new PTK. */
wpa_s->mic_errors_seen = 0;
wpa_s->last_tk_len = key_len;
}
#endif /* CONFIG_TESTING_OPTIONS */
- return wpa_drv_set_key(wpa_s, link_id, alg, addr, key_idx, set_tx, seq,
- seq_len, key, key_len, key_flag);
+
+ ret = wpa_drv_set_key(wpa_s, link_id, alg, addr, key_idx, set_tx, seq,
+ seq_len, key, key_len, key_flag);
+ if (ret == 0 && (key_idx == 6 || key_idx == 7) &&
+ alg != WPA_ALG_NONE && key_len > 0)
+ wpa_s->bigtk_set = true;
+
+ return ret;
}