Search Linux Wireless

Re: WEP and enc restricted

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

 



On Sun, 2008-09-14 at 17:44 +0200, Ortwin Glück wrote:
> Hi,
> 
> I am pretty sure that the mac80211 code doesn't handle WEP with shared keys 
> correctly. Using the ath9k driver on my MacBook I am unable to put the driver 
> into restricted mode (shared key). It stays in open mode. That is the following 
> command has no effect: iwconfig wlan0 enc restricted. I can also confirm this 
> when looking at the authentication packets that go over the air: they are sent 
> with the open flag, and not the shared key flag.

It looks like ieee80211_rx_mgmt_auth() in mlme.c should be cycling
through the various auth methods when it gets an "auth not supported"
response from the AP.  I wonder why that's not working in your case.
Can you put some printks in there and see if that code gets triggered
and if not, poke around a bit to see why?

> Surprisingly nowhere in the mac80211 code the ifsta->auth_alg is set to 
> WLAN_AUTH_SHARED_KEY so far. The attached small patch does just that. I am not 
> 100% sure if that's the way to do it, so please review carefully.

It looks like it does get set from the SIWAUTH handler if you pass in
the right auth algs bits; but you're correct in that SIWENCODE won't set
the auth alg.  The patch seems to be correct.

However, the submission format needs a few things: the signed-off-by
line, and the patch should be inlined rather than attached to make for
easier review.  Please see here:

http://linux.yyz.us/patch-format.html

Thanks!
Dan

> With this patch authentication works. The AP now denies association, but that is 
> another problem.
> 
> Cheers
> 
> Ortwin
> plain text document attachment (patch.diff)
> --- wext.c.orig	2008-07-21 22:18:29.000000000 +0200
> +++ wext.c	2008-09-14 16:46:09.000000000 +0200
> @@ -929,6 +929,14 @@
>  	else
>  		idx--;
>  
> +	if (sdata->vif.type == IEEE80211_IF_TYPE_STA) {
> +		struct ieee80211_if_sta *ifsta = &sdata->u.sta;
> +		if (erq->flags & IW_ENCODE_OPEN)
> +			ifsta->auth_alg = WLAN_AUTH_OPEN;
> +		else if (erq->flags & IW_ENCODE_RESTRICTED)
> +			ifsta->auth_alg = WLAN_AUTH_SHARED_KEY;
> +	}
> +
>  	if (erq->flags & IW_ENCODE_DISABLED)
>  		remove = 1;
>  	else if (erq->length == 0) {

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux