The recommended way to enable WPA1/TKIP support is:
  ifconfig iwm0 wpaprotos wpa1,wpa2

pirofti@ noticed that 'ifconfig iwm0 wpaprotos wpa1,wpa2' is not enough
to connect to a WPA1-only AP. A list of pairwise ciphers must also be
provided: "ifconfig iwm0 wpaciphers tkip,ccmp"

Because I forgot to enable pairwise TKIP if WPA1 is enabled and no
specific ciphers are provided. Fix below.

ok?

Index: ieee80211_ioctl.c
===================================================================
RCS file: /cvs/src/sys/net80211/ieee80211_ioctl.c,v
retrieving revision 1.47
diff -u -p -r1.47 ieee80211_ioctl.c
--- ieee80211_ioctl.c   31 Dec 2016 17:51:44 -0000      1.47
+++ ieee80211_ioctl.c   17 Jan 2017 19:56:15 -0000
@@ -305,8 +305,11 @@ ieee80211_ioctl_setwpaparms(struct ieee8
                ic->ic_rsnciphers |= IEEE80211_CIPHER_CCMP;
        if (wpa->i_ciphers & IEEE80211_WPA_CIPHER_USEGROUP)
                ic->ic_rsnciphers = IEEE80211_CIPHER_USEGROUP;
-       if (ic->ic_rsnciphers == 0)     /* set to default (CCMP) */
+       if (ic->ic_rsnciphers == 0) { /* set to default (CCMP, TKIP if WPA1) */
                ic->ic_rsnciphers = IEEE80211_CIPHER_CCMP;
+               if (ic->ic_rsnprotos & IEEE80211_PROTO_WPA)
+                       ic->ic_rsnciphers |= IEEE80211_CIPHER_TKIP;
+       }
 
        ic->ic_flags |= IEEE80211_F_RSNON;
 

Reply via email to