Interworking: Use EAP-AKA if USIM is used

Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2012-03-04 16:11:02 +02:00
parent d7b01abd5e
commit 7f41c92bd6
3 changed files with 11 additions and 0 deletions

View file

@ -1419,3 +1419,9 @@ int scard_umts_auth(struct scard_data *scard, const unsigned char *_rand,
wpa_printf(MSG_DEBUG, "SCARD: Unrecognized response");
return -1;
}
int scard_supports_umts(struct scard_data *scard)
{
return scard->sim_type == SCARD_USIM;
}

View file

@ -30,6 +30,7 @@ int scard_umts_auth(struct scard_data *scard, const unsigned char *_rand,
unsigned char *res, size_t *res_len,
unsigned char *ik, unsigned char *ck, unsigned char *auts);
int scard_get_pin_retry_counter(struct scard_data *scard);
int scard_supports_umts(struct scard_data *scard);
#else /* PCSC_FUNCS */
@ -40,6 +41,7 @@ int scard_get_pin_retry_counter(struct scard_data *scard);
#define scard_gsm_auth(s, r, s2, k) -1
#define scard_umts_auth(s, r, a, r2, rl, i, c, a2) -1
#define scard_get_pin_retry_counter(s) -1
#define scard_supports_umts(s) 0
#endif /* PCSC_FUNCS */

View file

@ -12,6 +12,7 @@
#include "common/ieee802_11_defs.h"
#include "common/gas.h"
#include "common/wpa_ctrl.h"
#include "utils/pcsc_funcs.h"
#include "drivers/driver.h"
#include "eap_common/eap_defs.h"
#include "eap_peer/eap_methods.h"
@ -656,6 +657,8 @@ static int interworking_connect_3gpp(struct wpa_supplicant *wpa_s,
wpa_printf(MSG_DEBUG, "EAP-SIM not supported");
goto fail;
}
if (cred->pcsc && wpa_s->scard && scard_supports_umts(wpa_s->scard))
wpa_config_set(ssid, "eap", "AKA", 0);
if (!cred->pcsc && set_root_nai(ssid, cred->imsi, '1') < 0) {
wpa_printf(MSG_DEBUG, "Failed to set Root NAI");
goto fail;