import { append_value, log } from 'wifi.common';
import * as fs from 'fs';
-export function parse_encryption(config) {
+export function parse_encryption(config, dev_config) {
let encryption = split(config.encryption, '+', 2);
- config.wpa_pairwise = (config.hw_mode == 'ad') ? 'GCMP' : 'CCMP';
-
- switch(encryption[1]){
- case 'tkip+aes':
- case 'tkip+ccmp':
- case 'aes+tkip':
- case 'ccmp+tkip':
- config.wpa_pairwise = 'CCMP TKIP';
- break;
-
- case 'ccmp256':
- config.wpa_pairwise = 'CCMP-256';
- break;
-
- case 'aes':
- case 'ccmp':
- config.wpa_pairwise = 'CCMP';
- break;
-
- case 'tkip':
- config.wpa_pairwise = 'TKIP';
- break;
-
- case 'gcmp256':
- config.wpa_pairwise = 'GCMP-256';
- break;
-
- case 'gcmp':
- config.wpa_pairwise = 'GCMP';
- break;
-
- default:
- if (config.encryption == 'wpa3-192')
- config.wpa_pairwise = 'GCMP-256';
- break;
- }
-
config.wpa = 0;
for (let k, v in { 'wpa2*': 2, 'wpa3*': 2, '*psk2*': 2, 'psk3*': 2, 'sae*': 2,
'owe*': 2, 'wpa*mixed*': 3, '*psk*mixed*': 3, 'wpa*': 1, '*psk*': 1, })
if (!config.wpa)
config.wpa_pairwise = null;
+ config.wpa_pairwise = (config.hw_mode == 'ad') ? 'GCMP' : 'CCMP';
config.auth_type = encryption[0] ?? 'none';
+
+ let wpa3_pairwise = config.wpa_pairwise;
+ if (wildcard(dev_config?.htmode, 'EHT*') || wildcard(dev_config?.htmode, 'HE*'))
+ wpa3_pairwise = 'GCMP-256 ' + wpa3_pairwise;
+
switch(config.auth_type) {
case 'owe':
config.auth_type = 'owe';
+ config.wpa_pairwise = wpa3_pairwise;
break;
case 'wpa3-192':
case 'wpa3-mixed':
config.auth_type = 'eap-eap2';
+ config.wpa_pairwise = wpa3_pairwise;
break;
case 'wpa3':
config.auth_type = 'eap2';
+ config.wpa_pairwise = wpa3_pairwise;
break;
case 'psk-mixed':
case 'psk3':
config.auth_type = 'sae';
+ config.wpa_pairwise = wpa3_pairwise;
break;
case 'psk3-mixed':
case 'sae-mixed':
config.auth_type = 'psk-sae';
+ config.wpa_pairwise = wpa3_pairwise;
break;
case 'wpa':
config.auth_type = 'eap';
break;
}
+
+ switch(encryption[1]){
+ case 'tkip+aes':
+ case 'tkip+ccmp':
+ case 'aes+tkip':
+ case 'ccmp+tkip':
+ config.wpa_pairwise = 'CCMP TKIP';
+ break;
+
+ case 'ccmp256':
+ config.wpa_pairwise = 'CCMP-256';
+ break;
+
+ case 'aes':
+ case 'ccmp':
+ config.wpa_pairwise = 'CCMP';
+ break;
+
+ case 'tkip':
+ config.wpa_pairwise = 'TKIP';
+ break;
+
+ case 'gcmp256':
+ config.wpa_pairwise = 'GCMP-256';
+ break;
+
+ case 'gcmp':
+ config.wpa_pairwise = 'GCMP';
+ break;
+
+ default:
+ if (config.encryption == 'wpa3-192')
+ config.wpa_pairwise = 'GCMP-256';
+ break;
+ }
+
};
export function wpa_key_mgmt(config) {