2 EFI_AUTHENTICATION_INFO_PROTOCOL as defined in UEFI 2.0.
3 This protocol is used on any device handle to obtain authentication information
4 associated with the physical or logical device.
6 Copyright (c) 2006 - 2008, Intel Corporation
7 All rights reserved. This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #ifndef __AUTHENTICATION_INFO_H__
18 #define __AUTHENTICATION_INFO_H__
20 #define EFI_AUTHENTICATION_INFO_PROTOCOL_GUID \
22 0x7671d9d0, 0x53db, 0x4173, {0xaa, 0x69, 0x23, 0x27, 0xf2, 0x1f, 0x0b, 0xc7 } \
25 #define EFI_AUTHENTICATION_CHAP_RADIUS_GUID \
27 0xd6062b50, 0x15ca, 0x11da, {0x92, 0x19, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \
30 #define EFI_AUTHENTICATION_CHAP_LOCAL_GUID \
32 0xc280c73e, 0x15ca, 0x11da, {0xb0, 0xca, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \
35 typedef struct _EFI_AUTHENTICATION_INFO_PROTOCOL EFI_AUTHENTICATION_INFO_PROTOCOL
;
40 /// Authentication Type GUID.
45 /// Length of this structure in bytes.
51 AUTH_NODE_HEADER Header
;
54 /// RADIUS Server IPv4 or IPv6 Address
56 UINT8 RadiusIpAddr
[16]; ///< IPv4 or IPv6 address
59 /// Reserved for future use
64 /// Network Access Server IPv4 or IPv6 Address (OPTIONAL)
66 UINT8 NasIpAddr
[16]; ///< IPv4 or IPv6 address
69 /// Network Access Server Secret Length in bytes (OPTIONAL)
71 UINT16 NasSecretLength
;
74 /// Network Access Server Secret (OPTIONAL)
79 /// CHAP Initiator Secret length in bytes on offset NasSecret + NasSecretLength.
81 /// UINT16 ChapSecretLength;
83 /// CHAP Initiator Secret
85 /// UINT8 ChapSecret[];
87 /// CHAP Initiator Name Length in bytes on offset ChapSecret + ChapSecretLength
89 /// UINT16 ChapNameLength;
91 /// CHAP Initiator Name
95 } CHAP_RADIUS_AUTH_NODE
;
98 AUTH_NODE_HEADER Header
;
101 /// Reserved for future use
106 /// User Secret Length in bytes
108 UINT16 UserSecretLength
;
116 /// User Name Length in bytes on offset UserSecret + UserSecretLength
118 /// UINT16 UserNameLength;
124 /// CHAP Initiator Secret length in bytes on offset UserName + UserNameLength
126 /// UINT16 ChapSecretLength;
128 /// CHAP Initiator Secret
130 /// UINT8 *ChapSecret;
132 /// CHAP Initiator Name Length in bytes on offset ChapSecret + ChapSecretLength
134 /// UINT16 ChapNameLength;
136 /// CHAP Initiator Name
140 } CHAP_LOCAL_AUTH_NODE
;
144 Retrieves the authentication information associated with a particular controller handle.
146 @param[in] This Pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL
147 @param[in] ControllerHandle Handle to the Controller
148 @param[out] Buffer Pointer to the authentication information.
150 @retval EFI_SUCCESS Successfully retrieved authentication information for the given ControllerHandle
151 @retval EFI_INVALID_PARAMETER No matching authentication information found for the given ControllerHandle
152 @retval EFI_DEVICE_ERROR The authentication information could not be retrieved due to a
158 (EFIAPI
*EFI_AUTHENTICATION_PROTOCOL_INFO_GET
)(
159 IN EFI_AUTHENTICATION_INFO_PROTOCOL
*This
,
160 IN EFI_HANDLE
*ControllerHandle
,
165 Set the authentication information for a given controller handle.
167 @param[in] This Pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL
168 @param[in] ControllerHandle Handle to the Controller
169 @param[in] Buffer Pointer to the authentication information.
171 @retval EFI_SUCCESS Successfully set authentication information for the given ControllerHandle
172 @retval EFI_UNSUPPORTED If the platform policies do not allow setting of the authentication
174 @retval EFI_DEVICE_ERROR The authentication information could not be configured due to a
176 @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the data.
181 (EFIAPI
*EFI_AUTHENTICATION_PROTOCOL_INFO_SET
)(
182 IN EFI_AUTHENTICATION_INFO_PROTOCOL
*This
,
183 IN EFI_HANDLE
*ControllerHandle
,
188 /// This protocol is used on any device handle to obtain authentication
189 /// information associated with the physical or logical device.
191 struct _EFI_AUTHENTICATION_INFO_PROTOCOL
{
192 EFI_AUTHENTICATION_PROTOCOL_INFO_GET Get
;
193 EFI_AUTHENTICATION_PROTOCOL_INFO_SET Set
;
196 extern EFI_GUID gEfiAuthenticationInfoProtocolGuid
;
197 extern EFI_GUID gEfiAuthenticationChapRadiusGuid
;
198 extern EFI_GUID gEfiAuthenticationChapLocalGuid
;