--wpa-mode="${line[4]}" \
--ssid="${line[5]}" \
--psk="${line[6]}" \
- --priority="${line[7]}"
+ --priority="${line[7]}" \
+ --auth-mode="${line[8]}" \
+ --anonymous-identity="${line[9]}" \
+ --identity="${line[10]}" \
+ --password="${line[11]}"
items=$(( ${items} + 1 ))
local config=${2}
shift 2
+ local ieee80211w
+ local anonymous_identity
local auth_alg
+ local auth_mode
+ local identity
local proto
local key_mgmt
local pairwise
local group
local mode
+ local password
local priority
local psk
local ssid
while [ $# -gt 0 ]; do
case "${1}" in
+ --anonymous-identity=*)
+ anonymous_identity=${1#--anonymous-identity=}
+ ;;
+ --auth-mode=*)
+ auth_mode=${1#--auth-mode=}
+ ;;
+ --identity=*)
+ identity=${1#--identity=}
+ ;;
--mode=*)
mode=${1#--mode=}
;;
+ --password=*)
+ password=${1#--password=}
+ ;;
--priority=*)
priority=${1#--priority=}
;;
done
case "${mode}" in
+ EAP)
+ key_mgmt="WPA-EAP-SHA256 WPA-EAP"
+ ;;
+ WPA3)
+ key_mgmt="SAE"
+
+ ieee80211w="2"
+ ;;
WPA2)
auth_alg="OPEN"
proto="RSN"
- key_mgmt="WPA-PSK"
+ key_mgmt="WPA-PSK-SHA256 WPA-PSK"
;;
WPA)
auth_alg="OPEN"
proto="WPA"
- key_mgmt="WPA-PSK"
+ key_mgmt="WPA-PSK-SHA256 WPA-PSK"
;;
WEP)
auth_alg="SHARED"
;;
esac
- if [ "${mode}" = "WPA" -o "${mode}" = "WPA2" ]; then
+ if [ "${mode}" = "EAP" -o "${mode}" = "WPA" -o "${mode}" = "WPA2" ]; then
case "${wpa_mode}" in
CCMP-CCMP)
pairwise="CCMP"
echo " key_mgmt=${key_mgmt}"
fi
if [ -n "${psk}" ]; then
- echo " psk=\"${psk}\""
+ if [ "${key_mgmt}" = "SAE" ]; then
+ echo " sae_password=\"${psk}\""
+ else
+ echo " psk=\"${psk}\""
+ fi
fi
if [ -n "${wep_tx_keyidx}" ]; then
echo " wep_tx_keyidx=${wep_tx_keyidx}"
if [ -n "${priority}" ]; then
echo " priority=${priority}"
fi
+ if [ -n "${ieee80211w}" ]; then
+ echo " ieee80211w=${ieee80211w}"
+ fi
+
+ # EAP
+ if [ "${mode}" = "EAP" ]; then
+ if [ -n "${auth_mode}" ]; then
+ echo " eap=${auth_mode}"
+ else
+ echo " eap=PEAP TTLS"
+ fi
+
+ if [ "${auth_mode}" = "TTLS" -a -n "${anonymous_identity}" ]; then
+ echo " anonymous_identity=\"${anonymous_identity}\""
+ fi
+
+ if [ -n "${identity}" -a -n "${password}" ]; then
+ echo " identity=\"${identity}\""
+ echo " password=\"${password}\""
+ fi
+ fi
echo "}"
echo
# Build wpa_supplicant command line.
local wpa_suppl_cmd="wpa_supplicant -B -qqq -i${device} -c${config}"
- if device_is_wireless ${device}; then
- wpa_suppl_cmd="${wpa_suppl_cmd} -Dwext"
- else
+ if ! device_is_wireless ${device}; then
wpa_suppl_cmd="${wpa_suppl_cmd} -Dwired"
fi