broadcom-wl: align wpa encryption value and cipher override format with hostapd.sh
authorJo-Philipp Wich <jow@openwrt.org>
Wed, 30 Jun 2010 21:02:53 +0000 (21:02 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Wed, 30 Jun 2010 21:02:53 +0000 (21:02 +0000)
SVN-Revision: 21997

package/broadcom-wl/files/lib/wifi/broadcom.sh

index ffe8d1dc5a3c4c87bea7e6c35f70ab278d60cd0b..e229217328e887244dce402e6dbbbfd6b37f6d2c 100644 (file)
@@ -192,7 +192,7 @@ enable_broadcom() {
                nasopts=
                config_get enc "$vif" encryption
                case "$enc" in
-                       *WEP*|*wep*)
+                       *wep*)
                                wsec_r=1
                                wsec=1
                                defkey=1
@@ -215,29 +215,48 @@ enable_broadcom() {
                                        *) append vif_do_up "wepkey =1,$key" "$N";;
                                esac
                        ;;
-                       *psk*|*PSK*)
+                       *psk*)
                                wsec_r=1
                                config_get key "$vif" key
+
+                               # psk version + default cipher
                                case "$enc" in
-                                       wpa*+wpa2*|WPA*+WPA2*|*psk+*psk2|*PSK+*PSK2) auth=132; wsec=6;;
-                                       wpa2*|WPA2*|*PSK2|*psk2) auth=128; wsec=4;;
-                                       *aes|*AES) auth=4; wsec=4;;
+                                       *mixed*|*psk+psk2*) auth=132; wsec=6;;
+                                       *psk2*) auth=128; wsec=4;;
                                        *) auth=4; wsec=2;;
                                esac
+
+                               # cipher override
+                               case "$enc" in
+                                       *tkip+aes*|*tkip+ccmp*|*aes+tkip*|*ccmp+tkip*) wsec=6;;
+                                       *aes*|*ccmp*) wsec=4;;
+                                       *tkip*) wsec=2;;
+                               esac
+
                                eval "${vif}_key=\"\$key\""
                                nasopts="-k \"\$${vif}_key\""
                        ;;
-                       *wpa*|*WPA*)
+                       *wpa*)
                                wsec_r=1
                                eap_r=1
                                config_get key "$vif" key
                                config_get server "$vif" server
                                config_get port "$vif" port
+
+                               # wpa version + default cipher
                                case "$enc" in
-                                       wpa*+wpa2*|WPA*+WPA2*) auth=66; wsec=6;;
-                                       wpa2*|WPA2*) auth=64; wsec=4;;
+                                       *mixed*|*wpa+wpa2*) auth=66; wsec=6;;
+                                       *wpa2*) auth=64; wsec=4;;
                                        *) auth=2; wsec=2;;
                                esac
+
+                               # cipher override
+                               case "$enc" in
+                                       *tkip+aes*|*tkip+ccmp*|*aes+tkip*|*ccmp+tkip*) wsec=6;;
+                                       *aes*|*ccmp*) wsec=4;;
+                                       *tkip*) wsec=2;;
+                               esac
+
                                eval "${vif}_key=\"\$key\""
                                nasopts="-r \"\$${vif}_key\" -h $server -p ${port:-1812}"
                        ;;