|
@@ -131,8 +131,13 @@ static int eap_sim_build_encr(struct eap_sm *sm, struct eap_sim_data *data,
|
|
|
const u8 *nonce_s)
|
|
|
{
|
|
|
os_free(data->next_pseudonym);
|
|
|
- data->next_pseudonym =
|
|
|
- eap_sim_db_get_next_pseudonym(sm->eap_sim_db_priv, 0);
|
|
|
+ if (nonce_s == NULL) {
|
|
|
+ data->next_pseudonym =
|
|
|
+ eap_sim_db_get_next_pseudonym(sm->eap_sim_db_priv, 0);
|
|
|
+ } else {
|
|
|
+ /* Do not update pseudonym during re-authentication */
|
|
|
+ data->next_pseudonym = NULL;
|
|
|
+ }
|
|
|
os_free(data->next_reauth_id);
|
|
|
if (data->counter <= EAP_SIM_MAX_FAST_REAUTHS) {
|
|
|
data->next_reauth_id =
|
|
@@ -616,11 +621,6 @@ static void eap_sim_process_reauth(struct eap_sm *sm,
|
|
|
identity_len = id2_len;
|
|
|
}
|
|
|
|
|
|
- if (data->next_pseudonym) {
|
|
|
- eap_sim_db_add_pseudonym(sm->eap_sim_db_priv, identity,
|
|
|
- identity_len, data->next_pseudonym);
|
|
|
- data->next_pseudonym = NULL;
|
|
|
- }
|
|
|
if (data->next_reauth_id) {
|
|
|
eap_sim_db_add_reauth(sm->eap_sim_db_priv, identity,
|
|
|
identity_len, data->next_reauth_id,
|