Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wifi: support WPA2 and WPA3 Personal simultaneously #404

Merged
merged 1 commit into from Aug 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 7 additions & 1 deletion src/networkd.c
Expand Up @@ -1042,7 +1042,13 @@ append_wpa_auth_conf(GString* s, const NetplanAuthenticationSettings* auth, cons
break;

case NETPLAN_AUTH_KEY_MANAGEMENT_WPA_PSK:
g_string_append(s, " key_mgmt=WPA-PSK\n");
if (auth->pmf_mode == NETPLAN_AUTH_PMF_MODE_OPTIONAL)
/* Case where the user only provided the password.
* We enable support for WPA2 and WPA3 personal.
*/
g_string_append(s, " key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE\n");
else
g_string_append(s, " key_mgmt=WPA-PSK\n");
break;

case NETPLAN_AUTH_KEY_MANAGEMENT_WPA_EAP:
Expand Down
1 change: 1 addition & 0 deletions src/parse.c
Expand Up @@ -1039,6 +1039,7 @@ handle_access_point_password(NetplanParser* npp, yaml_node_t* node, __unused con
/* shortcut for WPA-PSK */
access_point->has_auth = TRUE;
access_point->auth.key_management = NETPLAN_AUTH_KEY_MANAGEMENT_WPA_PSK;
access_point->auth.pmf_mode = NETPLAN_AUTH_PMF_MODE_OPTIONAL;
g_free(access_point->auth.password);
access_point->auth.password = g_strdup(scalar(node));
return TRUE;
Expand Down
7 changes: 5 additions & 2 deletions tests/generator/test_auth.py
Expand Up @@ -107,7 +107,8 @@ def test_auth_wifi_detailed(self):
self.assertIn('''
network={
ssid="BobsHome"
key_mgmt=WPA-PSK
key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
ieee80211w=1
psk=e03ce667c87bc81ca968d9120ca37f89eb09aec3c55b80386e5d772efd6b926e
}
''', new_config)
Expand Down Expand Up @@ -170,7 +171,8 @@ def test_auth_wifi_detailed(self):
self.assertIn('''
network={
ssid="Joe's Home"
key_mgmt=WPA-PSK
key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
ieee80211w=1
psk="s0s3kr1t"
}
''', new_config)
Expand Down Expand Up @@ -303,6 +305,7 @@ def test_auth_wifi_detailed(self):

[wifi-security]
key-mgmt=wpa-psk
pmf=2
psk=s0s3kr1t
''',
'wl0-Luke%27s%20Home': '''[connection]
Expand Down
23 changes: 17 additions & 6 deletions tests/generator/test_wifis.py
Expand Up @@ -101,14 +101,16 @@ def test_wifi(self):
network={
ssid="hidden-y"
scan_ssid=1
key_mgmt=WPA-PSK
key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
ieee80211w=1
psk="0bscur1ty"
}
''', new_config)
self.assertIn('''
network={
ssid="hidden-n"
key_mgmt=WPA-PSK
key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
ieee80211w=1
psk="5ecur1ty"
}
''', new_config)
Expand All @@ -117,7 +119,8 @@ def test_wifi(self):
ssid="workplace"
bssid=de:ad:be:ef:ca:fe
freq_list=5500
key_mgmt=WPA-PSK
key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
ieee80211w=1
psk="c0mpany1"
}
''', new_config)
Expand All @@ -126,7 +129,8 @@ def test_wifi(self):
ssid="Joe's Home"
bssid=00:11:22:33:44:55
freq_list=2462
key_mgmt=WPA-PSK
key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
ieee80211w=1
psk="s0s3kr1t"
}
''', new_config)
Expand Down Expand Up @@ -481,6 +485,7 @@ def test_wifi_default(self):

[wifi-security]
key-mgmt=wpa-psk
pmf=2
psk=s0s3kr1t
''',
'wl0-workplace': '''[connection]
Expand All @@ -503,6 +508,7 @@ def test_wifi_default(self):

[wifi-security]
key-mgmt=wpa-psk
pmf=2
psk=c0mpany1
''',
'wl0-hidden-y': '''[connection]
Expand All @@ -523,6 +529,7 @@ def test_wifi_default(self):

[wifi-security]
key-mgmt=wpa-psk
pmf=2
psk=0bscur1ty
''',
'wl0-hidden-n': '''[connection]
Expand All @@ -542,6 +549,7 @@ def test_wifi_default(self):

[wifi-security]
key-mgmt=wpa-psk
pmf=2
psk=5ecur1ty
''',
'wl0-channel-no-band': '''[connection]
Expand Down Expand Up @@ -660,6 +668,7 @@ def test_wifi_ap(self):

[wifi-security]
key-mgmt=wpa-psk
pmf=2
psk=s0s3cret
'''})
self.assert_networkd({})
Expand Down Expand Up @@ -709,7 +718,8 @@ def test_wifi_adhoc_wpa_24ghz(self):
ssid="homenet"
frequency=2442
mode=1
key_mgmt=WPA-PSK
key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
ieee80211w=1
psk="********"
}
""")
Expand All @@ -732,7 +742,8 @@ def test_wifi_adhoc_wpa_5ghz(self):
ssid="homenet"
frequency=5035
mode=1
key_mgmt=WPA-PSK
key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
ieee80211w=1
psk="********"
}
""")
Expand Down