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

Arvind Srinivasan arvind1 at gmail.com
Wed Mar 9 20:32:32 PST 2005


>From what I read, the 4-way handshake for WPA-PSK is the
responsibility of the NDIS driver, and after that the link should be
up? Would this approach work if I only want WPA-PSK?
Thanks.

On Wed, 09 Mar 2005 14:19:57 -0800, Arvind Srinivasan <arvind at celar.us> wrote:
> 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
> >
> >
> 
> _______________________________________________
> freebsd-mobile at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
> To unsubscribe, send any mail to "freebsd-mobile-unsubscribe at freebsd.org"
>


More information about the freebsd-mobile mailing list