wireless client: Add support for WPA3

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
Michael Tremer
2021-01-06 14:43:12 +00:00
parent 0c2be650b0
commit 5addf34780
13 changed files with 73 additions and 4 deletions

View File

@@ -522,6 +522,7 @@ WARNING: translation string unused: open to all
WARNING: translation string unused: openvpn disabled
WARNING: translation string unused: openvpn enabled
WARNING: translation string unused: optional data
WARNING: translation string unused: options
WARNING: translation string unused: optionsfw portlist hint
WARNING: translation string unused: optionsfw warning
WARNING: translation string unused: or
@@ -885,6 +886,7 @@ WARNING: untranslated string: show tls-auth key = Show tls-auth key
WARNING: untranslated string: smb daemon = SMB Daemon
WARNING: untranslated string: user management = User Management
WARNING: untranslated string: winbind daemon = Winbind Daemon
WARNING: untranslated string: wlan client encryption wpa3 = WPA3
WARNING: untranslated string: wlanap 802.11w disabled = Disabled
WARNING: untranslated string: wlanap 802.11w enforced = Enforced
WARNING: untranslated string: wlanap 802.11w optional = Optional

View File

@@ -1367,7 +1367,6 @@ WARNING: untranslated string: openvpn server = OpenVPN server
WARNING: untranslated string: openvpn subnet is used = The given subnet is used by another OpenVPN server.
WARNING: untranslated string: optional = Optional
WARNING: untranslated string: optional at cmd = optional AT command
WARNING: untranslated string: options = Options
WARNING: untranslated string: options fw = Firewall Options
WARNING: untranslated string: orange = ORANGE
WARNING: untranslated string: organization cant be empty = Organization can't be empty.
@@ -1689,6 +1688,8 @@ WARNING: untranslated string: title = Title
WARNING: untranslated string: to = To
WARNING: untranslated string: toggle = pause/resume
WARNING: untranslated string: toggle enable disable = Enable or disable
WARNING: untranslated string: token = Token:
WARNING: untranslated string: token not set = No Token has been given.
WARNING: untranslated string: tone = Tone
WARNING: untranslated string: tone dial = Tone dial:
WARNING: untranslated string: tor = Tor
@@ -2128,6 +2129,7 @@ WARNING: untranslated string: wlan client encryption none = None
WARNING: untranslated string: wlan client encryption wep = WEP
WARNING: untranslated string: wlan client encryption wpa = WPA
WARNING: untranslated string: wlan client encryption wpa2 = WPA2
WARNING: untranslated string: wlan client encryption wpa3 = WPA3
WARNING: untranslated string: wlan client group cipher = Group cipher
WARNING: untranslated string: wlan client group key algorithm = GKA
WARNING: untranslated string: wlan client identity = Identity

View File

@@ -470,6 +470,7 @@ WARNING: translation string unused: online help en
WARNING: translation string unused: only red
WARNING: translation string unused: open to all
WARNING: translation string unused: optional data
WARNING: translation string unused: options
WARNING: translation string unused: optionsfw portlist hint
WARNING: translation string unused: optionsfw warning
WARNING: translation string unused: or
@@ -1387,6 +1388,8 @@ WARNING: untranslated string: taa zombieload2 = TSX Async Abort / ZombieLoad v2
WARNING: untranslated string: tcp more reliable = TCP (more reliable)
WARNING: untranslated string: ten minutes = 10 Minutes
WARNING: untranslated string: thirty minutes = 30 Minutes
WARNING: untranslated string: token = Token:
WARNING: untranslated string: token not set = No Token has been given.
WARNING: untranslated string: tor = Tor
WARNING: untranslated string: tor accounting = Accounting
WARNING: untranslated string: tor accounting bytes = Traffic (read/written)
@@ -1499,6 +1502,7 @@ WARNING: untranslated string: wlan client encryption none = None
WARNING: untranslated string: wlan client encryption wep = WEP
WARNING: untranslated string: wlan client encryption wpa = WPA
WARNING: untranslated string: wlan client encryption wpa2 = WPA2
WARNING: untranslated string: wlan client encryption wpa3 = WPA3
WARNING: untranslated string: wlan client group cipher = Group cipher
WARNING: untranslated string: wlan client group key algorithm = GKA
WARNING: untranslated string: wlan client identity = Identity

View File

@@ -553,6 +553,7 @@ WARNING: translation string unused: open to all
WARNING: translation string unused: openvpn disabled
WARNING: translation string unused: openvpn enabled
WARNING: translation string unused: optional data
WARNING: translation string unused: options
WARNING: translation string unused: optionsfw portlist hint
WARNING: translation string unused: optionsfw warning
WARNING: translation string unused: or
@@ -913,3 +914,6 @@ WARNING: untranslated string: pakfire ago = ago.
WARNING: untranslated string: route config changed = unknown string
WARNING: untranslated string: routing config added = unknown string
WARNING: untranslated string: routing config changed = unknown string
WARNING: untranslated string: token = Token:
WARNING: untranslated string: token not set = No Token has been given.
WARNING: untranslated string: wlan client encryption wpa3 = WPA3

