123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- /*++
- Copyright (c) 2015 Minoca Corp. All Rights Reserved
- Module Name:
- eapol.h
- Abstract:
- This header contains definitions for the Extensible Authentication Protocol
- over LAN, which facilitates authenticating nodes over a secured network.
- Author:
- Chris Stevens 4-Nov-2015
- --*/
- //
- // ------------------------------------------------------------------- Includes
- //
- //
- // ---------------------------------------------------------------- Definitions
- //
- //
- // ------------------------------------------------------ Data Type Definitions
- //
- typedef enum EAPOL_MODE {
- EapolModeInvalid,
- EapolModeSupplicant,
- EapolModeAuthenticator
- } EAPOL_MODE, *PEAPOL_MODE;
- typedef
- VOID
- (*PEAPOL_COMPLETION_ROUTINE) (
- PVOID Context,
- KSTATUS Status
- );
- /*++
- Routine Description:
- This routine is called when an EAPOL exchange completes. It is supplied by
- the creator of the EAPOL instance.
- Arguments:
- Context - Supplies a pointer to the context supplied by the creator of the
- EAPOL instance.
- Status - Supplies the completion status of the EAPOL exchange.
- Return Value:
- None.
- --*/
- /*++
- Structure Description:
- This structure defines the parameters required to create an EAPOL instance.
- Members:
- Mode - Store the mode in which this EAPOL instance should act.
- NetworkLink - Stores a pointer to the network link over which this EAPOL
- instance will send and receive data.
- Net80211Link - Stores a pointer to the 802.11 link over which this EAPOL
- instance will send and receive data.
- SupplicantAddress - Stores the physical address of the EAPOL supplicant.
- AuthenticatorAddress - Stores the physical address of the EAPOL
- authenticator.
- Ssid - Stores a pointer to the SSID of the BSS for which the authentication
- is taking place.
- SsidLength - Stores the length of the SSID.
- Passphrase - Stores a pointer to the passphrase for the BSS.
- PassphraseLength - Stores the length of the passphrase.
- SupplicantRsn - Stores the RSN information from the supplicant's IEEE
- 802.11 association request packet.
- SupplicantRsnSize - Stores the size of the supplicant's RSN information.
- AuthenticatorRsn - Stores the RSN information from the authenticator's
- IEEE 802.11 beacon packet or probe response packet.
- AuthenticatorRsnSize - Stores the size of the authenticator's RSN
- information.
- CompletionRoutine - Stores a pointer to the completion routine.
- CompletionContext - Stores a pointer to the completion context.
- --*/
- typedef struct _EAPOL_CREATION_PARAMETERS {
- EAPOL_MODE Mode;
- PNET_LINK NetworkLink;
- PNET80211_LINK Net80211Link;
- PNETWORK_ADDRESS SupplicantAddress;
- PNETWORK_ADDRESS AuthenticatorAddress;
- PUCHAR Ssid;
- ULONG SsidLength;
- PUCHAR Passphrase;
- ULONG PassphraseLength;
- PUCHAR SupplicantRsn;
- ULONG SupplicantRsnSize;
- PUCHAR AuthenticatorRsn;
- ULONG AuthenticatorRsnSize;
- PEAPOL_COMPLETION_ROUTINE CompletionRoutine;
- PVOID CompletionContext;
- } EAPOL_CREATION_PARAMETERS, *PEAPOL_CREATION_PARAMETERS;
- //
- // -------------------------------------------------------------------- Globals
- //
- //
- // -------------------------------------------------------- Function Prototypes
- //
- KSTATUS
- Net80211pEapolCreateInstance (
- PEAPOL_CREATION_PARAMETERS Parameters,
- PHANDLE EapolHandle
- );
- /*++
- Routine Description:
- This routine creates an EAPOL instance through which a session's private
- key will be derived. The caller can indicate if it intends to be the
- supplicant or the authenticator in the parameters.
- Arguments:
- Parameters - Supplies a pointer to the EAPOL instance creation parameters.
- EapolHandle - Supplies a pointer that receives a handle to the created
- EAPOL instance.
- Return Value:
- Status code.
- --*/
- VOID
- Net80211pEapolDestroyInstance (
- HANDLE EapolHandle
- );
- /*++
- Routine Description:
- This routine destroys the given EAPOL instance.
- Arguments:
- EapolHandle - Supplies the handle to the EAPOL instance to destroy.
- Return Value:
- None.
- --*/
|