diff options
Diffstat (limited to 'src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.h')
-rw-r--r-- | src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.h | 262 |
1 files changed, 262 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.h b/src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.h new file mode 100644 index 00000000..88d6a7ff --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.h @@ -0,0 +1,262 @@ +/** @file + The Miscellaneous Routines for WiFi Connection Manager. + + Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef __EFI_WIFI_MGR_MISC_H__ +#define __EFI_WIFI_MGR_MISC_H__ + +/** + Empty function for event process function. + + @param[in] Event The Event needs to be processed + @param[in] Context The context of the event + +**/ +VOID +EFIAPI +WifiMgrInternalEmptyFunction ( + IN EFI_EVENT Event, + IN VOID *Context + ); + +/** + Convert the mac address into a hexadecimal encoded ":" seperated string. + + @param[in] Mac The mac address + @param[in] StrSize The size, in bytes, of the output buffer specified by Str + @param[out] Str The storage to return the mac string + +**/ +VOID +WifiMgrMacAddrToStr ( + IN EFI_80211_MAC_ADDRESS *Mac, + IN UINT32 StrSize, + OUT CHAR16 *Str + ); + +/** + Read private key file to buffer. + + @param[in] FileContext The file context of private key file. + @param[out] PrivateKeyDataAddr The buffer address to restore private key file, should be + freed by caller. + @param[out] PrivateKeyDataSize The size of read private key file. + + @retval EFI_SUCCESS Successfully read the private key file. + @retval EFI_INVALID_PARAMETER One or more of the parameters is invalid. + +**/ +EFI_STATUS +WifiMgrReadFileToBuffer ( + IN WIFI_MGR_FILE_CONTEXT *FileContext, + OUT VOID **PrivateKeyDataAddr, + OUT UINTN *PrivateKeyDataSize + ); + + +/** + Get the Nic data by the NicIndex. + + @param[in] Private The pointer to the global private data structure. + @param[in] NicIndex The index indicates the position of wireless NIC. + + @return Pointer to the Nic data, or NULL if not found. + +**/ +WIFI_MGR_DEVICE_DATA * +WifiMgrGetNicByIndex ( + IN WIFI_MGR_PRIVATE_DATA *Private, + IN UINT32 NicIndex + ); + +/** + Find a network profile through its' SSId and securit type, and the SSId is an unicode string. + + @param[in] SSId The target network's SSId. + @param[in] SecurityType The target network's security type. + @param[in] ProfileList The profile list on a Nic. + + @return Pointer to a network profile, or NULL if not found. + +**/ +WIFI_MGR_NETWORK_PROFILE * +WifiMgrGetProfileByUnicodeSSId ( + IN CHAR16 *SSId, + IN UINT8 SecurityType, + IN LIST_ENTRY *ProfileList + ); + +/** + Find a network profile through its' SSId and securit type, and the SSId is an ascii string. + + @param[in] SSId The target network's SSId. + @param[in] SecurityType The target network's security type. + @param[in] ProfileList The profile list on a Nic. + + @return Pointer to a network profile, or NULL if not found. + +**/ +WIFI_MGR_NETWORK_PROFILE * +WifiMgrGetProfileByAsciiSSId ( + IN CHAR8 *SSId, + IN UINT8 SecurityType, + IN LIST_ENTRY *ProfileList + ); + +/** + Find a network profile through its' profile index. + + @param[in] ProfileIndex The target network's profile index. + @param[in] ProfileList The profile list on a Nic. + + @return Pointer to a network profile, or NULL if not found. + +**/ +WIFI_MGR_NETWORK_PROFILE * +WifiMgrGetProfileByProfileIndex ( + IN UINT32 ProfileIndex, + IN LIST_ENTRY *ProfileList + ); + +/** + To test if the AKMSuite is in supported AKMSuite list. + + @param[in] SupportedAKMSuiteCount The count of the supported AKMSuites. + @param[in] SupportedAKMSuiteList The supported AKMSuite list. + @param[in] AKMSuite The AKMSuite to be tested. + + @return True if this AKMSuite is supported, or False if not. + +**/ +BOOLEAN +WifiMgrSupportAKMSuite ( + IN UINT16 SupportedAKMSuiteCount, + IN UINT32 *SupportedAKMSuiteList, + IN UINT32 *AKMSuite + ); + +/** + To check if the CipherSuite is in supported CipherSuite list. + + @param[in] SupportedCipherSuiteCount The count of the supported CipherSuites. + @param[in] SupportedCipherSuiteList The supported CipherSuite list. + @param[in] CipherSuite The CipherSuite to be tested. + + @return True if this CipherSuite is supported, or False if not. + +**/ +BOOLEAN +WifiMgrSupportCipherSuite ( + IN UINT16 SupportedCipherSuiteCount, + IN UINT32 *SupportedCipherSuiteList, + IN UINT32 *CipherSuite + ); + +/** + Check an AKM suite list and a Cipher suite list to see if one or more AKM suites or Cipher suites + are supported and find the matchable security type. + + @param[in] AKMList The target AKM suite list to be checked. + @param[in] CipherList The target Cipher suite list to be checked + @param[in] Nic The Nic to operate, contains the supported AKMSuite list + and supported CipherSuite list + @param[out] SecurityType To identify a security type from the AKM suite list and + Cipher suite list + @param[out] AKMSuiteSupported To identify if this security type is supported. If it is + NULL, overcome this field + @param[out] CipherSuiteSupported To identify if this security type is supported. If it is + NULL, overcome this field + + @retval EFI_SUCCESS This operation has completed successfully. + @retval EFI_INVALID_PARAMETER No Nic found or the suite list is null. + +**/ +EFI_STATUS +WifiMgrCheckRSN ( + IN EFI_80211_AKM_SUITE_SELECTOR *AKMList, + IN EFI_80211_CIPHER_SUITE_SELECTOR *CipherList, + IN WIFI_MGR_DEVICE_DATA *Nic, + OUT UINT8 *SecurityType, + OUT BOOLEAN *AKMSuiteSupported, + OUT BOOLEAN *CipherSuiteSupported + ); + +/** + To get the security type for a certain AKMSuite and CipherSuite. + + @param[in] AKMSuite An certain AKMSuite. + @param[in] CipherSuite An certain CipherSuite. + + @return a security type if found, or SECURITY_TYPE_UNKNOWN. + +**/ +UINT8 +WifiMgrGetSecurityType ( + IN UINT32 *AKMSuite, + IN UINT32 *CipherSuite + ); + +/** + Get supported AKMSuites and CipherSuites from supplicant. + + @param[in] Nic The Nic to operate. + + @retval EFI_SUCCESS Get the supported suite list successfully. + @retval EFI_INVALID_PARAMETER No Nic found or supplicant is NULL. + +**/ +EFI_STATUS +WifiMgrGetSupportedSuites ( + IN WIFI_MGR_DEVICE_DATA *Nic + ); + +/** + Clean secrets from a network profile. + + @param[in] Profile The profile to be cleanned. + +**/ +VOID +WifiMgrCleanProfileSecrets ( + IN WIFI_MGR_NETWORK_PROFILE *Profile + ); + +/** + Free all network profiles in a profile list. + + @param[in] ProfileList The profile list to be freed. + +**/ +VOID +WifiMgrFreeProfileList ( + IN LIST_ENTRY *ProfileList + ); + +/** + Free user configured hidden network list. + + @param[in] HiddenList The hidden network list to be freed. + +**/ +VOID +WifiMgrFreeHiddenList ( + IN LIST_ENTRY *HiddenList + ); + +/** + Free the resources of a config token. + + @param[in] ConfigToken The config token to be freed. + +**/ +VOID +WifiMgrFreeToken ( + IN WIFI_MGR_MAC_CONFIG_TOKEN *ConfigToken + ); + +#endif |