View File

@@ -527,6 +527,7 @@ WARNING: translation string unused: open to all
WARNING: translation string unused: openvpn disabled
WARNING: translation string unused: openvpn enabled
WARNING: translation string unused: optional data
WARNING: translation string unused: options
WARNING: translation string unused: optionsfw portlist hint
WARNING: translation string unused: optionsfw warning
WARNING: translation string unused: or
@@ -1147,6 +1148,8 @@ WARNING: untranslated string: taa zombieload2 = TSX Async Abort / ZombieLoad v2
WARNING: untranslated string: tcp more reliable = TCP (more reliable)
WARNING: untranslated string: ten minutes = 10 Minutes
WARNING: untranslated string: thirty minutes = 30 Minutes
WARNING: untranslated string: token = Token:
WARNING: untranslated string: token not set = No Token has been given.
WARNING: untranslated string: tor guard country any = Any country
WARNING: untranslated string: tor guard nodes = Guard Nodes
WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
@@ -1190,6 +1193,7 @@ WARNING: untranslated string: wlan client eap authentication method = EAP Authen
WARNING: untranslated string: wlan client eap phase2 method = EAP Phase 2 Method
WARNING: untranslated string: wlan client eap state = EAP Status
WARNING: untranslated string: wlan client encryption eap = EAP
WARNING: untranslated string: wlan client encryption wpa3 = WPA3
WARNING: untranslated string: wlan client identity = Identity
WARNING: untranslated string: wlan client method = Method
WARNING: untranslated string: wlan client password = Password

View File

@@ -523,6 +523,7 @@ WARNING: translation string unused: open to all
WARNING: translation string unused: openvpn disabled
WARNING: translation string unused: openvpn enabled
WARNING: translation string unused: optional data
WARNING: translation string unused: options
WARNING: translation string unused: optionsfw portlist hint
WARNING: translation string unused: optionsfw warning
WARNING: translation string unused: or
@@ -1185,6 +1186,8 @@ WARNING: untranslated string: taa zombieload2 = TSX Async Abort / ZombieLoad v2
WARNING: untranslated string: tcp more reliable = TCP (more reliable)
WARNING: untranslated string: ten minutes = 10 Minutes
WARNING: untranslated string: thirty minutes = 30 Minutes
WARNING: untranslated string: token = Token:
WARNING: untranslated string: token not set = No Token has been given.
WARNING: untranslated string: tor guard country any = Any country
WARNING: untranslated string: tor guard nodes = Guard Nodes
WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
@@ -1230,6 +1233,7 @@ WARNING: untranslated string: wlan client eap authentication method = EAP Authen
WARNING: untranslated string: wlan client eap phase2 method = EAP Phase 2 Method
WARNING: untranslated string: wlan client eap state = EAP Status
WARNING: untranslated string: wlan client encryption eap = EAP
WARNING: untranslated string: wlan client encryption wpa3 = WPA3
WARNING: untranslated string: wlan client identity = Identity
WARNING: untranslated string: wlan client method = Method
WARNING: untranslated string: wlan client password = Password

View File

@@ -470,6 +470,7 @@ WARNING: translation string unused: online help en
WARNING: translation string unused: only red
WARNING: translation string unused: open to all
WARNING: translation string unused: optional data
WARNING: translation string unused: options
WARNING: translation string unused: optionsfw portlist hint
WARNING: translation string unused: optionsfw warning
WARNING: translation string unused: or
@@ -1387,6 +1388,8 @@ WARNING: untranslated string: taa zombieload2 = TSX Async Abort / ZombieLoad v2
WARNING: untranslated string: tcp more reliable = TCP (more reliable)
WARNING: untranslated string: ten minutes = 10 Minutes
WARNING: untranslated string: thirty minutes = 30 Minutes
WARNING: untranslated string: token = Token:
WARNING: untranslated string: token not set = No Token has been given.
WARNING: untranslated string: tor = Tor
WARNING: untranslated string: tor accounting = Accounting
WARNING: untranslated string: tor accounting bytes = Traffic (read/written)
@@ -1499,6 +1502,7 @@ WARNING: untranslated string: wlan client encryption none = None
WARNING: untranslated string: wlan client encryption wep = WEP
WARNING: untranslated string: wlan client encryption wpa = WPA
WARNING: untranslated string: wlan client encryption wpa2 = WPA2
WARNING: untranslated string: wlan client encryption wpa3 = WPA3
WARNING: untranslated string: wlan client group cipher = Group cipher
WARNING: untranslated string: wlan client group key algorithm = GKA
WARNING: untranslated string: wlan client identity = Identity

