|
|
/*++
Copyright (c) 2000, Microsoft Corporation
Module Name: eapolutil.h
Abstract:
Definitions for tools and ends
Revision History:
sachins, May 04 2000, Created
--*/
#ifndef _EAPOLUTIL_H_
#define _EAPOLUTIL_H_
//
// EAPOL_ZC_INTF
//
// Used to transfer data between 802.1X and Zero Config
//
typedef struct _EAPOL_ZC_INTF { DWORD dwAuthFailCount; EAPOL_AUTHENTICATION_TYPE PreviousAuthenticationType; DWORD dwSizeOfSSID; BYTE bSSID[MAX_SSID_LEN]; } EAPOL_ZC_INTF, *PEAPOL_ZC_INTF;
//
// STRUCT: EAPOLUIRESPFUNC
//
typedef DWORD (*EAPOLUIRESPFUNC) (EAPOL_EAP_UI_CONTEXT, EAPOLUI_RESP);
//
// STRUCT: EAPOLUIRESPFUNCMAP
//
typedef struct _EAPOLUIRESPFUNCMAP { DWORD dwEAPOLUIMsgType; EAPOLUIRESPFUNC EapolRespUIFunc; DWORD dwNumBlobs; } EAPOLUIRESPFUNCMAP, *PEAPOLUIRESPFUNCMAP;
//
// Definitions and structures used in creating default EAP-TLS connection
// blob in the registry
// Ensure that the EAP-TLS structures defined below are always in sync
// with those defined in EAP-TLS code directory
//
#define EAPTLS_CONN_FLAG_REGISTRY 0x00000001
#define EAPTLS_CONN_FLAG_NO_VALIDATE_CERT 0x00000002
#define EAPTLS_CONN_FLAG_NO_VALIDATE_NAME 0x00000004
typedef struct _EAPTLS_CONN_PROPERTIES { DWORD dwVersion; DWORD dwSize; DWORD fFlags; DWORD cbHash; BYTE pbHash[20]; // MAX_HASH_SIZE = 20
WCHAR awszServerName[1]; } EAPTLS_CONN_PROPERTIES, *PEAPTLS_CONN_PROPERTIES;
//
// FUNCTION DECLARATIONS
//
extern HANDLE GetCurrentUserTokenW ( WCHAR Winsta[], DWORD DesiredAccess );
VOID HostToWireFormat16( IN WORD wHostFormat, IN OUT PBYTE pWireFormat );
WORD WireToHostFormat16( IN PBYTE pWireFormat );
VOID HostToWireFormat32( IN DWORD dwHostFormat, IN OUT PBYTE pWireFormat );
DWORD WireToHostFormat32( IN PBYTE pWireFormat );
DWORD ElSetCustomAuthData ( IN WCHAR *pwszGuid, IN DWORD dwEapTypeId, IN DWORD dwSizeOfSSID, IN BYTE *pbSSID, IN BYTE *pbConnInfo, IN DWORD *pdwInfoSize );
DWORD ElGetCustomAuthData ( IN WCHAR *pwszGuid, IN DWORD dwEapTypeId, IN DWORD dwSizeOfSSID, IN BYTE *pbSSID, IN OUT BYTE *pbConnInfo, IN OUT DWORD *pdwInfoSize );
DWORD ElReAuthenticateInterface ( IN WCHAR *pwszGuid);
DWORD WINAPI ElReAuthenticateInterfaceWorker ( IN PVOID pvContext);
DWORD ElSetEapUserInfo ( IN HANDLE hToken, IN WCHAR *pwszGuid, IN DWORD dwEapTypeId, IN DWORD dwSizeOfSSID, IN BYTE *pbSSID, IN BYTE *pbUserInfo, IN DWORD dwInfoSize );
DWORD ElGetEapUserInfo ( IN HANDLE hToken, IN WCHAR *pwszGuid, IN DWORD dwEapTypeId, IN DWORD dwSizeOfSSID, IN BYTE *pbSSID, IN OUT BYTE *pbUserInfo, IN OUT DWORD *pdwInfoSize );
DWORD ElDeleteEapUserInfo ( IN HANDLE hToken, IN WCHAR *pwszGUID, IN DWORD dwEapTypeId, IN DWORD dwSizeOfSSID, IN BYTE *pbSSID );
DWORD ElSetInterfaceParams ( IN WCHAR *pwszGUID, IN EAPOL_INTF_PARAMS *pIntfParams );
DWORD ElGetInterfaceParams ( IN WCHAR *pwszGUID, IN OUT EAPOL_INTF_PARAMS *pIntfParams );
DWORD ElQueryInterfaceState ( IN WCHAR *pwszGUID, IN OUT EAPOL_INTF_STATE *pIntfState );
DWORD ElGetEapData ( IN DWORD dwEapType, IN DWORD dwSizeOfIn, IN BYTE *pbBufferIn, IN DWORD dwOffset, IN DWORD *pdwSizeOfOut, IN PBYTE *ppbBufferOut );
DWORD ElSetEapData ( IN DWORD dwEapType, IN DWORD *pdwSizeOfIn, IN PBYTE *ppbBufferIn, IN DWORD dwOffset, IN DWORD dwAuthData, IN PBYTE pbAuthData );
DWORD ElGetEapKeyFromToken ( IN HANDLE hUserToken, OUT HKEY *phkey );
DWORD ElInitRegPortData ( IN WCHAR *pszDeviceGUID );
DWORD ElCreateDefaultEapData ( IN OUT DWORD *pdwSizeOfEapData, IN OUT BYTE *pbEapData );
RAS_AUTH_ATTRIBUTE * ElAuthAttributeGetVendorSpecific ( IN DWORD dwVendorId, IN DWORD dwVendorType, IN RAS_AUTH_ATTRIBUTE *pAttributes );
RAS_AUTH_ATTRIBUTE * ElAuthAttributeGetFirst ( IN RAS_AUTH_ATTRIBUTE_TYPE raaType, IN RAS_AUTH_ATTRIBUTE *pAttributes, OUT HANDLE *phAttribute );
RAS_AUTH_ATTRIBUTE * ElAuthAttributeGetNext ( IN OUT HANDLE *phAttribute, IN RAS_AUTH_ATTRIBUTE_TYPE raaType );
RAS_AUTH_ATTRIBUTE * ElAuthAttributeGet ( IN RAS_AUTH_ATTRIBUTE_TYPE raaType, IN RAS_AUTH_ATTRIBUTE *pAttributes );
VOID ElReverseString ( IN CHAR *psz );
CHAR* ElEncodePw ( IN OUT CHAR *pszPassword );
CHAR* ElDecodePw ( IN OUT CHAR *pszPassword );
DWORD ElSecureEncodePw ( IN BYTE *pbPassword, IN DWORD dwSizeOfPassword, OUT DATA_BLOB *pDataBlob );
DWORD ElSecureDecodePw ( IN DATA_BLOB *pDataBlob, OUT PBYTE *ppbPassword, OUT DWORD *pdwSizeOfPassword );
VOID ElEncryptBlockUsingMD5 ( IN BYTE *pbSecret, IN ULONG ulSecretLen, IN OUT BYTE *pbBuf, IN ULONG ulBufLen );
VOID ElDecryptBlockUsingMD5 ( IN BYTE *pbSecret, IN ULONG ulSecretLen, IN OUT BYTE *pbBuf, IN ULONG ulBufLen );
VOID ElGetHMACMD5Digest ( IN BYTE *pbBuf, IN DWORD dwBufLen, IN BYTE *pbKey, IN DWORD dwKeyLen, IN OUT VOID *pvDigest );
DWORD ElWmiGetValue ( IN GUID *pGuid, IN CHAR *pszInstanceName, IN OUT BYTE *pbOutputBuffer, IN OUT DWORD *pdwOutputBufferSize );
DWORD ElWmiSetValue ( IN GUID *pGuid, IN CHAR *pszInstanceName, IN BYTE *pbInputBuffer, IN DWORD dwInputBufferSize );
DWORD ElNdisuioSetOIDValue ( IN HANDLE hInterface, IN NDIS_OID Oid, IN BYTE *pbOidData, IN ULONG ulOidDataLength );
DWORD ElNdisuioQueryOIDValue ( IN HANDLE hInterface, IN NDIS_OID Oid, IN BYTE *pbOidData, IN ULONG *pulOidDataLength );
DWORD ElGuidFromString ( IN OUT GUID *pGuid, IN WCHAR *pwszGuidString );
DWORD ElGetLoggedOnUserName ( IN HANDLE hToken, OUT PWCHAR *ppwszActiveUserName );
DWORD ElGetMachineName ( IN EAPOL_PCB *pPCB );
DWORD ElUpdateRegistryInterfaceList ( IN PNDIS_ENUM_INTF Interfaces );
DWORD ElEnumAndUpdateRegistryInterfaceList ( );
DWORD WINAPI ElWatchGlobalRegistryParams ( IN PVOID pvContext );
DWORD ElReadGlobalRegistryParams ();
DWORD WINAPI ElWatchEapConfigRegistryParams ( IN PVOID pvContext );
DWORD ElReadGlobalRegistryParams ();
DWORD ElPostEapConfigChanged ( IN WCHAR *pwszGuid, IN EAPOL_INTF_PARAMS *pIntfParams );
DWORD WINAPI ElProcessEapConfigChange ( IN PVOID pvContext );
VOID ElStringToGuid ( IN WCHAR *pwszGuid, OUT LPGUID pGuid );
DWORD ElGetIdentity ( IN EAPOL_PCB *pPCB );
HANDLE ElNLAConnectLPC ();
VOID ElNLACleanupLPC ();
VOID ElNLARegister_802_1X ( IN PLOCATION_802_1X plocation );
VOID ElNLADelete_802_1X ( IN PLOCATION_802_1X plocation );
DWORD ElGetInterfaceNdisStatistics ( IN WCHAR *pszInterfaceName, IN OUT NIC_STATISTICS *pStats );
DWORD ElCheckUserLoggedOn ( );
DWORD ElCheckUserModuleReady ( );
DWORD ElGetWinStationUserToken ( IN DWORD dwSessionId, IN PHANDLE pUserToken );
#ifdef ZEROCONFIG_LINKED
DWORD ElZeroConfigEvent ( IN DWORD dwHandle, IN WCHAR *pwszGuid, IN NDIS_802_11_SSID ndSSID, IN PRAW_DATA prdUserData );
DWORD ElZeroConfigNotify ( IN DWORD dwHandle, IN DWORD dwCmdCode, IN WCHAR *pwszGuid, IN EAPOL_ZC_INTF *pZCData );
#endif // ZEROCONFIG_LINKED
DWORD ElNetmanNotify ( IN EAPOL_PCB *pPCB, IN EAPOL_NCS_STATUS Status, IN WCHAR *pwszDisplayMessage );
DWORD ElPostShowBalloonMessage ( IN EAPOL_PCB *pPCB, IN DWORD cbCookie, IN BYTE *pbCookie, IN DWORD cbMessageLen, IN WCHAR *pwszMessage );
DWORD ElProcessReauthResponse ( IN EAPOL_EAP_UI_CONTEXT EapolUIContext, IN EAPOLUI_RESP EapolUIResp );
DWORD WINAPI ElIPPnPWorker ( IN PVOID pvContext );
DWORD ElUpdateRegistry ( );
DWORD ElRegistryUpdateXPBeta2 ( );
DWORD ElRegistryUpdateXPSP1 ( );
DWORD ElReadPolicyParams ( );
#endif // _EAPOLUTIL_H_
|