X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Feap_server%2Feap_server_aka.c;h=469b9a0fa653869cef4111e87455ba7aa44d3dbd;hb=a54fa5fb807eaeff45464139b5a7759f060cec68;hp=177b58dac52f17e95c2047688f4299298cf72a63;hpb=d27fcf69aa1b0e5400526626b3ffdeacc21660b6;p=android-x86%2Fexternal-wpa_supplicant_8.git diff --git a/src/eap_server/eap_server_aka.c b/src/eap_server/eap_server_aka.c index 177b58d..469b9a0 100644 --- a/src/eap_server/eap_server_aka.c +++ b/src/eap_server/eap_server_aka.c @@ -731,6 +731,17 @@ static void eap_aka_determine_identity(struct eap_sm *sm, return; } + if (((data->eap_method == EAP_TYPE_AKA_PRIME && + username[0] == EAP_AKA_PRIME_REAUTH_ID_PREFIX) || + (data->eap_method == EAP_TYPE_AKA && + username[0] == EAP_AKA_REAUTH_ID_PREFIX)) && + data->identity_round == 1) { + /* Remain in IDENTITY state for another round to request full + * auth identity since we did not recognize reauth id */ + os_free(username); + return; + } + if ((data->eap_method == EAP_TYPE_AKA_PRIME && username[0] == EAP_AKA_PRIME_PSEUDONYM_PREFIX) || (data->eap_method == EAP_TYPE_AKA &&