View File

@@ -461,6 +461,7 @@ WARNING: translation string unused: online help en
WARNING: translation string unused: only red
WARNING: translation string unused: open to all
WARNING: translation string unused: optional data
WARNING: translation string unused: options
WARNING: translation string unused: optionsfw portlist hint
WARNING: translation string unused: optionsfw warning
WARNING: translation string unused: or
@@ -1380,6 +1381,8 @@ WARNING: untranslated string: taa zombieload2 = TSX Async Abort / ZombieLoad v2
WARNING: untranslated string: tcp more reliable = TCP (more reliable)
WARNING: untranslated string: ten minutes = 10 Minutes
WARNING: untranslated string: thirty minutes = 30 Minutes
WARNING: untranslated string: token = Token:
WARNING: untranslated string: token not set = No Token has been given.
WARNING: untranslated string: tor = Tor
WARNING: untranslated string: tor accounting = Accounting
WARNING: untranslated string: tor accounting bytes = Traffic (read/written)
@@ -1492,6 +1495,7 @@ WARNING: untranslated string: wlan client encryption none = None
WARNING: untranslated string: wlan client encryption wep = WEP
WARNING: untranslated string: wlan client encryption wpa = WPA
WARNING: untranslated string: wlan client encryption wpa2 = WPA2
WARNING: untranslated string: wlan client encryption wpa3 = WPA3
WARNING: untranslated string: wlan client group cipher = Group cipher
WARNING: untranslated string: wlan client group key algorithm = GKA
WARNING: untranslated string: wlan client identity = Identity

View File

@@ -555,6 +555,7 @@ WARNING: translation string unused: open to all
WARNING: translation string unused: openvpn disabled
WARNING: translation string unused: openvpn enabled
WARNING: translation string unused: optional data
WARNING: translation string unused: options
WARNING: translation string unused: optionsfw portlist hint
WARNING: translation string unused: optionsfw warning
WARNING: translation string unused: or
@@ -1047,6 +1048,8 @@ WARNING: untranslated string: strict = Strict
WARNING: untranslated string: subnet mask = Subnet Mask
WARNING: untranslated string: system is offline = The system is offline.
WARNING: untranslated string: taa zombieload2 = TSX Async Abort / ZombieLoad v2
WARNING: untranslated string: token = Token:
WARNING: untranslated string: token not set = No Token has been given.
WARNING: untranslated string: tor guard country any = Any country
WARNING: untranslated string: tor guard nodes = Guard Nodes
WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
@@ -1061,6 +1064,7 @@ WARNING: untranslated string: vulnerability = Vulnerability
WARNING: untranslated string: vulnerable = Vulnerable
WARNING: untranslated string: whois results from = WHOIS results from
WARNING: untranslated string: winbind daemon = Winbind Daemon
WARNING: untranslated string: wlan client encryption wpa3 = WPA3
WARNING: untranslated string: wlanap 802.11w disabled = Disabled
WARNING: untranslated string: wlanap 802.11w enforced = Enforced
WARNING: untranslated string: wlanap 802.11w optional = Optional

View File

