|
|
@@ -3,46 +3,9 @@
|
|
|
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, })
|
|
|
@@ -53,10 +16,17 @@ export function parse_encryption(config) {
|
|
|
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':
|
|
|
@@ -65,10 +35,12 @@ export function parse_encryption(config) {
|
|
|
|
|
|
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':
|
|
|
@@ -77,11 +49,13 @@ export function parse_encryption(config) {
|
|
|
|
|
|
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':
|
|
|
@@ -90,6 +64,42 @@ export function parse_encryption(config) {
|
|
|
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) {
|