You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
4.2 KiB
199 lines
4.2 KiB
/*
|
|
|
|
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_
|