]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg: Add EFI EAP Management2 Protocol definitions
authorHao Wu <hao.a.wu@intel.com>
Wed, 27 May 2015 02:47:42 +0000 (02:47 +0000)
committerhwu1225 <hwu1225@Edk2>
Wed, 27 May 2015 02:47:42 +0000 (02:47 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17517 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Include/Protocol/EapManagement2.h [new file with mode: 0644]
MdePkg/MdePkg.dec

diff --git a/MdePkg/Include/Protocol/EapManagement2.h b/MdePkg/Include/Protocol/EapManagement2.h
new file mode 100644 (file)
index 0000000..d8489bc
--- /dev/null
@@ -0,0 +1,87 @@
+/** @file\r
+  This file defines the EFI EAP Management2 protocol.\r
+\r
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution. The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+  @par Revision Reference:\r
+  This Protocol is introduced in UEFI Specification 2.5\r
+\r
+**/\r
+\r
+#ifndef __EFI_EAP_MANAGEMENT2_PROTOCOL_H__\r
+#define __EFI_EAP_MANAGEMENT2_PROTOCOL_H__\r
+\r
+#include <Protocol/EapManagement.h>\r
+\r
+///\r
+/// This EFI EAP Management2 protocol provides the ability to configure and control EAPOL\r
+/// state machine, and retrieve the information, status and the statistics information of\r
+/// EAPOL state machine.\r
+///\r
+#define EFI_EAP_MANAGEMENT2_PROTOCOL_GUID \\r
+  { \\r
+    0x5e93c847, 0x456d, 0x40b3, {0xa6, 0xb4, 0x78, 0xb0, 0xc9, 0xcf, 0x7f, 0x20 } \\r
+  }\r
+\r
+typedef struct _EFI_EAP_MANAGEMENT2_PROTOCOL EFI_EAP_MANAGEMENT2_PROTOCOL;\r
+\r
+/**\r
+  Return key generated through EAP process.\r
+\r
+  The GetKey() function return the key generated through EAP process, so that the 802.11\r
+  MAC layer driver can use MSK to derive more keys, e.g. PMK (Pairwise Master Key).\r
+\r
+  @param[in]       This           Pointer to the EFI_EAP_MANAGEMENT2_PROTOCOL instance.\r
+  @param[in, out]  Msk            Pointer to MSK (Master Session Key) buffer.\r
+  @param[in, out]  MskSize        MSK buffer size.\r
+  @param[in, out]  Emsk           Pointer to EMSK (Extended Master Session Key) buffer.\r
+  @param[in, out]  EmskSize       EMSK buffer size.\r
+\r
+  @retval EFI_SUCCESS             The operation completed successfully.\r
+  @retval EFI_INVALID_PARAMETER   One or more of the following conditions is TRUE:\r
+                                  Msk is NULL.\r
+                                  MskSize is NULL.\r
+                                  Emsk is NULL.\r
+                                  EmskSize is NULL.\r
+  @retval EFI_NOT_READY           MSK and EMSK are not generated in current session yet.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_EAP_GET_KEY) (\r
+  IN EFI_EAP_MANAGEMENT2_PROTOCOL         *This,\r
+  IN OUT UINT8                            *Msk,\r
+  IN OUT UINTN                            *MskSize,\r
+  IN OUT UINT8                            *Emsk,\r
+  IN OUT UINT8                            *EmskSize\r
+  );\r
+\r
+///\r
+/// The EFI_EAP_MANAGEMENT2_PROTOCOL\r
+/// is used to control, configure and monitor EAPOL state machine on a Port, and return\r
+/// information of the Port. EAPOL state machine is built on a per-Port basis. Herein, a\r
+/// Port means a NIC. For the details of EAPOL, please refer to IEEE 802.1x\r
+/// specification.\r
+///\r
+struct _EFI_EAP_MANAGEMENT2_PROTOCOL {\r
+  EFI_EAP_GET_SYSTEM_CONFIGURATION        GetSystemConfiguration;\r
+  EFI_EAP_SET_SYSTEM_CONFIGURATION        SetSystemConfiguration;\r
+  EFI_EAP_INITIALIZE_PORT                 InitializePort;\r
+  EFI_EAP_USER_LOGON                      UserLogon;\r
+  EFI_EAP_USER_LOGOFF                     UserLogoff;\r
+  EFI_EAP_GET_SUPPLICANT_STATUS           GetSupplicantStatus;\r
+  EFI_EAP_SET_SUPPLICANT_CONFIGURATION    SetSupplicantConfiguration;\r
+  EFI_EAP_GET_SUPPLICANT_STATISTICS       GetSupplicantStatistics;\r
+  EFI_EAP_GET_KEY                         GetKey;\r
+};\r
+\r
+extern EFI_GUID gEfiEapManagement2ProtocolGuid;\r
+\r
+#endif\r
index 3080df226a693b018bd2bb2adc433bd43f6361cb..4879d19ac06736b434a46bbba93578c1cc76c3b2 100644 (file)
   ## Include/Protocol/WiFi.h\r
   gEfiWiFiProtocolGuid                 = { 0xda55bc9, 0x45f8, 0x4bb4, {0x87, 0x19, 0x52, 0x24, 0xf1, 0x8a, 0x4d, 0x45 }}\r
 \r
+  ## Include/Protocol/EapManagement2.h\r
+  gEfiEapManagement2ProtocolGuid       = { 0x5e93c847, 0x456d, 0x40b3, {0xa6, 0xb4, 0x78, 0xb0, 0xc9, 0xcf, 0x7f, 0x20 }}\r
+\r
 #\r
 # [Error.gEfiMdePkgTokenSpaceGuid]\r
 #   0x80000001 | Invalid value provided.\r