Skip to content

Commit

Permalink
luci-mod-network: Add wireless.encryption.ppsk option
Browse files Browse the repository at this point in the history
- `wireless.encryption.ppsk` option is `form.Flag` option that enables hostapd Private Pre-Shared Key (PPSK) feature.
- Private Pre-Shared Key (PPSK) is a hostapd feature that allows use of different Pre-Shared Key for each STA MAC address. Private PSKs is stored on RADIUS server.
- Private PSK feature is available starting from openwrt/openwrt@d12eb10 (PR openwrt/openwrt#3509).

Commit fixes issues found in openwrt#4513 and was verified to work on openwrt/luci@2145121 / openwrt/openwrt@c8934099bf

Signed-off-by: Alexander Georgievskiy <galeksandrp@gmail.com>
  • Loading branch information
galeksandrp committed Apr 8, 2023
1 parent 2145121 commit 6f25784
Showing 1 changed file with 11 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1400,19 +1400,25 @@ return view.extend({
}


o = ss.taboption('encryption', form.Flag, 'ppsk', _('Enable Private PSK (PPSK)'), _('Private Pre-Shared Key (PPSK) is a hostapd feature that allows use of different Pre-Shared Key for each STA MAC address. Private PSKs is stored on RADIUS server.'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk', 'psk2', 'psk+psk2', 'psk-mixed'] });

o = ss.taboption('encryption', form.Value, 'auth_server', _('RADIUS Authentication Server'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk', 'psk2', 'psk+psk2', 'psk-mixed'], ppsk: ['1'] });
o.rmempty = true;
o.datatype = 'host(0)';

o = ss.taboption('encryption', form.Value, 'auth_port', _('RADIUS Authentication Port'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk', 'psk2', 'psk+psk2', 'psk-mixed'], ppsk: ['1'] });
o.rmempty = true;
o.datatype = 'port';
o.placeholder = '1812';

o = ss.taboption('encryption', form.Value, 'auth_secret', _('RADIUS Authentication Secret'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk', 'psk2', 'psk+psk2', 'psk-mixed'], ppsk: ['1'] });
o.rmempty = true;
o.password = true;

Expand All @@ -1435,6 +1441,7 @@ return view.extend({
/* extra RADIUS settings start */
o = ss.taboption('encryption', form.ListValue, 'dynamic_vlan', _('RADIUS Dynamic VLAN Assignment'), _('Required: Rejects auth if RADIUS server does not provide appropriate VLAN attributes.'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk', 'psk2', 'psk+psk2', 'psk-mixed'], ppsk: ['1'] });
o.value('0', _('Disabled'));
o.value('1', _('Optional'));
o.value('2', _('Required'));
Expand All @@ -1448,9 +1455,11 @@ return view.extend({
//hostapd internally defaults to vlan_naming=1 even with dynamic VLAN off
o = ss.taboption('encryption', form.Flag, 'vlan_naming', _('RADIUS VLAN Naming'), _('Off: <code>vlanXXX</code>, e.g., <code>vlan1</code>. On: <code>vlan_tagged_interface.XXX</code>, e.g. <code>eth0.1</code>.'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk', 'psk2', 'psk+psk2', 'psk-mixed'], ppsk: ['1'] });

o = ss.taboption('encryption', widgets.DeviceSelect, 'vlan_tagged_interface', _('RADIUS VLAN Tagged Interface'), _('E.g. eth0, eth1'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk', 'psk2', 'psk+psk2', 'psk-mixed'], ppsk: ['1'] });
o.size = 1;
o.rmempty = true;
o.multiple = false;
Expand All @@ -1461,6 +1470,7 @@ return view.extend({

o = ss.taboption('encryption', form.Value, 'vlan_bridge', _('RADIUS VLAN Bridge Naming Scheme'), _('E.g. <code>br-vlan</code> or <code>brvlan</code>.'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk', 'psk2', 'psk+psk2', 'psk-mixed'], ppsk: ['1'] });
o.rmempty = true;
/* extra RADIUS settings end */

Expand All @@ -1486,10 +1496,7 @@ return view.extend({


o = ss.taboption('encryption', form.Value, '_wpa_key', _('Key'));
o.depends('encryption', 'psk');
o.depends('encryption', 'psk2');
o.depends('encryption', 'psk+psk2');
o.depends('encryption', 'psk-mixed');
add_dependency_permutations(o, { encryption: ['psk', 'psk2', 'psk+psk2', 'psk-mixed'], ppsk: ['0'] });
o.depends('encryption', 'sae');
o.depends('encryption', 'sae-mixed');
o.datatype = 'wpakey';
Expand Down

0 comments on commit 6f25784

Please sign in to comment.