WPA on laptops running FreeBSD 5.3 (hacked a custom driver but
having trouble)
Sam Leffler
sam at errno.com
Wed Mar 9 09:37:50 PST 2005
Arvind Srinivasan wrote:
> I hacked a custom ndis driver to use WPA-PSK. The driver pretends to
> be WEP (so that I can continue to use the existing API's) but under
> the covers it actually calls the ndis wrapper with WPA OIDs instead of
> the WEP OIDs.
>
> The essential changes I made are a call to OID_802_11_ADD_KEY instead
> of OID_802_11_ADD_WEP, and NDIS_80211_WEPSTAT_ENC2ENABLED instead of
> NDIS_80211_WEPSTAT_ENABLED.
> All the changes are in if_ndis.c:ndis_setstate_80211.
I don't understand why didn't use the existing API's that work with
wpa_supplicant?
>
> I've tried two different cards: Linksys WPC54G and Dell WLAN 1350.
> Both cards associate fine, but do not get much further than that. I am
> unable to get an IP address from the NETGEAR router via DHCP, even
> though the link is up.
> Note that both cards work fine with the same router in Windows.....
>
> Is there anything else I need to do besides provide the right key and
> encryption method in ndis_setstate_80211?
Do your drivers implement a WPA supplicant in the kernel? If not you
need a supplicant to use WPA in station mode. wpa_supplicant is the
right program for this and to use it with FreeBSD you need to implement
ioctl's to get+set keys, set the optional information element with
negotiated WPA algorithms, and implement the scan results interface so
wpa_supplicant can identify WPA-capable AP's (and probably a couple of
other minor bits like enable the privacy bit and handle TKIP
countermeasures). I believe there are OID's that map to all these
mechanisms as I looked at the M$ spec when I designed the ioctls.
Sam
More information about the freebsd-mobile
mailing list