--- /dev/null
+/** @file\r
+ EFI_AUTHENTICATION_INFO_PROTOCOL as defined in UEFI 2.0.\r
+ This protocol is used on any device handle to obtain authentication information \r
+ associated with the physical or logical device.\r
+\r
+ Copyright (c) 2006, Intel Corporation \r
+ All rights reserved. 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
+ Module Name: AuthenticationInfo.h\r
+\r
+**/\r
+\r
+#ifndef __AUTHENTICATION_INFO_H__\r
+#define __AUTHENTICATION_INFO_H__\r
+\r
+#define EFI_AUTHENTICATION_INFO_PROTOCOL_GUID \\r
+ { \\r
+ 0x7671d9d0, 0x53db, 0x4173, {0xaa, 0x69, 0x23, 0x27, 0xf2, 0x1f, 0x0b, 0xc7 } \\r
+ }\r
+ \r
+#define EFI_AUTHENTICATION_CHAP_RADIUS_GUID \\r
+ { \\r
+ 0xd6062b50, 0x15ca, 0x11da, {0x92, 0x19, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \\r
+ }\r
+\r
+#define EFI_AUTHENTICATION_CHAP_LOCAL_GUID \\r
+ { \\r
+ 0xc280c73e, 0x15ca, 0x11da, {0xb0, 0xca, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \\r
+ }\r
+\r
+typedef struct _EFI_AUTHENTICATION_INFO_PROTOCOL EFI_AUTHENTICATION_INFO_PROTOCOL;\r
+\r
+typedef struct {\r
+ EFI_GUID Guid;\r
+ UINT16 Length;\r
+} AUTH_NODE_HEADER;\r
+\r
+typedef struct {\r
+ AUTH_NODE_HEADER Header;\r
+ EFI_IPv6_ADDRESS RadiusIpAddr; // IPv4 or IPv6 address\r
+ UINT16 Reserved;\r
+ EFI_IPv6_ADDRESS NasIpAddr; // IPv4 or IPv6 address\r
+ UINT16 NasSecretLength; \r
+ UINT8 *NasSecret; \r
+ UINT16 ChapSecretLength;\r
+ UINT8 *ChapSecret;\r
+ UINT16 ChapNameLength;\r
+ UINT8 *ChapName;\r
+} CHAP_RADIUS_AUTH_NODE;\r
+\r
+typedef struct {\r
+ AUTH_NODE_HEADER Header;\r
+ UINT16 Reserved;\r
+ UINT16 UserSecretLength;\r
+ UINT8 *UserSecret; \r
+ UINT16 UserNameLength;\r
+ UINT8 *UserName;\r
+ UINT16 ChapSecretLength;\r
+ UINT8 *ChapSecret;\r
+ UINT16 ChapNameLength;\r
+ UINT8 *ChapName;\r
+} CHAP_LOCAL_AUTH_NODE;\r
+\r
+/**\r
+ Retrieves the Authentication information associated with a particular controller handle.\r
+\r
+ @param This Pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL\r
+ @param ControllerHandle Handle to the Controller\r
+ @param Buffer Pointer to the authentication information.\r
+\r
+ @retval EFI_SUCCESS Successfully retrieved Authentication information for the given ControllerHandle\r
+ @retval EFI_INVALID_PARAMETER No matching Authentication information found for the given ControllerHandle\r
+ @retval EFI_DEVICE_ERROR The authentication information could not be retrieved due to a\r
+ hardware error.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_AUTHENTICATION_PROTOCOL_INFO_GET) (\r
+ IN EFI_AUTHENTICATION_INFO_PROTOCOL *This,\r
+ IN EFI_HANDLE *ControllerHandle,\r
+ OUT VOID *Buffer\r
+ )\r
+; \r
+\r
+/**\r
+ Set the Authentication information for a given controller handle.\r
+\r
+ @param This Pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL\r
+ @param ControllerHandle Handle to the Controller\r
+ @param Buffer Pointer to the authentication information.\r
+ \r
+ @retval EFI_SUCCESS Successfully set Authentication information for the given ControllerHandle\r
+ @retval EFI_UNSUPPORTED If the platform policies do not allow setting of the Authentication\r
+ information.\r
+ @retval EFI_DEVICE_ERROR The authentication information could not be configured due to a\r
+ hardware error.\r
+ @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the data.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_AUTHENTICATION_PROTOCOL_INFO_SET) (\r
+ IN EFI_AUTHENTICATION_INFO_PROTOCOL *This,\r
+ IN EFI_HANDLE *ControllerHandle,\r
+ IN VOID *Buffer\r
+ )\r
+; \r
+\r
+struct _EFI_AUTHENTICATION_INFO_PROTOCOL {\r
+ EFI_AUTHENTICATION_PROTOCOL_INFO_GET Get;\r
+ EFI_AUTHENTICATION_PROTOCOL_INFO_SET Set;\r
+};\r
+\r
+extern EFI_GUID gEfiAuthenticationInfoProtocolGuid;\r
+extern EFI_GUID gEfiAuthenticationChapRadiusGuid;\r
+extern EFI_GUID gEfiAuthenticationChapLocalGuid;\r
+\r
+#endif\r