XenevaOS
Loading...
Searching...
No Matches
Supplicant.h
Go to the documentation of this file.
1
18#ifndef __EFI_SUPPLICANT_PROTOCOL_H__
19#define __EFI_SUPPLICANT_PROTOCOL_H__
20
21#include <Protocol/WiFi2.h>
22
28#define EFI_SUPPLICANT_SERVICE_BINDING_PROTOCOL_GUID \
29 { \
30 0x45bcd98e, 0x59ad, 0x4174, { 0x95, 0x46, 0x34, 0x4a, 0x7, 0x48, 0x58, 0x98 } \
31 }
32
37#define EFI_SUPPLICANT_PROTOCOL_GUID \
38 { \
39 0x54fcc43e, 0xaa89, 0x4333, { 0x9a, 0x85, 0xcd, 0xea, 0x24, 0x5, 0x1e, 0x9e } \
40 }
41
43
47typedef enum {
48 //
49 // Encrypt data provided in the fragment buffers.
50 //
52 //
53 // Decrypt data provided in the fragment buffers.
54 //
57
61typedef enum {
62 //
63 // Session Configuration
64 //
65
66 //
67 // Current authentication type in use. The corresponding Data is of type
68 // EFI_80211_AKM_SUITE_SELECTOR.
69 //
71 //
72 // Group data encryption type in use. The corresponding Data is of type
73 // EFI_SUPPLICANT_CIPHER_SUITE_SELECTOR.
74 //
76 //
77 // Pairwise encryption type in use. The corresponding Data is of type
78 // EFI_80211_CIPHER_SUITE_SELECTOR.
79 //
81 //
82 // PSK password. The corresponding Data is a NULL-terminated ASCII string.
83 //
85 //
86 // Target SSID name. The corresponding Data is of type EFI_80211_SSID.
87 //
89 //
90 // Station MAC address. The corresponding Data is of type
91 // EFI_80211_MAC_ADDRESS.
92 //
94 //
95 // Target SSID MAC address. The corresponding Data is 6 bytes MAC address.
96 //
98
99 //
100 // Session Information
101 //
102
103 //
104 // 802.11 PTK. The corresponding Data is of type EFI_SUPPLICANT_KEY.
105 //
107 //
108 // 802.11 GTK. The corresponding Data is of type EFI_SUPPLICANT_GTK_LIST.
109 //
111 //
112 // Supplicant state. The corresponding Data is
113 // EFI_EAPOL_SUPPLICANT_PAE_STATE.
114 //
116 //
117 // 802.11 link state. The corresponding Data is EFI_80211_LINK_STATE.
118 //
120 //
121 // Flag indicates key is refreshed. The corresponding Data is
122 // EFI_SUPPLICANT_KEY_REFRESH.
123 //
125
126 //
127 // Session Configuration
128 //
129
130 //
131 // Supported authentication types. The corresponding Data is of type
132 // EFI_80211_AKM_SUITE_SELECTOR.
133 //
135 //
136 // Supported software encryption types provided by supplicant driver. The
137 // corresponding Data is of type EFI_80211_CIPHER_SUITE_SELECTOR.
138 //
140 //
141 // Supported hardware encryption types provided by wireless UNDI driver. The
142 // corresponding Data is of type EFI_80211_CIPHER_SUITE_SELECTOR.
143 //
145
146 //
147 // Session Information
148 //
149
150 //
151 // 802.11 Integrity GTK. The corresponding Data is of type
152 // EFI_SUPPLICANT_GTK_LIST.
153 //
155 //
156 // 802.11 PMK. The corresponding Data is 32 bytes pairwise master key.
157 //
161
165typedef enum {
166 //
167 // Indicates initial start state, unauthenticated, unassociated.
168 //
170 //
171 // Indicates authenticated, unassociated.
172 //
174 //
175 // Indicates authenticated and associated, but pending RSN authentication.
176 //
178 //
179 // Indicates authenticated and associated.
180 //
183
193
197typedef enum {
198 //
199 // Indicates that the keys are being installed for the receive direction.
200 //
202 //
203 // Indicates that the keys are being installed for the transmit direction.
204 //
206 //
207 // Indicates that the keys are being installed for both the receive and
208 // transmit directions.
209 //
210 Both
212
216typedef struct {
217 //
218 // If TRUE, indicates GTK is just refreshed after a successful call to
219 // EFI_SUPPLICANT_PROTOCOL.BuildResponsePacket().
220 //
223
224#define EFI_MAX_KEY_LEN 64
225
229typedef struct {
230 //
231 // The key value.
232 //
234 //
235 // Length in bytes of the Key. Should be up to EFI_MAX_KEY_LEN.
236 //
238 //
239 // The key identifier.
240 //
242 //
243 // Defines whether this key is a group key, pairwise key, PeerKey, or
244 // Integrity Group.
245 //
247 //
248 // The value is set according to the KeyType.
249 //
251 //
252 // The Receive Sequence Count value.
253 //
254 UINT8 Rsc[8];
255 //
256 // Length in bytes of the Rsc. Should be up to 8.
257 //
259 //
260 // Indicates whether the key is configured by the Authenticator or
261 // Supplicant. The value true indicates Authenticator.
262 //
264 //
265 // The cipher suite required for this association.
266 //
268 //
269 // Indicates the direction for which the keys are to be installed.
270 //
273
277typedef struct {
278 //
279 // Indicates the number of GTKs that are contained in GTKList.
280 //
282 //
283 // A variable-length array of GTKs of type EFI_SUPPLICANT_KEY. The number of
284 // entries is specified by GTKCount.
285 //
288
292typedef struct {
293 //
294 // Length of data buffer in the fragment.
295 //
297 //
298 // Pointer to the data buffer in the fragment.
299 //
302
340typedef
344 IN UINT8 *RequestBuffer, OPTIONAL
345 IN UINTN RequestBufferSize, OPTIONAL
346 OUT UINT8 *Buffer,
347 IN OUT UINTN *BufferSize
348 );
349
374typedef
378 IN OUT EFI_SUPPLICANT_FRAGMENT_DATA **FragmentTable,
379 IN UINT32 *FragmentCount,
381 );
382
402typedef
407 IN VOID *Data,
408 IN UINTN DataSize
409 );
410
439typedef
444 OUT UINT8 *Data, OPTIONAL
445 IN OUT UINTN *DataSize
446 );
447
460
463
464#endif
UINT64 UINTN
Definition ProcessorBind.h:118
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
#define IN
Definition Base.h:347
#define OUT
Definition Base.h:352
#define OPTIONAL
Definition Base.h:358
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)
Definition Supplicant.h:342
EFI_GUID gEfiSupplicantProtocolGuid
EFI_GUID gEfiSupplicantServiceBindingProtocolGuid
#define EFI_MAX_KEY_LEN
Definition Supplicant.h:224
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)
Definition Supplicant.h:376
EFI_STATUS(EFIAPI * EFI_SUPPLICANT_SET_DATA)(IN EFI_SUPPLICANT_PROTOCOL *This, IN EFI_SUPPLICANT_DATA_TYPE DataType, IN VOID *Data, IN UINTN DataSize)
Definition Supplicant.h:404
EFI_SUPPLICANT_DATA_TYPE
Definition Supplicant.h:61
@ EfiSupplicant80211LinkState
Definition Supplicant.h:119
@ EfiSupplicantKeyRefresh
Definition Supplicant.h:124
@ EfiSupplicant80211GTK
Definition Supplicant.h:110
@ EfiSupplicantDataTypeMaximum
Definition Supplicant.h:159
@ EfiSupplicant80211SupportedSoftwareCipherSuites
Definition Supplicant.h:139
@ EfiSupplicant80211TargetSSIDMac
Definition Supplicant.h:97
@ EfiSupplicant80211PTK
Definition Supplicant.h:106
@ EfiSupplicant80211IGTK
Definition Supplicant.h:154
@ EfiSupplicant80211TargetSSIDName
Definition Supplicant.h:88
@ EfiSupplicant80211SupportedHardwareCipherSuites
Definition Supplicant.h:144
@ EfiSupplicant80211PMK
Definition Supplicant.h:158
@ EfiSupplicant80211PairwiseCipherSuite
Definition Supplicant.h:80
@ EfiSupplicant80211SupportedAKMSuites
Definition Supplicant.h:134
@ EfiSupplicant80211AKMSuite
Definition Supplicant.h:70
@ EfiSupplicantState
Definition Supplicant.h:115
@ EfiSupplicant80211GroupDataCipherSuite
Definition Supplicant.h:75
@ EfiSupplicant80211StationMac
Definition Supplicant.h:93
@ EfiSupplicant80211PskPassword
Definition Supplicant.h:84
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)
Definition Supplicant.h:441
EFI_SUPPLICANT_CRYPT_MODE
Definition Supplicant.h:47
@ EfiSupplicantEncrypt
Definition Supplicant.h:51
@ EfiSupplicantDecrypt
Definition Supplicant.h:55
EFI_SUPPLICANT_KEY_TYPE
Definition Supplicant.h:187
@ Pairwise
Definition Supplicant.h:189
@ IGTK
Definition Supplicant.h:191
@ PeerKey
Definition Supplicant.h:190
@ Group
Definition Supplicant.h:188
EFI_SUPPLICANT_KEY_DIRECTION
Definition Supplicant.h:197
@ Receive
Definition Supplicant.h:201
@ Transmit
Definition Supplicant.h:205
@ Both
Definition Supplicant.h:210
EFI_80211_LINK_STATE
Definition Supplicant.h:165
@ Ieee80211AuthenticatedUnassociated
Definition Supplicant.h:173
@ Ieee80211AuthenticatedAssociated
Definition Supplicant.h:181
@ Ieee80211UnauthenticatedUnassociated
Definition Supplicant.h:169
@ Ieee80211PendingRSNAuthentication
Definition Supplicant.h:177
RETURN_STATUS EFI_STATUS
Definition UefiBaseType.h:33
#define VOID
Definition acefi.h:190
unsigned char BOOLEAN
Definition actypes.h:235
unsigned char UINT8
Definition actypes.h:236
Definition WiFi2.h:68
Definition WiFi2.h:110
Definition Supplicant.h:292
UINT32 FragmentLength
Definition Supplicant.h:296
VOID * FragmentBuffer
Definition Supplicant.h:300
Definition Supplicant.h:277
UINT8 GTKCount
Definition Supplicant.h:281
Definition Supplicant.h:216
BOOLEAN GTKRefresh
Definition Supplicant.h:221
Definition Supplicant.h:229
UINT8 KeyLen
Definition Supplicant.h:237
BOOLEAN IsAuthenticator
Definition Supplicant.h:263
EFI_80211_SUITE_SELECTOR CipherSuite
Definition Supplicant.h:267
EFI_SUPPLICANT_KEY_TYPE KeyType
Definition Supplicant.h:246
EFI_80211_MAC_ADDRESS Addr
Definition Supplicant.h:250
UINT8 KeyId
Definition Supplicant.h:241
EFI_SUPPLICANT_KEY_DIRECTION Direction
Definition Supplicant.h:271
UINT8 RscLen
Definition Supplicant.h:258
Definition Base.h:281
Definition Supplicant.h:454
EFI_SUPPLICANT_BUILD_RESPONSE_PACKET BuildResponsePacket
Definition Supplicant.h:455
EFI_SUPPLICANT_GET_DATA GetData
Definition Supplicant.h:458
EFI_SUPPLICANT_PROCESS_PACKET ProcessPacket
Definition Supplicant.h:456
EFI_SUPPLICANT_SET_DATA SetData
Definition Supplicant.h:457