diff options
author | Martin Willi <martin@strongswan.org> | 2009-10-09 10:59:34 +0200 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-10-09 13:02:20 +0200 |
commit | 5d5e2853b6edde364bad4d49a44adbe2a1584dfc (patch) | |
tree | 1d9aa6d86c9abd50cdf6f86cc898d2da9578b5fc /src/charon/plugins/eap_sim/eap_sim.c | |
parent | 31f5280cee50200993644cb25f0996abef51823c (diff) | |
download | strongswan-5d5e2853b6edde364bad4d49a44adbe2a1584dfc.tar.bz2 strongswan-5d5e2853b6edde364bad4d49a44adbe2a1584dfc.tar.xz |
SIM card interface takes IMSI as parameter (same as in USIM)
Diffstat (limited to 'src/charon/plugins/eap_sim/eap_sim.c')
-rw-r--r-- | src/charon/plugins/eap_sim/eap_sim.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/charon/plugins/eap_sim/eap_sim.c b/src/charon/plugins/eap_sim/eap_sim.c index c83f051fb..874328db1 100644 --- a/src/charon/plugins/eap_sim/eap_sim.c +++ b/src/charon/plugins/eap_sim/eap_sim.c @@ -576,30 +576,22 @@ static bool get_card_triplet(private_eap_sim_t *this, char *rand, char *sres, char *kc) { enumerator_t *enumerator; - sim_card_t *card = NULL, *current; - id_match_t match, best = ID_MATCH_NONE; + sim_card_t *card; bool success = FALSE; - /* find the best matching SIM */ enumerator = charon->sim->create_card_enumerator(charon->sim); - while (enumerator->enumerate(enumerator, ¤t)) + while (enumerator->enumerate(enumerator, &card)) { - match = this->peer->matches(this->peer, current->get_imsi(current)); - if (match > best) + if (card->get_triplet(card, this->peer, rand, sres, kc)) { - card = current; - best = match; + success = TRUE; break; } } - if (card) - { - success = card->get_triplet(card, rand, sres, kc); - } enumerator->destroy(enumerator); - if (!card) + if (!success) { - DBG1(DBG_IKE, "no SIM card found matching '%Y'", this->peer); + DBG1(DBG_IKE, "no SIM card found with triplets for '%Y'", this->peer); } return success; } |