SCARD: Fix GSM authentication on USIM

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

Since commit eb32460029 ("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.

Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
This commit is contained in:
Simon Baatz 2014-05-15 20:10:39 +02:00 committed by Jouni Malinen
parent d352c407e3
commit c70c37500b

View file

@ -1237,6 +1237,7 @@ int scard_gsm_auth(struct scard_data *scard, const unsigned char *_rand,
cmd[4] = 17; cmd[4] = 17;
cmd[5] = 16; cmd[5] = 16;
os_memcpy(cmd + 6, _rand, 16); os_memcpy(cmd + 6, _rand, 16);
get_resp[0] = USIM_CLA;
} }
len = sizeof(resp); len = sizeof(resp);
ret = scard_transmit(scard, cmd, cmdlen, resp, &len); ret = scard_transmit(scard, cmd, cmdlen, resp, &len);