| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the w64 mingw-runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _RASEAPIF_ |
| #define _RASEAPIF_ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #define RAS_EAP_REGISTRY_LOCATION TEXT("System\\CurrentControlSet\\Services\\Rasman\\PPP\\EAP") |
| |
| #define RAS_EAP_VALUENAME_PATH TEXT("Path") |
| #define RAS_EAP_VALUENAME_CONFIGUI TEXT("ConfigUIPath") |
| #define RAS_EAP_VALUENAME_INTERACTIVEUI TEXT("InteractiveUIPath") |
| #define RAS_EAP_VALUENAME_IDENTITY TEXT("IdentityPath") |
| #define RAS_EAP_VALUENAME_FRIENDLY_NAME TEXT("FriendlyName") |
| #define RAS_EAP_VALUENAME_DEFAULT_DATA TEXT("ConfigData") |
| #define RAS_EAP_VALUENAME_REQUIRE_CONFIGUI TEXT("RequireConfigUI") |
| #define RAS_EAP_VALUENAME_ENCRYPTION TEXT("MPPEEncryptionSupported") |
| #define RAS_EAP_VALUENAME_INVOKE_NAMEDLG TEXT("InvokeUsernameDialog") |
| #define RAS_EAP_VALUENAME_INVOKE_PWDDLG TEXT("InvokePasswordDialog") |
| #define RAS_EAP_VALUENAME_CONFIG_CLSID TEXT("ConfigCLSID") |
| #define RAS_EAP_VALUENAME_STANDALONE_SUPPORTED TEXT("StandaloneSupported") |
| #define RAS_EAP_VALUENAME_ROLES_SUPPORTED TEXT("RolesSupported") |
| #define RAS_EAP_VALUENAME_PER_POLICY_CONFIG TEXT("PerPolicyConfig") |
| |
| #define RAS_EAP_ROLE_AUTHENTICATOR 0x00000001 |
| #define RAS_EAP_ROLE_AUTHENTICATEE 0x00000002 |
| |
| #define RAS_EAP_ROLE_EXCLUDE_IN_EAP 0x00000004 |
| #define RAS_EAP_ROLE_EXCLUDE_IN_PEAP 0x00000008 |
| #define RAS_EAP_ROLE_EXCLUDE_IN_VPN 0x00000010 |
| |
| typedef enum _RAS_AUTH_ATTRIBUTE_TYPE_ { |
| raatMinimum = 0,raatUserName,raatUserPassword,raatMD5CHAPPassword,raatNASIPAddress,raatNASPort,raatServiceType,raatFramedProtocol, |
| raatFramedIPAddress,raatFramedIPNetmask,raatFramedRouting = 10,raatFilterId,raatFramedMTU,raatFramedCompression,raatLoginIPHost, |
| raatLoginService,raatLoginTCPPort,raatUnassigned17,raatReplyMessage,raatCallbackNumber,raatCallbackId =20,raatUnassigned21, |
| raatFramedRoute,raatFramedIPXNetwork,raatState,raatClass,raatVendorSpecific,raatSessionTimeout,raatIdleTimeout,raatTerminationAction, |
| raatCalledStationId = 30,raatCallingStationId,raatNASIdentifier,raatProxyState,raatLoginLATService,raatLoginLATNode,raatLoginLATGroup, |
| raatFramedAppleTalkLink,raatFramedAppleTalkNetwork,raatFramedAppleTalkZone,raatAcctStatusType = 40,raatAcctDelayTime,raatAcctInputOctets, |
| raatAcctOutputOctets,raatAcctSessionId,raatAcctAuthentic,raatAcctSessionTime,raatAcctInputPackets,raatAcctOutputPackets,raatAcctTerminateCause, |
| raatAcctMultiSessionId = 50,raatAcctLinkCount,raatAcctEventTimeStamp = 55,raatMD5CHAPChallenge = 60,raatNASPortType,raatPortLimit,raatLoginLATPort, |
| raatTunnelType,raatTunnelMediumType,raatTunnelClientEndpoint,raatTunnelServerEndpoint,raatARAPPassword = 70,raatARAPFeatures,raatARAPZoneAccess, |
| raatARAPSecurity,raatARAPSecurityData,raatPasswordRetry,raatPrompt,raatConnectInfo,raatConfigurationToken,raatEAPMessage,raatSignature = 80, |
| raatARAPChallengeResponse = 84,raatAcctInterimInterval = 85,raatARAPGuestLogon = 8096,raatCertificateOID,raatEAPConfiguration, |
| raatPEAPEmbeddedEAPTypeId,raatPEAPFastRoamedSession,raatEAPTLV = 8102,raatReserved = 0xFFFFFFFF |
| } RAS_AUTH_ATTRIBUTE_TYPE; |
| |
| #define raatARAPChallenge 33 |
| #define raatARAPOldPassword 19 |
| #define raatARAPNewPassword 20 |
| #define raatARAPPasswordChangeReason 21 |
| |
| typedef struct _RAS_AUTH_ATTRIBUTE { |
| RAS_AUTH_ATTRIBUTE_TYPE raaType; |
| DWORD dwLength; |
| PVOID Value; |
| } RAS_AUTH_ATTRIBUTE,*PRAS_AUTH_ATTRIBUTE; |
| |
| #define EAPCODE_Request 1 |
| #define EAPCODE_Response 2 |
| #define EAPCODE_Success 3 |
| #define EAPCODE_Failure 4 |
| |
| #define MAXEAPCODE 4 |
| |
| #define RAS_EAP_FLAG_ROUTER 0x00000001 |
| #define RAS_EAP_FLAG_NON_INTERACTIVE 0x00000002 |
| #define RAS_EAP_FLAG_LOGON 0x00000004 |
| #define RAS_EAP_FLAG_PREVIEW 0x00000008 |
| #define RAS_EAP_FLAG_FIRST_LINK 0x00000010 |
| #define RAS_EAP_FLAG_MACHINE_AUTH 0x00000020 |
| #define RAS_EAP_FLAG_GUEST_ACCESS 0x00000040 |
| #define RAS_EAP_FLAG_8021X_AUTH 0x00000080 |
| #define RAS_EAP_FLAG_HOSTED_IN_PEAP 0x00000100 |
| #define RAS_EAP_FLAG_RESUME_FROM_HIBERNATE 0x00000200 |
| #define RAS_EAP_FLAG_PEAP_UPFRONT 0x00000400 |
| #define RAS_EAP_FLAG_ALTERNATIVE_USER_DB 0x00000800 |
| |
| typedef struct _PPP_EAP_PACKET { |
| BYTE Code; |
| BYTE Id; |
| BYTE Length[2]; |
| BYTE Data[1]; |
| } PPP_EAP_PACKET,*PPPP_EAP_PACKET; |
| |
| #define PPP_EAP_PACKET_HDR_LEN (sizeof(PPP_EAP_PACKET) - 1) |
| |
| typedef struct _PPP_EAP_INPUT { |
| DWORD dwSizeInBytes; |
| DWORD fFlags; |
| WINBOOL fAuthenticator; |
| WCHAR *pwszIdentity; |
| WCHAR *pwszPassword; |
| BYTE bInitialId; |
| RAS_AUTH_ATTRIBUTE *pUserAttributes; |
| WINBOOL fAuthenticationComplete; |
| DWORD dwAuthResultCode; |
| HANDLE hTokenImpersonateUser; |
| WINBOOL fSuccessPacketReceived; |
| WINBOOL fDataReceivedFromInteractiveUI; |
| PBYTE pDataFromInteractiveUI; |
| DWORD dwSizeOfDataFromInteractiveUI; |
| PBYTE pConnectionData; |
| DWORD dwSizeOfConnectionData; |
| PBYTE pUserData; |
| DWORD dwSizeOfUserData; |
| HANDLE hReserved; |
| } PPP_EAP_INPUT,*PPPP_EAP_INPUT; |
| |
| typedef enum _PPP_EAP_ACTION { |
| EAPACTION_NoAction,EAPACTION_Authenticate,EAPACTION_Done,EAPACTION_SendAndDone,EAPACTION_Send,EAPACTION_SendWithTimeout, |
| EAPACTION_SendWithTimeoutInteractive,EAPACTION_IndicateTLV,EAPACTION_IndicateIdentity |
| } PPP_EAP_ACTION; |
| |
| typedef struct _PPP_EAP_OUTPUT { |
| DWORD dwSizeInBytes; |
| PPP_EAP_ACTION Action; |
| DWORD dwAuthResultCode; |
| RAS_AUTH_ATTRIBUTE *pUserAttributes; |
| WINBOOL fInvokeInteractiveUI; |
| PBYTE pUIContextData; |
| DWORD dwSizeOfUIContextData; |
| WINBOOL fSaveConnectionData; |
| PBYTE pConnectionData; |
| DWORD dwSizeOfConnectionData; |
| WINBOOL fSaveUserData; |
| PBYTE pUserData; |
| DWORD dwSizeOfUserData; |
| } PPP_EAP_OUTPUT,*PPPP_EAP_OUTPUT; |
| |
| typedef struct _PPP_EAP_INFO { |
| DWORD dwSizeInBytes; |
| DWORD dwEapTypeId; |
| DWORD (WINAPI *RasEapInitialize)(WINBOOL fInitialize); |
| DWORD (WINAPI *RasEapBegin)(VOID **ppWorkBuffer,PPP_EAP_INPUT *pPppEapInput); |
| DWORD (WINAPI *RasEapEnd)(VOID *pWorkBuffer); |
| DWORD (WINAPI *RasEapMakeMessage)(VOID *pWorkBuf,PPP_EAP_PACKET *pReceivePacket,PPP_EAP_PACKET *pSendPacket,DWORD cbSendPacket,PPP_EAP_OUTPUT *pEapOutput,PPP_EAP_INPUT *pEapInput); |
| } PPP_EAP_INFO,*PPPP_EAP_INFO; |
| |
| DWORD WINAPI RasEapGetInfo(DWORD dwEapTypeId,PPP_EAP_INFO *pEapInfo); |
| DWORD WINAPI RasEapFreeMemory(BYTE *pMemory); |
| DWORD WINAPI RasEapInvokeInteractiveUI(DWORD dwEapTypeId,HWND hwndParent,BYTE *pUIContextData,DWORD dwSizeOfUIContextData,BYTE **ppDataFromInteractiveUI,DWORD *pdwSizeOfDataFromInteractiveUI); |
| DWORD WINAPI RasEapInvokeConfigUI(DWORD dwEapTypeId,HWND hwndParent,DWORD dwFlags,BYTE *pConnectionDataIn,DWORD dwSizeOfConnectionDataIn,BYTE **ppConnectionDataOut,DWORD *pdwSizeOfConnectionDataOut); |
| DWORD WINAPI RasEapGetIdentity(DWORD dwEapTypeId,HWND hwndParent,DWORD dwFlags,const WCHAR *pwszPhonebook,const WCHAR *pwszEntry,BYTE *pConnectionDataIn,DWORD dwSizeOfConnectionDataIn,BYTE *pUserDataIn,DWORD dwSizeOfUserDataIn,BYTE **ppUserDataOut,DWORD *pdwSizeOfUserDataOut,WCHAR **ppwszIdentity); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |