WPA status 2006-01-08



This will be likely be the last WPA-related status update email, which
means that the job is mostly done :)

Major Changes since Jan 3rd
-------------------------------

1) Starting from example code from Kay Sievers (thanks!), I've written
the supplicant manager code.  Instead of writing a config file, we
connect to the supplicant's control sockets.  It's cleaner this way.

2) WPA-related options have been enabled in the Gnome applet

3) Minor WPA-related bugs have been fixed in both the Gnome applet and
NetworkManager itself


What's left to be done?
-------------------------------

1) Bug fixes

2) Whack drivers into shape

That's about it.  If you've got a relatively recent wpa_supplicant (say,
from the last couple weeks or so), and you've got a WPA-capable card &
driver (see below *), you should be set for WPA Personal (WPA1)
Preshared-Key connections.  I've tested them, and it works.

I'd like to clean things up, get stuff working reliably, then move on to
adding WPA2-PSK/CCMP connections (ie, using AES).  After than, we start
doing 802.1x authentication, RADIUS, and possibly LEAP.  Oh, and
Bluetooth DUN, now that I have a Bluetooth phone.

Cheers,
Dan


*) Your driver probably doesn't support WPA quite enough; you'll need a
driver that does WEXT-18 or higher.  This means that it needs to set the
enc_capa bits on return from the SIOCGIWRANGE call, which only hostap
seems to do right now.

The attached patch works for ipw2100, but only because it can already do
WPA.  It was simply not telling NM that it could.  Other drivers may
need substantial changes to work with WEXT-18's enhanced encryption API.
Drivers that _may_ work with few changes: ipw2100, ipw2200, atmel,
prism54.  Drivers that need lots of fixup: orinoco, airo, bcm43xx.

--- ipw2100.c.nowpa	2006-01-08 14:04:00.000000000 -0500
+++ ipw2100.c	2006-01-08 15:47:37.000000000 -0500
@@ -7236,7 +7236,7 @@
 
 	/* Set the Wireless Extension versions */
 	range->we_version_compiled = WIRELESS_EXT;
-	range->we_version_source = 16;
+	range->we_version_source = 18;
 
 //      range->retry_capa;      /* What retry options are supported */
 //      range->retry_flags;     /* How to decode max/min retry limit */
@@ -7262,6 +7262,11 @@
 	}
 	range->num_frequency = val;
 
+#if WIRELESS_EXT > 17
+	range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 |
+		IW_ENC_CAPA_CIPHER_TKIP | IW_ENC_CAPA_CIPHER_CCMP;
+#endif /* WIRELESS_EXT > 17 */
+
 	IPW_DEBUG_WX("GET Range\n");
 
 	return 0;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]