[PATCH] SCARD: Fix GSM authentication on USIM

Simon Baatz gmbnomis
Thu May 15 11:10:39 PDT 2014

scard_gsm_auth() used SIM_CMD_GET_RESPONSE for both SIM and USIM. Convert
the command into USIM_CMD_GET_RESPONSE for USIM.

Signed-off-by: Simon Baatz <gmbnomis at gmail.com>


since commit eb324600295 ("Fix switching from EAP-SIM to
EAP-AKA/AKA'") EAP-SIM is using the USIM if available. This triggers a
probably ancient bug in scard_gsm_auth(), which results in sending the
wrong get response command to the USIM. Thus, EAP-SIM stopped to work
after this change on USIMs that expect the proper command.

- Simon

 src/utils/pcsc_funcs.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/src/utils/pcsc_funcs.c b/src/utils/pcsc_funcs.c
index ee90d25..ec06556 100644
--- a/src/utils/pcsc_funcs.c
+++ b/src/utils/pcsc_funcs.c
@@ -1237,6 +1237,7 @@ int scard_gsm_auth(struct scard_data *scard, const unsigned char *_rand,
 		cmd[4] = 17;
 		cmd[5] = 16;
 		os_memcpy(cmd + 6, _rand, 16);
+		get_resp[0] = USIM_CLA;
 	len = sizeof(resp);
 	ret = scard_transmit(scard, cmd, cmdlen, resp, &len);

More information about the Hostap mailing list