|
|
/*
Copyright (c) 1997, Microsoft Corporation, all rights reserved
Description: Sample Extensible Authentication Protocol header file.
History:
*/
#ifndef _EAP_H_
#define _EAP_H_
#define PPP_EAP_PROTOCOL_ID 20 // This protocols Type Id
// Defines states within the this EAP protocol.
typedef enum _MYSTATE { MYSTATE_Initial, MYSTATE_WaitForUserOK, MYSTATE_WaitForRequest, MYSTATE_ReqSent, MYSTATE_WaitForAuthenticationToComplete, MYSTATE_Done
} MYSTATE;
typedef struct _EAPCB { MYSTATE EapState; DWORD fFlags; BOOL fAuthenticator; LPVOID pWorkBuffer; CHAR aszIdentity[ UNLEN + 1 ]; DWORD dwIdExpected; CHAR aszPassword[ PWLEN + 1 ]; DWORD dwResult; DWORD dwInitialPacketId; BYTE* pDataFromInteractiveUI; BYTE bRecvPacketId; //Special Id for Wireless case
//because it does not retransmit packets
DWORD dwSizeOfDataFromInteractiveUI; PBYTE pUIContext; RAS_AUTH_ATTRIBUTE* pUserAttributes; RAS_AUTH_ATTRIBUTE* pMPPEKeyAttributes; // MPPE key
} EAPCB;
typedef struct _EAP_NAME_DIALOG { WCHAR awszIdentity[ UNLEN + 1 ]; WCHAR awszPassword[ PWLEN + 1 ];
} EAP_NAME_DIALOG;
// Globals
#ifdef RASEAPGLOBALS
DWORD g_dwEapTraceId = INVALID_TRACEID; HINSTANCE g_hInstance = NULL;
#else
extern DWORD g_dwEapTraceId; extern HINSTANCE g_hInstance;
#endif // RASEAPGLOBALS
// Function Prototypes
VOID EapTrace( IN CHAR* Format, ... );
DWORD APIENTRY EapBegin( OUT VOID** ppWorkBuf, IN VOID* pInfo );
DWORD APIENTRY EapEnd( IN VOID* pWorkBuf );
DWORD APIENTRY EapMakeMessage( IN VOID* pWorkBuf, IN PPP_EAP_PACKET* pReceiveBuf, OUT PPP_EAP_PACKET* pSendBuf, IN DWORD cbSendBuf, OUT PPP_EAP_OUTPUT* pResult, IN PPP_EAP_INPUT* pInput );
DWORD AuthenticateeMakeMessage( IN EAPCB* pwb, IN PPP_EAP_PACKET* pReceiveBuf, OUT PPP_EAP_PACKET* pSendBuf, IN DWORD cbSendBuf, IN PPP_EAP_INPUT* pInput, OUT PPP_EAP_OUTPUT* pResult );
DWORD AuthenticatorMakeMessage( IN EAPCB* pwb, IN PPP_EAP_PACKET* pReceiveBuf, OUT PPP_EAP_PACKET* pSendBuf, IN DWORD cbSendBuf, IN PPP_EAP_INPUT* pInput, OUT PPP_EAP_OUTPUT* pResult );
VOID MakeResponseMessage( IN EAPCB* pwb, IN PPP_EAP_PACKET* pReceiveBuf, OUT PPP_EAP_PACKET * pSendBuf, IN DWORD cbSendBuf );
VOID MakeResponseMessage1( IN EAPCB* pwb, OUT PPP_EAP_PACKET * pSendBuf, IN DWORD cbSendBuf );
VOID MakeResultMessage( IN EAPCB * pwb, IN DWORD dwError, OUT PPP_EAP_PACKET* pSendBuf, IN DWORD cbSendBuf );
DWORD GetPasswordFromResponse( IN PPP_EAP_PACKET* pReceiveBuf, OUT CHAR* pszUserName );
DWORD MakeAuthenticationAttributes( IN CHAR * szUserName, IN CHAR * szPassword, IN EAPCB * pwb );
DWORD MakeMPPEKeyAttributes( IN EAPCB * pwb );
DWORD GetIdentity( IN HWND hwndParent, IN BYTE* pUserDataIn, IN DWORD dwSizeOfUserDataIn, OUT BYTE** ppUserDataOut, OUT DWORD* pdwSizeOfUserDataOut, OUT WCHAR** ppwszIdentityOut );
VOID GetUsernameAndPassword( IN HWND hwndParent, IN EAP_NAME_DIALOG* pEapNameDialog );
INT_PTR CALLBACK UsernameDialogProc( IN HWND hWnd, IN UINT unMsg, IN WPARAM wParam, IN LPARAM lParam );
BOOL InitUsernameDialog( IN HWND hWnd, IN LPARAM lParam );
BOOL UsernameCommand( IN EAP_NAME_DIALOG* pEapNameDialog, IN WORD wId, IN HWND hWndDlg );
#endif // _EAP_H_
|