summaryrefslogtreecommitdiff
path: root/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.c
diff options
context:
space:
mode:
authorZachary Clark-Williams <zclarkw112@gmail.com>2022-08-10 15:32:11 -0700
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2023-01-10 21:31:29 +0000
commitfe405f08a09e9f2306c72aa23d8edfbcfaa23bff (patch)
tree3a0c764d1d31900d59083ba796b159d15456ee9c /NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.c
parentec54ce1f1ab41b92782b37ae59e752fff0ef9c41 (diff)
downloadedk2-fe405f08a09e9f2306c72aa23d8edfbcfaa23bff.zip
edk2-fe405f08a09e9f2306c72aa23d8edfbcfaa23bff.tar.gz
edk2-fe405f08a09e9f2306c72aa23d8edfbcfaa23bff.tar.bz2
NetworkPkg: Add WiFi profile sync protocol support
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3845 Enables KVM and One Click Recovery WLAN capability with WiFi Profile Sync feature and protocol. Adding WiFiProfileSyncProtocol, which supports the profilesync driver operations for transferring WiFi profiles from AMT to the Supplicant. WiFiConnectionManager will check for the WifiProfileSyncProtocol and if found will operate on the premise of a One Click Recovery, or KVM flow with a Wifi profile provided by AMT. Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com> Cc: Wu Jiaxin <jiaxin.wu@intel.com> Cc: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Signed-off-by: Zachary Clark-Williams <zachary.clark-williams@intel.com> Acked-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Diffstat (limited to 'NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.c')
-rw-r--r--NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.c b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.c
index 4ad5643..154f296 100644
--- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.c
+++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.c
@@ -672,10 +672,23 @@ WifiMgrCleanProfileSecrets (
IN WIFI_MGR_NETWORK_PROFILE *Profile
)
{
+ EFI_STATUS Status;
+ EDKII_WIFI_PROFILE_SYNC_PROTOCOL *WiFiProfileSyncProtocol;
+
ZeroMem (Profile->Password, sizeof (CHAR16) * PASSWORD_STORAGE_SIZE);
ZeroMem (Profile->EapPassword, sizeof (CHAR16) * PASSWORD_STORAGE_SIZE);
ZeroMem (Profile->PrivateKeyPassword, sizeof (CHAR16) * PASSWORD_STORAGE_SIZE);
+ //
+ // When EFI WiFi profile sync protocol is found the system is performing a recovery boot in secure
+ // boot mode. The profile sync driver will manage the CA certificate, client certificate, and key
+ // data, cleaning them at exit boot services.
+ //
+ Status = gBS->LocateProtocol (&gEdkiiWiFiProfileSyncProtocolGuid, NULL, (VOID **)&WiFiProfileSyncProtocol);
+ if (!EFI_ERROR (Status)) {
+ return;
+ }
+
if (Profile->CACertData != NULL) {
ZeroMem (Profile->CACertData, Profile->CACertSize);
FreePool (Profile->CACertData);