Skip to content

Commit 3d105cd

Browse files
[feature] Added wpa3-personal for 802.11s mesh #254
Closes #254 Co-authored-by: Federico Capoano <f.capoano@openwisp.io>
1 parent 517b2bc commit 3d105cd

2 files changed

Lines changed: 51 additions & 0 deletions

File tree

netjsonconfig/schema.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@
399399
"propertyOrder": 20,
400400
"oneOf": [
401401
{"$ref": "#/definitions/encryption_none"},
402+
{"$ref": "#/definitions/encryption_wpa3_personal"},
402403
{"$ref": "#/definitions/encryption_wpa_personal"},
403404
{"$ref": "#/definitions/encryption_wep"},
404405
],

tests/openwrt/test_encryption.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,6 +1041,56 @@ def test_parse_wpa2_80211s(self):
10411041
o = OpenWrt(native=self._wpa2_80211s_uci)
10421042
self.assertEqual(o.config, self._wpa2_80211s_netjson)
10431043

1044+
_wpa3_80211s_netjson = {
1045+
"interfaces": [
1046+
{
1047+
"name": "mesh0",
1048+
"type": "wireless",
1049+
"wireless": {
1050+
"radio": "radio0",
1051+
"mode": "802.11s",
1052+
"mesh_id": "encrypted-mesh",
1053+
"encryption": {
1054+
"protocol": "wpa3_personal",
1055+
"cipher": "ccmp",
1056+
"key": "passphrase012345",
1057+
"ieee80211w": "2",
1058+
},
1059+
},
1060+
}
1061+
]
1062+
}
1063+
_wpa3_80211s_uci = """package network
1064+
1065+
config device 'device_mesh0'
1066+
option name 'mesh0'
1067+
1068+
config interface 'mesh0'
1069+
option device 'mesh0'
1070+
option proto 'none'
1071+
1072+
package wireless
1073+
1074+
config wifi-iface 'wifi_mesh0'
1075+
option device 'radio0'
1076+
option encryption 'sae+ccmp'
1077+
option ieee80211w '2'
1078+
option ifname 'mesh0'
1079+
option key 'passphrase012345'
1080+
option mesh_id 'encrypted-mesh'
1081+
option mode 'mesh'
1082+
option network 'mesh0'
1083+
"""
1084+
1085+
def test_render_wpa3_80211s(self):
1086+
o = OpenWrt(self._wpa3_80211s_netjson)
1087+
expected = self._tabs(self._wpa3_80211s_uci)
1088+
self.assertEqual(o.render(), expected)
1089+
1090+
def test_parse_wpa3_80211s(self):
1091+
o = OpenWrt(native=self._wpa3_80211s_uci)
1092+
self.assertEqual(o.config, self._wpa3_80211s_netjson)
1093+
10441094
_wpa2_adhoc_netjson = {
10451095
"interfaces": [
10461096
{

0 commit comments

Comments
 (0)