wpa_supplicant: add WEP key handling to conform with documented behaviour in mac80211.sh (#6493)

SVN-Revision: 19119
This commit is contained in:
Jo-Philipp Wich 2010-01-13 19:31:47 +00:00
parent cb30b52ec1
commit 1b452e82b7

View File

@ -12,12 +12,33 @@ wpa_supplicant_setup_vif() {
}
case "$enc" in
*wep*)
key_mgmt='NONE'
config_get key "$vif" key
key="${key:-1}"
case "$key" in
[1234])
for idx in 1 2 3 4; do
local zidx
zidx=$(($idx - 1))
config_get ckey "$vif" "key${idx}"
if [ -n "$ckey" ] && \
append "wep_key${zidx}" "wep_key${zidx}=$(prepare_key_wep "$ckey")"
done
wep_tx_keyidx="wep_tx_keyidx=$((key - 1))"
;;
*)
wep_key0="wep_key0=$(prepare_key_wep "$key")"
wep_tx_keyidx="wep_tx_keyidx=0"
;;
esac
;;
*psk*)
key_mgmt='WPA-PSK'
config_get_bool usepassphrase "$vif" passphrase 1
case "$enc" in
*psk2*)
proto='RSN'
proto='proto=RSN'
if [ "$usepassphrase" = "1" ]; then
passphrase="psk=\"${key}\""
else
@ -25,7 +46,7 @@ wpa_supplicant_setup_vif() {
fi
;;
*psk*)
proto='WPA'
proto='proto=WPA'
if [ "$usepassphrase" = "1" ]; then
passphrase="psk=\"${key}\""
else
@ -35,7 +56,7 @@ wpa_supplicant_setup_vif() {
esac
;;
*wpa*|*8021x*)
proto='WPA2'
proto='proto=WPA2'
key_mgmt='WPA-EAP'
config_get ca_cert "$vif" ca_cert
ca_cert=${ca_cert:+"ca_cert=\"$ca_cert\""}
@ -72,7 +93,7 @@ network={
ssid="$ssid"
$bssid
key_mgmt=$key_mgmt
proto=$proto
$proto
$passphrase
$pairwise
$group
@ -83,7 +104,13 @@ network={
$phase2
$identity
$password
$wep_key0
$wep_key1
$wep_key2
$wep_key3
$wep_tx_keyidx
}
EOF
[ -z "$proto" ] || wpa_supplicant ${bridge:+ -b $bridge} -B -P "/var/run/wifi-${ifname}.pid" -D ${driver:-wext} -i "$ifname" -c /var/run/wpa_supplicant-$ifname.conf
[ -z "$proto" -a "$key_mgmt" != "NONE" ] ||
wpa_supplicant ${bridge:+ -b $bridge} -B -P "/var/run/wifi-${ifname}.pid" -D ${driver:-wext} -i "$ifname" -c /var/run/wpa_supplicant-$ifname.conf
}