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
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] | This | Pointer to the EFI_SUPPLICANT_PROTOCOL instance. |
[in] | RequestBuffer | Pointer to the most recently received EAPOL packet. NULL means the supplicant need initiate the EAP authentication session and send EAPOL-Start message. |
[in] | RequestBufferSize | Packet size in bytes for the most recently received EAPOL packet. 0 is only valid when RequestBuffer is NULL. |
[out] | Buffer | Pointer to the buffer to hold the built packet. |
[in,out] | BufferSize | Pointer 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_SUCCESS | The required EAPOL packet is built successfully. |
EFI_INVALID_PARAMETER | One 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_SMALL | BufferSize is too small to hold the response packet. |
EFI_NOT_READY | Current EAPOL session state is NOT ready to build ResponsePacket. |
ProcessPacket() is called to Supplicant driver to encrypt or decrypt the data depending type of authentication type.
- Parameters
-
[in] | This | Pointer to the EFI_SUPPLICANT_PROTOCOL instance. |
[in,out] | FragmentTable | Pointer to a list of fragment. The caller will take responsible to handle the original FragmentTable while it may be reallocated in Supplicant driver. |
[in] | FragmentCount | Number of fragment. |
[in] | CryptMode | Crypt mode. |
- Return values
-
EFI_SUCCESS | The operation completed successfully. |
EFI_INVALID_PARAMETER | One or more of the following conditions is TRUE: FragmentTable is NULL. FragmentCount is NULL. CryptMode is invalid. |
EFI_NOT_READY | Current supplicant state is NOT Authenticated. |
EFI_ABORTED | Something wrong decryption the message. |
EFI_UNSUPPORTED | This API is not supported. |
Set Supplicant configuration data.
- Parameters
-
[in] | This | Pointer to the EFI_SUPPLICANT_PROTOCOL instance. |
[in] | DataType | The type of data. |
[in] | Data | Pointer to the buffer to hold the data. |
[in] | DataSize | Pointer to the buffer size in bytes. |
- Return values
-
EFI_SUCCESS | The Supplicant configuration data is set successfully. |
EFI_INVALID_PARAMETER | One or more of the following conditions is TRUE: Data is NULL. DataSize is 0. |
EFI_UNSUPPORTED | The DataType is unsupported. |
EFI_OUT_OF_RESOURCES | Required system resources could not be allocated. |
Get Supplicant configuration data.
- Parameters
-
[in] | This | Pointer to the EFI_SUPPLICANT_PROTOCOL instance. |
[in] | DataType | The type of data. |
[out] | Data | Pointer to the buffer to hold the data. Ignored if DataSize is 0. |
[in,out] | DataSize | Pointer 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_SUCCESS | The Supplicant configuration data is got successfully. |
EFI_INVALID_PARAMETER | One or more of the following conditions is TRUE: This is NULL. DataSize is NULL. Data is NULL if *DataSize is not zero. |
EFI_UNSUPPORTED | The DataType is unsupported. |
EFI_NOT_FOUND | The Supplicant configuration data is not found. |
EFI_BUFFER_TOO_SMALL | The size of Data is too small for the specified configuration data and the required size is returned in DataSize. |