summaryrefslogtreecommitdiffstats
path: root/package/broadcom-wl/files/lib/wifi
diff options
context:
space:
mode:
Diffstat (limited to 'package/broadcom-wl/files/lib/wifi')
-rw-r--r--package/broadcom-wl/files/lib/wifi/broadcom.sh35
1 files changed, 27 insertions, 8 deletions
diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh
index ffe8d1dc5..e22921732 100644
--- a/package/broadcom-wl/files/lib/wifi/broadcom.sh
+++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh
@@ -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}"
;;