| /** |
| * 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 |