windows-nt/Source/XPSP1/NT/net/config/netman/eapol/parser/eapol.h
2020-09-26 16:20:57 +08:00

90 lines
3.1 KiB
C

//============================================================================//
// MODULE: eapol.h //
// //
// Description: EAPOL/802.1X Parser //
// //
// Note: info for this parsers was gleaned from :
// IEEE 802.1X
// //
// Modification History //
// //
// timmoore 04/04/2000 Created //
//===========================================================================//
#ifndef __EAPOL_H_
#define __EAPOL_H_
#include <windows.h>
#include <netmon.h>
#include <stdlib.h>
#include <string.h>
// #include <parser.h>
// EAPOL Header structure----------------------------------------------------
#pragma pack(1)
typedef struct _EAPHDR
{
BYTE bVersion;
BYTE bType; // packet type
WORD wLength;
BYTE pEAPPacket[0];
} EAPHDR;
typedef EAPHDR UNALIGNED *ULPEAPHDR;
typedef struct _EAPOLKEY
{
BYTE bSignType;
BYTE bKeyType;
WORD wKeyLength;
BYTE bKeyReplay[16];
BYTE bKeyIV[16];
BYTE bKeyIndex;
BYTE bKeySign[16];
BYTE bKey[0];
} EAPOLKEY;
typedef EAPOLKEY UNALIGNED *ULPEAPOLKEY;
#pragma pack()
// packet types
#define EAPOL_PACKET 0
#define EAPOL_START 1
#define EAPOL_LOGOFF 2
#define EAPOL_KEY 3
// property table indice
typedef enum
{
EAPOL_SUMMARY,
EAPOL_VERSION,
EAPOL_TYPE,
EAPOL_LENGTH,
EAPOL_KEY_SIGNTYPE,
EAPOL_KEY_KEYTYPE,
EAPOL_KEY_KEYLENGTH,
EAPOL_KEY_KEYREPLAY,
EAPOL_KEY_KEYIV,
EAPOL_KEY_KEYINDEX,
EAPOL_KEY_KEYSIGN,
EAPOL_KEY_KEY,
EAPOL_UNKNOWN,
};
// Functions Prototypes --------------------------------------------------------
extern VOID WINAPI EAPOL_Register( HPROTOCOL hEAPOL);
extern VOID WINAPI EAPOL_Deregister( HPROTOCOL hEAPOL);
extern ULPBYTE WINAPI EAPOL_RecognizeFrame(HFRAME, LPVOID, LPVOID, DWORD, DWORD, HPROTOCOL, DWORD, LPDWORD, LPHPROTOCOL, PDWORD_PTR);
extern ULPBYTE WINAPI EAPOL_AttachProperties(HFRAME, ULPBYTE, ULPBYTE, DWORD, DWORD, HPROTOCOL, DWORD, DWORD_PTR);
extern DWORD WINAPI EAPOL_FormatProperties( HFRAME hFrame,
ULPBYTE pMacFrame,
ULPBYTE pEAPOLFrame,
DWORD nPropertyInsts,
LPPROPERTYINST p);
VOID WINAPIV EAPOL_FormatSummary( LPPROPERTYINST pPropertyInst);
VOID WINAPIV EAPOL_FormatAttribute( LPPROPERTYINST pPropertyInst);
#endif