@@ -64,6 +64,7 @@
< wlanap 802.11w disabled
< wlanap 802.11w enforced
< wlanap 802.11w optional
< wlan client encryption wpa3
############################################################################
# Checking cgi-bin translations for language: es #
############################################################################
@@ -782,6 +783,8 @@
< ten minutes
< teovpn_fragment
< thirty minutes
< token
< token not set
< tor
< tor 0 = disabled
< tor accounting
@@ -919,6 +922,7 @@
< wlan client encryption wep
< wlan client encryption wpa
< wlan client encryption wpa2
< wlan client encryption wpa3
< wlan client group cipher
< wlan client group key algorithm
< wlan client identity
@@ -966,7 +970,10 @@
< dhcp valid range required when deny known clients checked
< g.dtm
< g.lite
< token
< token not set
< upload fcdsl.o
< wlan client encryption wpa3
############################################################################
# Checking cgi-bin translations for language: it #
############################################################################
@@ -1272,6 +1279,8 @@
< tcp more reliable
< ten minutes
< thirty minutes
< token
< token not set
< tor guard country
< tor guard country any
< tor guard nodes
@@ -1328,6 +1337,7 @@
< wlan client eap phase2 method
< wlan client eap state
< wlan client encryption eap
< wlan client encryption wpa3
< wlan client identity
< wlan client method
< wlan client password
@@ -1705,6 +1715,8 @@
< ten minutes
< teovpn_fragment
< thirty minutes
< token
< token not set
< tor guard country
< tor guard country any
< tor guard nodes
@@ -1763,6 +1775,7 @@
< wlan client eap phase2 method
< wlan client eap state
< wlan client encryption eap
< wlan client encryption wpa3
< wlan client identity
< wlan client method
< wlan client password
@@ -2486,6 +2499,8 @@
< ten minutes
< teovpn_fragment
< thirty minutes
< token
< token not set
< tor
< tor 0 = disabled
< tor accounting
@@ -2623,6 +2638,7 @@
< wlan client encryption wep
< wlan client encryption wpa
< wlan client encryption wpa2
< wlan client encryption wpa3
< wlan client group cipher
< wlan client group key algorithm
< wlan client identity
@@ -3368,6 +3384,8 @@
< ten minutes
< teovpn_fragment
< thirty minutes
< token
< token not set
< tor
< tor 0 = disabled
< tor accounting
@@ -3506,6 +3524,7 @@
< wlan client encryption wep
< wlan client encryption wpa
< wlan client encryption wpa2
< wlan client encryption wpa3
< wlan client group cipher
< wlan client group key algorithm
< wlan client identity
@@ -3691,6 +3710,8 @@
< subnet mask
< system is offline
< taa zombieload2
< token
< token not set
< tor guard country
< tor guard country any
< tor guard nodes
@@ -3716,6 +3737,7 @@
< wlanap neighbor scan
< wlanap neighbor scan warning
< wlanap ssid
< wlan client encryption wpa3
< working
< zoneconf access native
< zoneconf access none

View File

@@ -462,6 +462,7 @@ sub showEditBox() {
my %selected = ();
$selected{'ENCRYPTION'} = ();
$selected{'ENCRYPTION'}{'NONE'} = '';
$selected{'ENCRYPTION'}{'WPA3'} = '';
$selected{'ENCRYPTION'}{'WPA2'} = '';
$selected{'ENCRYPTION'}{'WPA'} = '';
$selected{'ENCRYPTION'}{'WEP'} = '';
@@ -505,9 +506,10 @@ sub showEditBox() {
<select name='ENCRYPTION'>
<option value="NONE" $selected{'ENCRYPTION'}{'NONE'}>$Lang::tr{'wlan client encryption none'}</option>
<option value="EAP" $selected{'ENCRYPTION'}{'EAP'}>$Lang::tr{'wlan client encryption eap'}</option>
<option value="WPA3" $selected{'ENCRYPTION'}{'WPA3'}>$Lang::tr{'wlan client encryption wpa3'}</option>
<option value="WPA2" $selected{'ENCRYPTION'}{'WPA2'}>$Lang::tr{'wlan client encryption wpa2'}</option>
<option value="WPA" $selected{'ENCRYPTION'}{'WPA'}>$Lang::tr{'wlan client encryption wpa'}</option>
<option value="WEP" $selected{'ENCRYPTION'}{'WEP'}>$Lang::tr{'wlan client encryption wep'}</option>
<option value="WEP" $selected{'ENCRYPTION'}{'WEP'}>$Lang::tr{'wlan client encryption wep'}</option>
</select>
</td>
<td colspan="2" width='40%'></td>
@@ -839,7 +841,6 @@ sub ValidateInput($) {
# Check for invalid key length.
} elsif (ValidKeyLength($settings{'ENCRYPTION'}, $settings{'PSK'})) {
return "$Lang::tr{'wlan client invalid key length'}";
}
# Reset WPA mode, if WPA(2) is not selected.

View File

@@ -2951,6 +2951,7 @@
'wlan client encryption wep' => 'WEP',
'wlan client encryption wpa' => 'WPA',
'wlan client encryption wpa2' => 'WPA2',
'wlan client encryption wpa3' => 'WPA3',
'wlan client group cipher' => 'Group cipher',
'wlan client group key algorithm' => 'GKA',
'wlan client identity' => 'Identity',

View File

@@ -86,6 +86,7 @@ function wpa_supplicant_config_line() {
local config=${2}
shift 2
local ieee80211w
local anonymous_identity
local auth_alg
local auth_mode
@@ -144,6 +145,11 @@ function wpa_supplicant_config_line() {
EAP)
key_mgmt="WPA-EAP"
;;
WPA3)
key_mgmt="SAE"
ieee80211w="2"
;;
WPA2)
auth_alg="OPEN"
proto="RSN"
@@ -209,7 +215,11 @@ function wpa_supplicant_config_line() {
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}"
@@ -227,6 +237,9 @@ function wpa_supplicant_config_line() {
if [ -n "${priority}" ]; then
echo " priority=${priority}"
fi
if [ -n "${ieee80211w}" ]; then
echo " ieee80211w=${ieee80211w}"
fi
# EAP
if [ "${mode}" = "EAP" ]; then