From b0de760f6ce4427e8a04215e35f94350c719a3fc Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 27 Aug 2024 09:29:31 +0200 Subject: [PATCH] Add Wireless OCV support --- .../resources/view/network/wireless.js | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js b/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js index 4c2daf588..69200e35a 100644 --- a/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js +++ b/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js @@ -1237,6 +1237,9 @@ return view.extend({ o.depends('encryption', 'psk-mixed'); o.value('auto', _('auto')); o.value('ccmp', _('Force CCMP (AES)')); + o.value('ccmp256', _('Force CCMP-256 (AES)')); + o.value('gcmp', _('Force GCMP (AES)')); + o.value('gcmp256', _('Force GCMP-256 (AES)')); o.value('tkip', _('Force TKIP')); o.value('tkip+ccmp', _('Force TKIP and CCMP (AES)')); o.write = ss.children.filter(function(o) { return o.option == 'encryption' })[0].write; @@ -1806,6 +1809,27 @@ return view.extend({ o.placeholder = '201'; o.rmempty = true; + if (L.hasSystemFeature('hostapd', 'ocv') || L.hasSystemFeature('wpasupplicant', 'ocv')) { + o = ss.taboption('encryption', form.ListValue, 'ocv', _('Operating Channel Validation'), _("Note: Workaround mode allows a STA that claims OCV capability to connect even if the STA doesn't send OCI or negotiate PMF.")); + o.value('0', _('Disabled')); + o.value('1', _('Enabled')); + o.value('2', _('Enabled (workaround mode)')); + o.default = '0'; + o.depends('ieee80211w', '1'); + o.depends('ieee80211w', '2'); + + o.validate = function(section_id, value) { + var modeopt = this.section.children.filter(function(o) { return o.option == 'mode' })[0], + modeval = modeopt.formvalue(section_id); + + if ((value == '2') && ((modeval == 'sta') || (modeval == 'sta-wds'))) { + return _('Workaround mode can only be used when acting as an access point.'); + } + + return true; + } + } + o = ss.taboption('encryption', form.Flag, 'wpa_disable_eapol_key_retries', _('Enable key reinstallation (KRACK) countermeasures'), _('Complicates key reinstallation attacks on the client side by disabling retransmission of EAPOL-Key frames that are used to install keys. This workaround might cause interoperability issues and reduced robustness of key negotiation especially in environments with heavy traffic load.')); add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk2', 'psk-mixed', 'sae', 'sae-mixed', 'wpa2', 'wpa3', 'wpa3-mixed'] });