| /** | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER within this package. | |
| */ | |
| #ifndef _RASEAPIF_ | |
| #define _RASEAPIF_ | |
| #include <winapifamily.h> | |
| #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) | |
| #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_VALUENAME_ISTUNNEL_METHOD TEXT("IsTunnelMethod") | |
| #define RAS_EAP_VALUENAME_FILTER_INNERMETHODS TEXT("FilterInnerMethods") | |
| #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, | |
| raatNASIPv6Address = 95, | |
| raatFramedInterfaceId, | |
| raatFramedIPv6Prefix, | |
| raatLoginIPv6Host, | |
| raatFramedIPv6Route, | |
| raatFramedIPv6Pool, | |
| raatARAPGuestLogon = 8096, | |
| raatCertificateOID, | |
| raatEAPConfiguration, | |
| raatPEAPEmbeddedEAPTypeId = 8099, | |
| raatInnerEAPTypeId = 8099, | |
| raatPEAPFastRoamedSession = 8100, | |
| raatFastRoamedSession = 8100, | |
| raatEAPTLV = 8102, | |
| raatCredentialsChanged, | |
| raatPeerId = 9000, | |
| raatServerId, | |
| raatMethodId, | |
| raatEMSK, | |
| raatSessionId, | |
| 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 | |
| #define RAS_EAP_FLAG_PEAP_FORCE_FULL_AUTH 0x00001000 | |
| #define RAS_EAP_FLAG_PRE_LOGON 0x00020000 | |
| #define RAS_EAP_FLAG_CONFG_READONLY 0x00080000 | |
| #define RAS_EAP_FLAG_RESERVED 0x00100000 | |
| #define RAS_EAP_FLAG_SAVE_CREDMAN 0x00200000 | |
| 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; | |
| typedef struct _LEGACY_IDENTITY_UI_PARAMS { | |
| DWORD eapType; | |
| DWORD dwFlags; | |
| DWORD dwSizeofConnectionData; | |
| BYTE *pConnectionData; | |
| DWORD dwSizeofUserData; | |
| BYTE *pUserData; | |
| DWORD dwSizeofUserDataOut; | |
| BYTE *pUserDataOut; | |
| LPWSTR pwszIdentity; | |
| DWORD dwError; | |
| } LEGACY_IDENTITY_UI_PARAMS; | |
| typedef struct _LEGACY_INTERACTIVE_UI_PARAMS { | |
| DWORD eapType; | |
| DWORD dwSizeofContextData; | |
| BYTE *pContextData; | |
| DWORD dwSizeofInteractiveUIData; | |
| BYTE *pInteractiveUIData; | |
| DWORD dwError; | |
| } LEGACY_INTERACTIVE_UI_PARAMS; | |
| 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 **ppwszIdentityOut); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif | |
| #endif |