SCARD: Clean up SIM/USIM selection
Commit eb32460029
left an unneeded
sim_type argument to scard_init(). Remove that unnecessary argument to
clean up the implementation.
Signed-hostap: Masashi Honma <masashi.honma@gmail.com>
This commit is contained in:
parent
cea97a04f9
commit
22cf7d7324
5 changed files with 18 additions and 34 deletions
|
@ -485,17 +485,15 @@ static int scard_get_aid(struct scard_data *scard, unsigned char *aid,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* scard_init - Initialize SIM/USIM connection using PC/SC
|
* scard_init - Initialize SIM/USIM connection using PC/SC
|
||||||
* @sim_type: Allowed SIM types (SIM, USIM, or both)
|
|
||||||
* @reader: Reader name prefix to search for
|
* @reader: Reader name prefix to search for
|
||||||
* Returns: Pointer to private data structure, or %NULL on failure
|
* Returns: Pointer to private data structure, or %NULL on failure
|
||||||
*
|
*
|
||||||
* This function is used to initialize SIM/USIM connection. PC/SC is used to
|
* This function is used to initialize SIM/USIM connection. PC/SC is used to
|
||||||
* open connection to the SIM/USIM card and the card is verified to support the
|
* open connection to the SIM/USIM card. In addition, local flag is set if a
|
||||||
* selected sim_type. In addition, local flag is set if a PIN is needed to
|
* PIN is needed to access some of the card functions. Once the connection is
|
||||||
* access some of the card functions. Once the connection is not needed
|
* not needed anymore, scard_deinit() can be used to close it.
|
||||||
* anymore, scard_deinit() can be used to close it.
|
|
||||||
*/
|
*/
|
||||||
struct scard_data * scard_init(scard_sim_type sim_type, const char *reader)
|
struct scard_data * scard_init(const char *reader)
|
||||||
{
|
{
|
||||||
long ret;
|
long ret;
|
||||||
unsigned long len, pos;
|
unsigned long len, pos;
|
||||||
|
@ -612,21 +610,15 @@ struct scard_data * scard_init(scard_sim_type sim_type, const char *reader)
|
||||||
|
|
||||||
blen = sizeof(buf);
|
blen = sizeof(buf);
|
||||||
|
|
||||||
scard->sim_type = SCARD_GSM_SIM;
|
|
||||||
if (sim_type == SCARD_USIM_ONLY || sim_type == SCARD_TRY_BOTH) {
|
|
||||||
wpa_printf(MSG_DEBUG, "SCARD: verifying USIM support");
|
wpa_printf(MSG_DEBUG, "SCARD: verifying USIM support");
|
||||||
if (_scard_select_file(scard, SCARD_FILE_MF, buf, &blen,
|
if (_scard_select_file(scard, SCARD_FILE_MF, buf, &blen,
|
||||||
SCARD_USIM, NULL, 0)) {
|
SCARD_USIM, NULL, 0)) {
|
||||||
wpa_printf(MSG_DEBUG, "SCARD: USIM is not supported");
|
wpa_printf(MSG_DEBUG, "SCARD: USIM is not supported. Trying to use GSM SIM");
|
||||||
if (sim_type == SCARD_USIM_ONLY)
|
|
||||||
goto failed;
|
|
||||||
wpa_printf(MSG_DEBUG, "SCARD: Trying to use GSM SIM");
|
|
||||||
scard->sim_type = SCARD_GSM_SIM;
|
scard->sim_type = SCARD_GSM_SIM;
|
||||||
} else {
|
} else {
|
||||||
wpa_printf(MSG_DEBUG, "SCARD: USIM is supported");
|
wpa_printf(MSG_DEBUG, "SCARD: USIM is supported");
|
||||||
scard->sim_type = SCARD_USIM;
|
scard->sim_type = SCARD_USIM;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (scard->sim_type == SCARD_GSM_SIM) {
|
if (scard->sim_type == SCARD_GSM_SIM) {
|
||||||
blen = sizeof(buf);
|
blen = sizeof(buf);
|
||||||
|
|
|
@ -9,15 +9,8 @@
|
||||||
#ifndef PCSC_FUNCS_H
|
#ifndef PCSC_FUNCS_H
|
||||||
#define PCSC_FUNCS_H
|
#define PCSC_FUNCS_H
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
SCARD_GSM_SIM_ONLY,
|
|
||||||
SCARD_USIM_ONLY,
|
|
||||||
SCARD_TRY_BOTH
|
|
||||||
} scard_sim_type;
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef PCSC_FUNCS
|
#ifdef PCSC_FUNCS
|
||||||
struct scard_data * scard_init(scard_sim_type sim_type, const char *reader);
|
struct scard_data * scard_init(const char *reader);
|
||||||
void scard_deinit(struct scard_data *scard);
|
void scard_deinit(struct scard_data *scard);
|
||||||
|
|
||||||
int scard_set_pin(struct scard_data *scard, const char *pin);
|
int scard_set_pin(struct scard_data *scard, const char *pin);
|
||||||
|
@ -34,7 +27,7 @@ int scard_supports_umts(struct scard_data *scard);
|
||||||
|
|
||||||
#else /* PCSC_FUNCS */
|
#else /* PCSC_FUNCS */
|
||||||
|
|
||||||
#define scard_init(s, r) NULL
|
#define scard_init(r) NULL
|
||||||
#define scard_deinit(s) do { } while (0)
|
#define scard_deinit(s) do { } while (0)
|
||||||
#define scard_set_pin(s, p) -1
|
#define scard_set_pin(s, p) -1
|
||||||
#define scard_get_imsi(s, i, l) -1
|
#define scard_get_imsi(s, i, l) -1
|
||||||
|
|
|
@ -943,7 +943,7 @@ static int scard_test(void)
|
||||||
unsigned char aka_ik[IK_LEN];
|
unsigned char aka_ik[IK_LEN];
|
||||||
unsigned char aka_ck[CK_LEN];
|
unsigned char aka_ck[CK_LEN];
|
||||||
|
|
||||||
scard = scard_init(SCARD_TRY_BOTH, NULL);
|
scard = scard_init(NULL);
|
||||||
if (scard == NULL)
|
if (scard == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
if (scard_set_pin(scard, "1234")) {
|
if (scard_set_pin(scard, "1234")) {
|
||||||
|
@ -1043,7 +1043,7 @@ static int scard_get_triplets(int argc, char *argv[])
|
||||||
wpa_debug_level = 99;
|
wpa_debug_level = 99;
|
||||||
}
|
}
|
||||||
|
|
||||||
scard = scard_init(SCARD_GSM_SIM_ONLY, NULL);
|
scard = scard_init(NULL);
|
||||||
if (scard == NULL) {
|
if (scard == NULL) {
|
||||||
printf("Failed to open smartcard connection\n");
|
printf("Failed to open smartcard connection\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -314,8 +314,7 @@ int wpa_supplicant_scard_init(struct wpa_supplicant *wpa_s,
|
||||||
wpa_dbg(wpa_s, MSG_DEBUG, "Selected network is configured to use SIM "
|
wpa_dbg(wpa_s, MSG_DEBUG, "Selected network is configured to use SIM "
|
||||||
"(sim=%d aka=%d) - initialize PCSC", sim, aka);
|
"(sim=%d aka=%d) - initialize PCSC", sim, aka);
|
||||||
|
|
||||||
wpa_s->scard = scard_init((!sim && aka) ? SCARD_USIM_ONLY :
|
wpa_s->scard = scard_init(NULL);
|
||||||
SCARD_TRY_BOTH, NULL);
|
|
||||||
if (wpa_s->scard == NULL) {
|
if (wpa_s->scard == NULL) {
|
||||||
wpa_msg(wpa_s, MSG_WARNING, "Failed to initialize SIM "
|
wpa_msg(wpa_s, MSG_WARNING, "Failed to initialize SIM "
|
||||||
"(pcsc-lite)");
|
"(pcsc-lite)");
|
||||||
|
|
|
@ -2753,7 +2753,7 @@ static int pcsc_reader_init(struct wpa_supplicant *wpa_s)
|
||||||
if (!wpa_s->conf->pcsc_reader)
|
if (!wpa_s->conf->pcsc_reader)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
wpa_s->scard = scard_init(SCARD_TRY_BOTH, wpa_s->conf->pcsc_reader);
|
wpa_s->scard = scard_init(wpa_s->conf->pcsc_reader);
|
||||||
if (!wpa_s->scard)
|
if (!wpa_s->scard)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue