SAE: Add support for PMKSA caching on the station side
This makes wpa_supplicant SME create PMKSA cache entries from SAE authentication and try to use PMKSA caching if an entry is found for the AP. If the AP rejects the attempt, fall back to SAE authentication is used. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
f299117093
commit
bc26ac50dd
6 changed files with 49 additions and 8 deletions
|
@ -2181,10 +2181,12 @@ void wpa_sm_notify_disassoc(struct wpa_sm *sm)
|
|||
* @sm: Pointer to WPA state machine data from wpa_sm_init()
|
||||
* @pmk: The new PMK
|
||||
* @pmk_len: The length of the new PMK in bytes
|
||||
* @bssid: AA to add into PMKSA cache or %NULL to not cache the PMK
|
||||
*
|
||||
* Configure the PMK for WPA state machine.
|
||||
*/
|
||||
void wpa_sm_set_pmk(struct wpa_sm *sm, const u8 *pmk, size_t pmk_len)
|
||||
void wpa_sm_set_pmk(struct wpa_sm *sm, const u8 *pmk, size_t pmk_len,
|
||||
const u8 *bssid)
|
||||
{
|
||||
if (sm == NULL)
|
||||
return;
|
||||
|
@ -2197,6 +2199,11 @@ void wpa_sm_set_pmk(struct wpa_sm *sm, const u8 *pmk, size_t pmk_len)
|
|||
sm->xxkey_len = pmk_len;
|
||||
os_memcpy(sm->xxkey, pmk, pmk_len);
|
||||
#endif /* CONFIG_IEEE80211R */
|
||||
|
||||
if (bssid) {
|
||||
pmksa_cache_add(sm->pmksa, pmk, pmk_len, bssid, sm->own_addr,
|
||||
sm->network_ctx, sm->key_mgmt);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -105,7 +105,8 @@ struct wpa_sm * wpa_sm_init(struct wpa_sm_ctx *ctx);
|
|||
void wpa_sm_deinit(struct wpa_sm *sm);
|
||||
void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid);
|
||||
void wpa_sm_notify_disassoc(struct wpa_sm *sm);
|
||||
void wpa_sm_set_pmk(struct wpa_sm *sm, const u8 *pmk, size_t pmk_len);
|
||||
void wpa_sm_set_pmk(struct wpa_sm *sm, const u8 *pmk, size_t pmk_len,
|
||||
const u8 *bssid);
|
||||
void wpa_sm_set_pmk_from_pmksa(struct wpa_sm *sm);
|
||||
void wpa_sm_set_fast_reauth(struct wpa_sm *sm, int fast_reauth);
|
||||
void wpa_sm_set_scard_ctx(struct wpa_sm *sm, void *scard_ctx);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue