TianoCore EDK2 master
Loading...
Searching...
No Matches
Supplicant.h File Reference
#include <Protocol/WiFi2.h>

Go to the source code of this file.

Data Structures

struct  EFI_SUPPLICANT_KEY_REFRESH
 
struct  EFI_SUPPLICANT_KEY
 
struct  EFI_SUPPLICANT_GTK_LIST
 
struct  EFI_SUPPLICANT_FRAGMENT_DATA
 
struct  _EFI_SUPPLICANT_PROTOCOL
 

Macros

#define EFI_SUPPLICANT_SERVICE_BINDING_PROTOCOL_GUID
 
#define EFI_SUPPLICANT_PROTOCOL_GUID
 
#define EFI_MAX_KEY_LEN   64
 

Typedefs

typedef struct _EFI_SUPPLICANT_PROTOCOL EFI_SUPPLICANT_PROTOCOL
 
typedef EFI_STATUS(EFIAPI * EFI_SUPPLICANT_BUILD_RESPONSE_PACKET) (IN EFI_SUPPLICANT_PROTOCOL *This, IN UINT8 *RequestBuffer OPTIONAL, IN UINTN RequestBufferSize OPTIONAL, OUT UINT8 *Buffer, IN OUT UINTN *BufferSize)
 
typedef EFI_STATUS(EFIAPI * EFI_SUPPLICANT_PROCESS_PACKET) (IN EFI_SUPPLICANT_PROTOCOL *This, IN OUT EFI_SUPPLICANT_FRAGMENT_DATA **FragmentTable, IN UINT32 *FragmentCount, IN EFI_SUPPLICANT_CRYPT_MODE CryptMode)
 
typedef EFI_STATUS(EFIAPI * EFI_SUPPLICANT_SET_DATA) (IN EFI_SUPPLICANT_PROTOCOL *This, IN EFI_SUPPLICANT_DATA_TYPE DataType, IN VOID *Data, IN UINTN DataSize)
 
typedef EFI_STATUS(EFIAPI * EFI_SUPPLICANT_GET_DATA) (IN EFI_SUPPLICANT_PROTOCOL *This, IN EFI_SUPPLICANT_DATA_TYPE DataType, OUT UINT8 *Data OPTIONAL, IN OUT UINTN *DataSize)
 

Enumerations

enum  EFI_SUPPLICANT_CRYPT_MODE { EfiSupplicantEncrypt , EfiSupplicantDecrypt }
 
enum  EFI_SUPPLICANT_DATA_TYPE {
  EfiSupplicant80211AKMSuite , EfiSupplicant80211GroupDataCipherSuite , EfiSupplicant80211PairwiseCipherSuite , EfiSupplicant80211PskPassword ,
  EfiSupplicant80211TargetSSIDName , EfiSupplicant80211StationMac , EfiSupplicant80211TargetSSIDMac , EfiSupplicant80211PTK ,
  EfiSupplicant80211GTK , EfiSupplicantState , EfiSupplicant80211LinkState , EfiSupplicantKeyRefresh ,
  EfiSupplicant80211SupportedAKMSuites , EfiSupplicant80211SupportedSoftwareCipherSuites , EfiSupplicant80211SupportedHardwareCipherSuites , EfiSupplicant80211IGTK ,
  EfiSupplicant80211PMK , EfiSupplicantDataTypeMaximum
}
 
enum  EFI_80211_LINK_STATE { Ieee80211UnauthenticatedUnassociated , Ieee80211AuthenticatedUnassociated , Ieee80211PendingRSNAuthentication , Ieee80211AuthenticatedAssociated }
 
enum  EFI_SUPPLICANT_KEY_TYPE { Group , Pairwise , PeerKey , IGTK }
 
enum  EFI_SUPPLICANT_KEY_DIRECTION { Receive , Transmit , Both }
 

Variables

EFI_GUID gEfiSupplicantServiceBindingProtocolGuid
 
EFI_GUID gEfiSupplicantProtocolGuid
 

Detailed Description

This file defines the EFI Supplicant Protocol.

Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Revision Reference:
This Protocol is introduced in UEFI Specification 2.6

Definition in file Supplicant.h.

Macro Definition Documentation

◆ EFI_MAX_KEY_LEN

#define EFI_MAX_KEY_LEN   64

Definition at line 218 of file Supplicant.h.

◆ EFI_SUPPLICANT_PROTOCOL_GUID

#define EFI_SUPPLICANT_PROTOCOL_GUID
Value:
{ \
0x54fcc43e, 0xaa89, 0x4333, { 0x9a, 0x85, 0xcd, 0xea, 0x24, 0x5, 0x1e, 0x9e } \
}

The EFI Supplicant protocol provides services to process authentication and data encryption/decryption for security management.

Definition at line 31 of file Supplicant.h.

◆ EFI_SUPPLICANT_SERVICE_BINDING_PROTOCOL_GUID

#define EFI_SUPPLICANT_SERVICE_BINDING_PROTOCOL_GUID
Value:
{ \
0x45bcd98e, 0x59ad, 0x4174, { 0x95, 0x46, 0x34, 0x4a, 0x7, 0x48, 0x58, 0x98 } \
}

The EFI Supplicant Service Binding Protocol is used to locate EFI Supplicant Protocol drivers to create and destroy child of the driver to communicate with other host using Supplicant protocol.

Definition at line 22 of file Supplicant.h.

Typedef Documentation

◆ EFI_SUPPLICANT_BUILD_RESPONSE_PACKET

typedef EFI_STATUS(EFIAPI * EFI_SUPPLICANT_BUILD_RESPONSE_PACKET) (IN EFI_SUPPLICANT_PROTOCOL *This, IN UINT8 *RequestBuffer OPTIONAL, IN UINTN RequestBufferSize OPTIONAL, OUT UINT8 *Buffer, IN OUT UINTN *BufferSize)

BuildResponsePacket() is called during STA and AP authentication is in progress. Supplicant derives the PTK or session keys depend on type of authentication is being employed.

Parameters
[in]ThisPointer to the EFI_SUPPLICANT_PROTOCOL instance.
[in]RequestBufferPointer to the most recently received EAPOL packet. NULL means the supplicant need initiate the EAP authentication session and send EAPOL-Start message.
[in]RequestBufferSizePacket size in bytes for the most recently received EAPOL packet. 0 is only valid when RequestBuffer is NULL.
[out]BufferPointer to the buffer to hold the built packet.
[in,out]BufferSizePointer to the buffer size in bytes. On input, it is the buffer size provided by the caller. On output, it is the buffer size in fact needed to contain the packet.
Return values
EFI_SUCCESSThe required EAPOL packet is built successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: RequestBuffer is NULL, but RequestSize is NOT 0. RequestBufferSize is 0. Buffer is NULL, but RequestBuffer is NOT 0. BufferSize is NULL.
EFI_BUFFER_TOO_SMALLBufferSize is too small to hold the response packet.
EFI_NOT_READYCurrent EAPOL session state is NOT ready to build ResponsePacket.

Definition at line 335 of file Supplicant.h.

◆ EFI_SUPPLICANT_GET_DATA

typedef EFI_STATUS(EFIAPI * EFI_SUPPLICANT_GET_DATA) (IN EFI_SUPPLICANT_PROTOCOL *This, IN EFI_SUPPLICANT_DATA_TYPE DataType, OUT UINT8 *Data OPTIONAL, IN OUT UINTN *DataSize)

Get Supplicant configuration data.

Parameters
[in]ThisPointer to the EFI_SUPPLICANT_PROTOCOL instance.
[in]DataTypeThe type of data.
[out]DataPointer to the buffer to hold the data. Ignored if DataSize is 0.
[in,out]DataSizePointer to the buffer size in bytes. On input, it is the buffer size provided by the caller. On output, it is the buffer size in fact needed to contain the packet.
Return values
EFI_SUCCESSThe Supplicant configuration data is got successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. DataSize is NULL. Data is NULL if *DataSize is not zero.
EFI_UNSUPPORTEDThe DataType is unsupported.
EFI_NOT_FOUNDThe Supplicant configuration data is not found.
EFI_BUFFER_TOO_SMALLThe size of Data is too small for the specified configuration data and the required size is returned in DataSize.

Definition at line 434 of file Supplicant.h.

◆ EFI_SUPPLICANT_PROCESS_PACKET

typedef EFI_STATUS(EFIAPI * EFI_SUPPLICANT_PROCESS_PACKET) (IN EFI_SUPPLICANT_PROTOCOL *This, IN OUT EFI_SUPPLICANT_FRAGMENT_DATA **FragmentTable, IN UINT32 *FragmentCount, IN EFI_SUPPLICANT_CRYPT_MODE CryptMode)

ProcessPacket() is called to Supplicant driver to encrypt or decrypt the data depending type of authentication type.

Parameters
[in]ThisPointer to the EFI_SUPPLICANT_PROTOCOL instance.
[in,out]FragmentTablePointer to a list of fragment. The caller will take responsible to handle the original FragmentTable while it may be reallocated in Supplicant driver.
[in]FragmentCountNumber of fragment.
[in]CryptModeCrypt mode.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: FragmentTable is NULL. FragmentCount is NULL. CryptMode is invalid.
EFI_NOT_READYCurrent supplicant state is NOT Authenticated.
EFI_ABORTEDSomething wrong decryption the message.
EFI_UNSUPPORTEDThis API is not supported.

Definition at line 369 of file Supplicant.h.

◆ EFI_SUPPLICANT_PROTOCOL

Definition at line 36 of file Supplicant.h.

◆ EFI_SUPPLICANT_SET_DATA

typedef EFI_STATUS(EFIAPI * EFI_SUPPLICANT_SET_DATA) (IN EFI_SUPPLICANT_PROTOCOL *This, IN EFI_SUPPLICANT_DATA_TYPE DataType, IN VOID *Data, IN UINTN DataSize)

Set Supplicant configuration data.

Parameters
[in]ThisPointer to the EFI_SUPPLICANT_PROTOCOL instance.
[in]DataTypeThe type of data.
[in]DataPointer to the buffer to hold the data.
[in]DataSizePointer to the buffer size in bytes.
Return values
EFI_SUCCESSThe Supplicant configuration data is set successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: Data is NULL. DataSize is 0.
EFI_UNSUPPORTEDThe DataType is unsupported.
EFI_OUT_OF_RESOURCESRequired system resources could not be allocated.

Definition at line 397 of file Supplicant.h.

Enumeration Type Documentation

◆ EFI_80211_LINK_STATE

EFI_80211_LINK_STATE

Definition at line 159 of file Supplicant.h.

◆ EFI_SUPPLICANT_CRYPT_MODE

EFI_SUPPLICANT_CRYPT_MODE

Definition at line 41 of file Supplicant.h.

◆ EFI_SUPPLICANT_DATA_TYPE

EFI_SUPPLICANT_DATA_TYPE

Definition at line 55 of file Supplicant.h.

◆ EFI_SUPPLICANT_KEY_DIRECTION

EFI_SUPPLICANT_KEY_DIRECTION (IEEE Std 802.11 Section 6.3.19.1.2)

Definition at line 191 of file Supplicant.h.

◆ EFI_SUPPLICANT_KEY_TYPE

EFI_SUPPLICANT_KEY_TYPE (IEEE Std 802.11 Section 6.3.19.1.2)

Definition at line 181 of file Supplicant.h.