wpa_supplicant: problems with EAP-SIM

Jouni Malinen jkmaline at cc.hut.fi
Sun Jan 29 22:59:16 EST 2006


On Thu, Jan 26, 2006 at 04:08:04PM +0000, Pete Young wrote:

> OK, I've tried it again with a couple of different SIMs, making sure
> that the PIN was correct in each case. The debug log is included
> below.

OK, I found the issue. PC/SC interface was being initialized only when
processing scan results and this does not happen with wired
authentication (ap_scan=0) or when using driver to select the AP
(ap_scan=2). This is now fixed in CVS (both devel 0.5 branch and stable
0.4 branch). I was able to complete wired authentication with EAP-SIM
successfully after this fix. The attached patch file shows the needed
addition to events.c.

-- 
Jouni Malinen                                            PGP id EFC895FA
-------------- next part --------------
Index: ChangeLog
===================================================================
RCS file: /home/jm/cvsroot/hostap/wpa_supplicant/ChangeLog,v
retrieving revision 1.230.2.9
diff -u -p -u -p -r1.230.2.9 ChangeLog
--- ChangeLog	30 Jan 2006 02:51:27 -0000	1.230.2.9
+++ ChangeLog	30 Jan 2006 03:54:44 -0000
@@ -22,6 +22,9 @@ ChangeLog for wpa_supplicant
 	  to disable TLS library for normal authentication
 	* fixed PMKSA cache processing not to trigger deauthentication if the
 	  current PMKSA cache entry is replaced with a valid new entry
+	* fixed PC/SC initialization for ap_scan != 1 modes (this fixes
+	  EAP-SIM and EAP-AKA with real SIM/USIM card when using ap_scan=0 or
+	  ap_scan=2)
 
 2005-11-20 - v0.4.7 (beginning of 0.4.x stable releases)
 	* l2_packet_pcap: fixed wired IEEE 802.1X authentication with libpcap
Index: events.c
===================================================================
RCS file: /home/jm/cvsroot/hostap/wpa_supplicant/events.c,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 events.c
--- events.c	20 Nov 2005 20:03:43 -0000	1.14
+++ events.c	30 Jan 2006 03:54:13 -0000
@@ -545,6 +545,13 @@ static void wpa_supplicant_event_assoc(s
 	}
 
 	wpa_msg(wpa_s, MSG_INFO, "Associated with " MACSTR, MAC2STR(bssid));
+	if (wpa_s->current_ssid) {
+		/* When using scanning (ap_scan=1), SIM PC/SC interface can be
+		 * initialized before association, but for other modes,
+		 * initialize PC/SC here, if the current configuration needs
+		 * smartcard or SIM/USIM. */
+		wpa_supplicant_scard_init(wpa_s, wpa_s->current_ssid);
+	}
 	wpa_sm_notify_assoc(wpa_s->wpa, bssid);
 	l2_packet_notify_auth_start(wpa_s->l2);
 


More information about the HostAP mailing list