Skip to content

Commit 75577ec

Browse files
committed
Simplify wpa key management, ieee80211w settings
1 parent c77fc25 commit 75577ec

File tree

1 file changed

+18
-33
lines changed

1 file changed

+18
-33
lines changed

src/RaspAP/Networking/Hotspot/HostapdManager.php

Lines changed: 18 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -150,42 +150,28 @@ public function buildConfig(array $params, StatusMessage $status): string
150150
$config[] = 'ctrl_interface_group=0';
151151
$config[] = 'auth_algs=1';
152152

153-
$mappings = getDefaultNetValue('hostapd', 'mappings', 'all') ?? [];
154-
155-
$wpa = isset($params['wpa']) ? $params['wpa'] : 'none';
156-
157-
$ieee80211w = null;
158-
if (isset($params['80211w']) && $params['80211w'] !== '') {
159-
$ieee80211w = (string)$params['80211w'];
160-
} elseif (!empty($mappings['ieee80211w_wpa']) && isset($mappings['ieee80211w_wpa'][(string)$wpaCode])) {
161-
$ieee80211w = (string)$mappings['ieee80211w_wpa'][(string)$wpaCode];
153+
$wpa = $params['wpa'];
154+
$wpa_key_mgmt = 'WPA-PSK';
155+
156+
if ($wpa == 4) {
157+
$config[] = 'ieee80211w=1';
158+
$wpa_key_mgmt = 'WPA-PSK WPA-PSK-SHA256 SAE';
159+
$wpa = 2;
160+
} elseif ($wpa == 5) {
161+
$config[] = 'ieee80211w=2';
162+
$wpa_key_mgmt = 'SAE';
163+
$wpa = 2;
162164
}
163165

164-
if ($ieee80211w !== null && $ieee80211w !== '' && $ieee80211w !== '0') {
165-
$config[] = 'ieee80211w=' . $ieee80211w;
166-
}
167-
168-
$wpa_key_mgmt = null;
169-
if (!empty($params['wpa_key_mgmt'])) {
170-
$wpa_key_mgmt = $params['wpa_key_mgmt'];
171-
} elseif (!empty($mappings['wpa_key_mgmt']) && isset($mappings['wpa_key_mgmt'][(string)$wpaCode])) {
172-
$wpa_key_mgmt = $mappings['wpa_key_mgmt'][(string)$wpaCode];
173-
} elseif ($wpaCode !== 'none') {
174-
// fallback sensible default
166+
if ($params['80211w'] == 1) {
167+
$config[] = 'ieee80211w=1';
175168
$wpa_key_mgmt = 'WPA-PSK';
169+
} elseif ($params['80211w'] == 2) {
170+
$config[] = 'ieee80211w=2';
171+
$wpa_key_mgmt = 'WPA-PSK-SHA256';
176172
}
177173

178-
if ($wpa_key_mgmt !== null) {
179-
$config[] = 'wpa_key_mgmt=' . $wpa_key_mgmt;
180-
}
181-
182-
$wpa_numeric = $wpa;
183-
if (!empty($mappings['wpa_numeric']) && isset($mappings['wpa_numeric'][(string)$wpa])) {
184-
$wpa_numeric = (int)$mappings['wpa_numeric'][(string)$wpa];
185-
} else {
186-
// ensure int or none
187-
$wpa_numeric = ($wpa === 'none') ? 'none' : (int)$wpa;
188-
}
174+
$config[] = 'wpa_key_mgmt=' . $wpa_key_mgmt;
189175

190176
if (!empty($params['beacon_interval'])) {
191177
$config[] = 'beacon_int=' . intval($params['beacon_interval']);
@@ -201,7 +187,6 @@ public function buildConfig(array $params, StatusMessage $status): string
201187

202188
// choose VHT segment index (fallback only if required)
203189
$vht_freq_idx = ($params['channel'] < RASPI_5GHZ_CHANNEL_MIN) ? 42 : 155;
204-
205190
$hwMode = isset($params['hw_mode']) ? $params['hw_mode'] : '';
206191

207192
// fetch settings for selected mode
@@ -231,7 +216,7 @@ public function buildConfig(array $params, StatusMessage $status): string
231216
$config[] = 'interface=' . $params['interface'];
232217
}
233218

234-
$config[] = 'wpa=' . $wpa_numeric;
219+
$config[] = 'wpa=' . $wpa;
235220
$config[] = 'wpa_pairwise=' . ($params['wpa_pairwise'] ?? '');
236221
$config[] = 'country_code=' . ($params['country_code'] ?? '');
237222
$config[] = 'ignore_broadcast_ssid=' . ($params['hiddenSSID'] ?? 0);

0 commit comments

Comments
 (0)