WPA on laptops running FreeBSD 5.3 (hacked a custom driver but having trouble)

Arvind Srinivasan arvind at celar.us
Wed Mar 9 14:20:04 PST 2005


Sam:
I implemented it in if_ndis in the kernel because I wanted to get it 
going in 5.3 for just NDIS and WPA without having to require that a 
supplicant be running - to emulate the behavior of the utilities under 
Windows.
The setting of keys is working, as well as association with SSIDs that 
are known to be running WPA. The privacy bit is also working. I did not 
implement anything relating to TKIP countermeasures, which may be why I 
am unable to exchange any packets subsequently.
Is there way to debug what's going on when I try dhclient on the interface?
Thanks.

Sam Leffler wrote:

> 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