Re: [edk2-devel] [PATCH] NetworkPkg: Add Wi-Fi Wpa3 support in WifiConnectManager
Reviewed-by: Maciej Rabeda On 24 cze 2022 09:59, Heng Luo wrote: https://bugzilla.tianocore.org/show_bug.cgi?id=3961 Add below Wpa3 support: WPA3-Personal: Ieee80211AkmSuiteSAE= 8 WPA3-Enterprise: Ieee80211AkmSuite8021XSuiteB= 11 Ieee80211AkmSuite8021XSuiteB192 = 12 Wi-Fi CERTIFIED Enhanced Open: Ieee80211AkmSuiteOWE= 18 Cc: Maciej Rabeda Cc: Fu Siyuan Cc: Wu Jiaxin Signed-off-by: Heng Luo --- .../WifiConnectionManagerDxe.vfr | 8 +- .../WifiConnectionMgrConfigNVDataStruct.h | 8 +- .../WifiConnectionMgrDxe.h| 18 - .../WifiConnectionMgrHiiConfigAccess.c| 37 ++--- .../WifiConnectionMgrImpl.c | 4 +- .../WifiConnectionMgrMisc.c | 77 --- 6 files changed, 119 insertions(+), 33 deletions(-) diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr index b0ef187535..704f2b6a54 100644 --- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr +++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr @@ -1,7 +1,7 @@ /** @file Vfr files used in WiFi Connection Manager. - Copyright (c) 2019, Intel Corporation. All rights reserved. + Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -121,7 +121,8 @@ formset text = STRING_TOKEN(STR_SECURITY_TYPE); // TextTwo -suppressif NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA2_PERSONAL; +suppressif NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA2_PERSONAL + AND NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA3_PERSONAL; password varid= WIFI_MANAGER_IFR_NVDATA.Password, prompt = STRING_TOKEN(STR_PASSWORD), help = STRING_TOKEN(STR_PASSWORD_HELP), @@ -132,7 +133,8 @@ formset endpassword; endif; -suppressif NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA2_ENTERPRISE; +suppressif NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA2_ENTERPRISE + AND NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA3_ENTERPRISE; oneof varid = WIFI_MANAGER_IFR_NVDATA.EapAuthMethod, questionid = KEY_EAP_AUTH_METHOD_CONNECT_NETWORK, diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrConfigNVDataStruct.h b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrConfigNVDataStruct.h index 69878bc457..b5518a74d8 100644 --- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrConfigNVDataStruct.h +++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrConfigNVDataStruct.h @@ -1,7 +1,7 @@ /** @file Define IFR NVData structures used by the WiFi Connection Manager. - Copyright (c) 2019, Intel Corporation. All rights reserved. + Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -119,8 +119,10 @@ #define SECURITY_TYPE_WPA_PERSONAL 3 #define SECURITY_TYPE_WPA2_PERSONAL4 #define SECURITY_TYPE_WEP 5 -#define SECURITY_TYPE_UNKNOWN 6 -#define SECURITY_TYPE_MAX 7 +#define SECURITY_TYPE_WPA3_PERSONAL6 +#define SECURITY_TYPE_WPA3_ENTERPRISE 7 +#define SECURITY_TYPE_UNKNOWN 8 +#define SECURITY_TYPE_MAX 9 #define EAP_AUTH_METHOD_TTLS 0 #define EAP_AUTH_METHOD_PEAP 1 diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h index c3c70b2752..7b2e41e155 100644 --- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h +++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h @@ -1,7 +1,7 @@ /** @file The miscellaneous structure definitions for WiFi connection driver. - Copyright (c) 2019, Intel Corporation. All rights reserved. + Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -82,6 +82,8 @@ typedef enum { Ieee80211PairwiseCipherSuiteCCMP= 4, Ieee80211PairwiseCipherSuiteWEP104 = 5, Ieee80211PairwiseCipherSuiteBIP = 6, + Ieee80211PairwiseCipherSuiteGCMP= 8, + Ieee80211PairwiseCipherSuiteGCMP256 = 9, // ... } IEEE_80211_PAIRWISE_CIPHER_SUITE; @@ -91,19 +93,29 @@ typedef enum { #define IEEE_80211_PAIRWISE_CIPHER_SUITE_CCMP (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteCCMP << 24)) #define IEEE_80211_PAIRWISE_CIPHER_SUITE_WEP104 (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteWEP104 << 24)) #define IEEE_80211_PAIRWISE_CIPHER_SUITE_BIP
[edk2-devel] [PATCH] NetworkPkg: Add Wi-Fi Wpa3 support in WifiConnectManager
https://bugzilla.tianocore.org/show_bug.cgi?id=3961 Add below Wpa3 support: WPA3-Personal: Ieee80211AkmSuiteSAE= 8 WPA3-Enterprise: Ieee80211AkmSuite8021XSuiteB= 11 Ieee80211AkmSuite8021XSuiteB192 = 12 Wi-Fi CERTIFIED Enhanced Open: Ieee80211AkmSuiteOWE= 18 Cc: Maciej Rabeda Cc: Fu Siyuan Cc: Wu Jiaxin Signed-off-by: Heng Luo --- .../WifiConnectionManagerDxe.vfr | 8 +- .../WifiConnectionMgrConfigNVDataStruct.h | 8 +- .../WifiConnectionMgrDxe.h| 18 - .../WifiConnectionMgrHiiConfigAccess.c| 37 ++--- .../WifiConnectionMgrImpl.c | 4 +- .../WifiConnectionMgrMisc.c | 77 --- 6 files changed, 119 insertions(+), 33 deletions(-) diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr index b0ef187535..704f2b6a54 100644 --- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr +++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr @@ -1,7 +1,7 @@ /** @file Vfr files used in WiFi Connection Manager. - Copyright (c) 2019, Intel Corporation. All rights reserved. + Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -121,7 +121,8 @@ formset text = STRING_TOKEN(STR_SECURITY_TYPE); // TextTwo -suppressif NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA2_PERSONAL; +suppressif NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA2_PERSONAL + AND NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA3_PERSONAL; password varid= WIFI_MANAGER_IFR_NVDATA.Password, prompt = STRING_TOKEN(STR_PASSWORD), help = STRING_TOKEN(STR_PASSWORD_HELP), @@ -132,7 +133,8 @@ formset endpassword; endif; -suppressif NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA2_ENTERPRISE; +suppressif NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA2_ENTERPRISE + AND NOT ideqval WIFI_MANAGER_IFR_NVDATA.SecurityType == SECURITY_TYPE_WPA3_ENTERPRISE; oneof varid = WIFI_MANAGER_IFR_NVDATA.EapAuthMethod, questionid = KEY_EAP_AUTH_METHOD_CONNECT_NETWORK, diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrConfigNVDataStruct.h b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrConfigNVDataStruct.h index 69878bc457..b5518a74d8 100644 --- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrConfigNVDataStruct.h +++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrConfigNVDataStruct.h @@ -1,7 +1,7 @@ /** @file Define IFR NVData structures used by the WiFi Connection Manager. - Copyright (c) 2019, Intel Corporation. All rights reserved. + Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -119,8 +119,10 @@ #define SECURITY_TYPE_WPA_PERSONAL 3 #define SECURITY_TYPE_WPA2_PERSONAL4 #define SECURITY_TYPE_WEP 5 -#define SECURITY_TYPE_UNKNOWN 6 -#define SECURITY_TYPE_MAX 7 +#define SECURITY_TYPE_WPA3_PERSONAL6 +#define SECURITY_TYPE_WPA3_ENTERPRISE 7 +#define SECURITY_TYPE_UNKNOWN 8 +#define SECURITY_TYPE_MAX 9 #define EAP_AUTH_METHOD_TTLS 0 #define EAP_AUTH_METHOD_PEAP 1 diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h index c3c70b2752..7b2e41e155 100644 --- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h +++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h @@ -1,7 +1,7 @@ /** @file The miscellaneous structure definitions for WiFi connection driver. - Copyright (c) 2019, Intel Corporation. All rights reserved. + Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -82,6 +82,8 @@ typedef enum { Ieee80211PairwiseCipherSuiteCCMP= 4, Ieee80211PairwiseCipherSuiteWEP104 = 5, Ieee80211PairwiseCipherSuiteBIP = 6, + Ieee80211PairwiseCipherSuiteGCMP= 8, + Ieee80211PairwiseCipherSuiteGCMP256 = 9, // ... } IEEE_80211_PAIRWISE_CIPHER_SUITE; @@ -91,19 +93,29 @@ typedef enum { #define IEEE_80211_PAIRWISE_CIPHER_SUITE_CCMP (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteCCMP << 24)) #define IEEE_80211_PAIRWISE_CIPHER_SUITE_WEP104 (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteWEP104 << 24)) #define IEEE_80211_PAIRWISE_CIPHER_SUITE_BIP(OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteBIP << 24)) +#define IEEE_80211_PAIRWISE_CIPHER_SUITE_GCMP (OUI_IEEE_80211I |