From owner-freebsd-mobile@FreeBSD.ORG Wed Mar 9 22:20:04 2005 Return-Path: Delivered-To: freebsd-mobile@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 892F916A4CE for ; Wed, 9 Mar 2005 22:20:04 +0000 (GMT) Received: from smtp800.mail.sc5.yahoo.com (smtp800.mail.sc5.yahoo.com [66.163.168.179]) by mx1.FreeBSD.org (Postfix) with SMTP id 29DFB43D55 for ; Wed, 9 Mar 2005 22:20:04 +0000 (GMT) (envelope-from arvind@celar.us) Received: from unknown (HELO ?127.0.0.1?) (arvind.srinivasan@sbcglobal.net@64.172.61.211 with plain) by smtp800.mail.sc5.yahoo.com with SMTP; 9 Mar 2005 22:20:01 -0000 Message-ID: <422F768D.50203@celar.us> Date: Wed, 09 Mar 2005 14:19:57 -0800 From: Arvind Srinivasan User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Sam Leffler References: <422F34CF.4020206@errno.com> In-Reply-To: <422F34CF.4020206@errno.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-mobile@freebsd.org Subject: Re: WPA on laptops running FreeBSD 5.3 (hacked a custom driver but having trouble) X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Mar 2005 22:20:04 -0000 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 > >