diff --git a/src/eapol.c b/src/eapol.c index 0d882e96..7e0442da 100644 --- a/src/eapol.c +++ b/src/eapol.c @@ -39,6 +39,7 @@ #include "src/eap.h" #include "src/handshake.h" #include "src/watchlist.h" +#include "src/erp.h" struct l_queue *state_machines; struct l_queue *preauths; @@ -2006,6 +2007,11 @@ static void eapol_eap_results_cb(const uint8_t *msk_data, size_t msk_len, handshake_state_set_pmk(sm->handshake, msk_data, msk_len); + if (sm->handshake->support_fils && emsk_data && session_id) + erp_cache_add(eap_get_identity(sm->eap), session_id, + session_len, emsk_data, emsk_len, + (const char *)sm->handshake->ssid); + return; msk_short: