mirror of https://github.com/acidanthera/audk.git
205 lines
5.8 KiB
C
205 lines
5.8 KiB
C
/** @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 - 2008, Intel Corporation
|
|
All rights reserved. This program and the accompanying materials
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
**/
|
|
|
|
#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;
|
|
|
|
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
|
|
///
|
|
EFI_IPv6_ADDRESS RadiusIpAddr; ///< IPv4 or IPv6 address
|
|
|
|
///
|
|
/// Reserved for future use
|
|
///
|
|
UINT16 Reserved;
|
|
|
|
///
|
|
/// Network Access Server IPv4 or IPv6 Address (OPTIONAL)
|
|
///
|
|
EFI_IPv6_ADDRESS NasIpAddr; ///< IPv4 or IPv6 address
|
|
|
|
///
|
|
/// Network Access Server Secret Length in bytes (OPTIONAL)
|
|
///
|
|
UINT16 NasSecretLength;
|
|
|
|
///
|
|
/// Network Access Server secret (OPTIONAL)
|
|
///
|
|
UINT8 *NasSecret;
|
|
|
|
///
|
|
/// CHAP Initiator Secret length in bytes
|
|
///
|
|
UINT16 ChapSecretLength;
|
|
|
|
///
|
|
/// CHAP Initiator Secret
|
|
///
|
|
UINT8 *ChapSecret;
|
|
|
|
///
|
|
/// CHAP Initiator Name Length in bytes
|
|
///
|
|
UINT16 ChapNameLength;
|
|
|
|
///
|
|
/// CHAP Initiator Name
|
|
///
|
|
UINT8 *ChapName;
|
|
} 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;
|
|
|
|
///
|
|
/// User Name Length in bytes
|
|
///
|
|
UINT16 UserNameLength;
|
|
|
|
///
|
|
/// User Name
|
|
///
|
|
UINT8 *UserName;
|
|
|
|
///
|
|
/// CHAP Initiator Secret length in bytes
|
|
///
|
|
UINT16 ChapSecretLength;
|
|
|
|
///
|
|
/// CHAP Initiator Secret
|
|
///
|
|
UINT8 *ChapSecret;
|
|
|
|
///
|
|
/// CHAP Initiator Name Length in bytes
|
|
///
|
|
UINT16 ChapNameLength;
|
|
|
|
///
|
|
/// CHAP Initiator Name
|
|
///
|
|
UINT8 *ChapName;
|
|
} CHAP_LOCAL_AUTH_NODE;
|
|
|
|
/**
|
|
Retrieves the Authentication information associated with a particular controller handle.
|
|
|
|
@param This Pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL
|
|
@param ControllerHandle Handle to the Controller
|
|
@param Buffer Pointer to the authentication information.
|
|
|
|
@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_PROTOCOL_INFO_GET)(
|
|
IN EFI_AUTHENTICATION_INFO_PROTOCOL *This,
|
|
IN EFI_HANDLE *ControllerHandle,
|
|
OUT VOID *Buffer
|
|
);
|
|
|
|
/**
|
|
Set the Authentication information for a given controller handle.
|
|
|
|
@param This Pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL
|
|
@param ControllerHandle Handle to the Controller
|
|
@param Buffer 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_PROTOCOL_INFO_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_PROTOCOL_INFO_GET Get;
|
|
EFI_AUTHENTICATION_PROTOCOL_INFO_SET Set;
|
|
};
|
|
|
|
extern EFI_GUID gEfiAuthenticationInfoProtocolGuid;
|
|
extern EFI_GUID gEfiAuthenticationChapRadiusGuid;
|
|
extern EFI_GUID gEfiAuthenticationChapLocalGuid;
|
|
|
|
#endif
|