| /** @file |
| EFI_AUTHENTICATION_INFO_PROTOCOL as defined in UEFI 2.0. |
| This protocol is used on any device handle to obtain authentication information |
| associated with the physical or logical device. |
| |
| Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> |
| SPDX-License-Identifier: BSD-2-Clause-Patent |
| |
| **/ |
| |
| #ifndef __AUTHENTICATION_INFO_H__ |
| #define __AUTHENTICATION_INFO_H__ |
| |
| #define EFI_AUTHENTICATION_INFO_PROTOCOL_GUID \ |
| { \ |
| 0x7671d9d0, 0x53db, 0x4173, {0xaa, 0x69, 0x23, 0x27, 0xf2, 0x1f, 0x0b, 0xc7 } \ |
| } |
| |
| #define EFI_AUTHENTICATION_CHAP_RADIUS_GUID \ |
| { \ |
| 0xd6062b50, 0x15ca, 0x11da, {0x92, 0x19, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \ |
| } |
| |
| #define EFI_AUTHENTICATION_CHAP_LOCAL_GUID \ |
| { \ |
| 0xc280c73e, 0x15ca, 0x11da, {0xb0, 0xca, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \ |
| } |
| |
| typedef struct _EFI_AUTHENTICATION_INFO_PROTOCOL EFI_AUTHENTICATION_INFO_PROTOCOL; |
| |
| #pragma pack(1) |
| typedef struct { |
| /// |
| /// Authentication Type GUID. |
| /// |
| EFI_GUID Guid; |
| |
| /// |
| /// Length of this structure in bytes. |
| /// |
| UINT16 Length; |
| } AUTH_NODE_HEADER; |
| |
| typedef struct { |
| AUTH_NODE_HEADER Header; |
| |
| /// |
| /// RADIUS Server IPv4 or IPv6 Address. |
| /// |
| UINT8 RadiusIpAddr[16]; ///< IPv4 or IPv6 address. |
| |
| /// |
| /// Reserved for future use. |
| /// |
| UINT16 Reserved; |
| |
| /// |
| /// Network Access Server IPv4 or IPv6 Address (OPTIONAL). |
| /// |
| UINT8 NasIpAddr[16]; ///< IPv4 or IPv6 address. |
| |
| /// |
| /// Network Access Server Secret Length in bytes (OPTIONAL). |
| /// |
| UINT16 NasSecretLength; |
| |
| /// |
| /// Network Access Server Secret (OPTIONAL). |
| /// |
| UINT8 NasSecret[1]; |
| |
| /// |
| /// CHAP Initiator Secret Length in bytes on offset NasSecret + NasSecretLength. |
| /// |
| /// UINT16 ChapSecretLength; |
| /// |
| /// CHAP Initiator Secret. |
| /// |
| /// UINT8 ChapSecret[]; |
| /// |
| /// CHAP Initiator Name Length in bytes on offset ChapSecret + ChapSecretLength. |
| /// |
| /// UINT16 ChapNameLength; |
| /// |
| /// CHAP Initiator Name. |
| /// |
| /// UINT8 ChapName[]; |
| /// |
| /// Reverse CHAP Name Length in bytes on offset ChapName + ChapNameLength. |
| /// |
| /// UINT16 ReverseChapNameLength; |
| /// |
| /// Reverse CHAP Name. |
| /// |
| /// UINT8 ReverseChapName[]; |
| /// |
| /// Reverse CHAP Secret Length in bytes on offseet ReverseChapName + ReverseChapNameLength. |
| /// |
| /// UINT16 ReverseChapSecretLength; |
| /// |
| /// Reverse CHAP Secret. |
| /// |
| /// UINT8 ReverseChapSecret[]; |
| /// |
| } CHAP_RADIUS_AUTH_NODE; |
| |
| typedef struct { |
| AUTH_NODE_HEADER Header; |
| |
| /// |
| /// Reserved for future use. |
| /// |
| UINT16 Reserved; |
| |
| /// |
| /// User Secret Length in bytes. |
| /// |
| UINT16 UserSecretLength; |
| |
| /// |
| /// User Secret. |
| /// |
| UINT8 UserSecret[1]; |
| |
| /// |
| /// User Name Length in bytes on offset UserSecret + UserSecretLength. |
| /// |
| /// UINT16 UserNameLength; |
| /// |
| /// User Name. |
| /// |
| /// UINT8 UserName[]; |
| /// |
| /// CHAP Initiator Secret Length in bytes on offset UserName + UserNameLength. |
| /// |
| /// UINT16 ChapSecretLength; |
| /// |
| /// CHAP Initiator Secret. |
| /// |
| /// UINT8 ChapSecret[]; |
| /// |
| /// CHAP Initiator Name Length in bytes on offset ChapSecret + ChapSecretLength. |
| /// |
| /// UINT16 ChapNameLength; |
| /// |
| /// CHAP Initiator Name. |
| /// |
| /// UINT8 ChapName[]; |
| /// |
| /// Reverse CHAP Name Length in bytes on offset ChapName + ChapNameLength. |
| /// |
| /// UINT16 ReverseChapNameLength; |
| /// |
| /// Reverse CHAP Name. |
| /// |
| /// UINT8 ReverseChapName[]; |
| /// |
| /// Reverse CHAP Secret Length in bytes on offset ReverseChapName + ReverseChapNameLength. |
| /// |
| /// UINT16 ReverseChapSecretLength; |
| /// |
| /// Reverse CHAP Secret. |
| /// |
| /// UINT8 ReverseChapSecret[]; |
| /// |
| } CHAP_LOCAL_AUTH_NODE; |
| #pragma pack() |
| |
| /** |
| Retrieves the authentication information associated with a particular controller handle. |
| |
| @param[in] This The pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL. |
| @param[in] ControllerHandle The handle to the Controller. |
| @param[out] Buffer The pointer to the authentication information. This function is |
| responsible for allocating the buffer and it is the caller's |
| responsibility to free buffer when the caller is finished with buffer. |
| |
| @retval EFI_SUCCESS Successfully retrieved authentication information |
| for the given ControllerHandle. |
| @retval EFI_INVALID_PARAMETER No matching authentication information found for |
| the given ControllerHandle. |
| @retval EFI_DEVICE_ERROR The authentication information could not be retrieved |
| due to a hardware error. |
| |
| **/ |
| typedef |
| EFI_STATUS |
| (EFIAPI *EFI_AUTHENTICATION_INFO_PROTOCOL_GET)( |
| IN EFI_AUTHENTICATION_INFO_PROTOCOL *This, |
| IN EFI_HANDLE ControllerHandle, |
| OUT VOID **Buffer |
| ); |
| |
| /** |
| Set the authentication information for a given controller handle. |
| |
| @param[in] This The pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL. |
| @param[in] ControllerHandle The handle to the Controller. |
| @param[in] Buffer The pointer to the authentication information. |
| |
| @retval EFI_SUCCESS Successfully set authentication information for the |
| given ControllerHandle. |
| @retval EFI_UNSUPPORTED If the platform policies do not allow setting of |
| the authentication information. |
| @retval EFI_DEVICE_ERROR The authentication information could not be configured |
| due to a hardware error. |
| @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the data. |
| |
| **/ |
| typedef |
| EFI_STATUS |
| (EFIAPI *EFI_AUTHENTICATION_INFO_PROTOCOL_SET)( |
| IN EFI_AUTHENTICATION_INFO_PROTOCOL *This, |
| IN EFI_HANDLE ControllerHandle, |
| IN VOID *Buffer |
| ); |
| |
| /// |
| /// This protocol is used on any device handle to obtain authentication |
| /// information associated with the physical or logical device. |
| /// |
| struct _EFI_AUTHENTICATION_INFO_PROTOCOL { |
| EFI_AUTHENTICATION_INFO_PROTOCOL_GET Get; |
| EFI_AUTHENTICATION_INFO_PROTOCOL_SET Set; |
| }; |
| |
| extern EFI_GUID gEfiAuthenticationInfoProtocolGuid; |
| extern EFI_GUID gEfiAuthenticationChapRadiusGuid; |
| extern EFI_GUID gEfiAuthenticationChapLocalGuid; |
| |
| #endif |