| 1 |
/** |
| 2 |
* This file is part of the mingw-w64 runtime package. |
| 3 |
* No warranty is given; refer to the file DISCLAIMER within this package. |
| 4 |
*/ |
| 5 |
|
| 6 |
#ifndef _RASEAPIF_ |
| 7 |
#define _RASEAPIF_ |
| 8 |
|
| 9 |
#include <winapifamily.h> |
| 10 |
|
| 11 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 12 |
|
| 13 |
#ifdef __cplusplus |
| 14 |
extern "C" { |
| 15 |
#endif |
| 16 |
|
| 17 |
#define RAS_EAP_REGISTRY_LOCATION TEXT("System\\CurrentControlSet\\Services\\Rasman\\PPP\\EAP") |
| 18 |
|
| 19 |
#define RAS_EAP_VALUENAME_PATH TEXT("Path") |
| 20 |
#define RAS_EAP_VALUENAME_CONFIGUI TEXT("ConfigUIPath") |
| 21 |
#define RAS_EAP_VALUENAME_INTERACTIVEUI TEXT("InteractiveUIPath") |
| 22 |
#define RAS_EAP_VALUENAME_IDENTITY TEXT("IdentityPath") |
| 23 |
#define RAS_EAP_VALUENAME_FRIENDLY_NAME TEXT("FriendlyName") |
| 24 |
#define RAS_EAP_VALUENAME_DEFAULT_DATA TEXT("ConfigData") |
| 25 |
#define RAS_EAP_VALUENAME_REQUIRE_CONFIGUI TEXT("RequireConfigUI") |
| 26 |
#define RAS_EAP_VALUENAME_ENCRYPTION TEXT("MPPEEncryptionSupported") |
| 27 |
#define RAS_EAP_VALUENAME_INVOKE_NAMEDLG TEXT("InvokeUsernameDialog") |
| 28 |
#define RAS_EAP_VALUENAME_INVOKE_PWDDLG TEXT("InvokePasswordDialog") |
| 29 |
#define RAS_EAP_VALUENAME_CONFIG_CLSID TEXT("ConfigCLSID") |
| 30 |
#define RAS_EAP_VALUENAME_STANDALONE_SUPPORTED TEXT("StandaloneSupported") |
| 31 |
#define RAS_EAP_VALUENAME_ROLES_SUPPORTED TEXT("RolesSupported") |
| 32 |
#define RAS_EAP_VALUENAME_PER_POLICY_CONFIG TEXT("PerPolicyConfig") |
| 33 |
#define RAS_EAP_VALUENAME_ISTUNNEL_METHOD TEXT("IsTunnelMethod") |
| 34 |
#define RAS_EAP_VALUENAME_FILTER_INNERMETHODS TEXT("FilterInnerMethods") |
| 35 |
|
| 36 |
#define RAS_EAP_ROLE_AUTHENTICATOR 0x00000001 |
| 37 |
#define RAS_EAP_ROLE_AUTHENTICATEE 0x00000002 |
| 38 |
|
| 39 |
#define RAS_EAP_ROLE_EXCLUDE_IN_EAP 0x00000004 |
| 40 |
#define RAS_EAP_ROLE_EXCLUDE_IN_PEAP 0x00000008 |
| 41 |
#define RAS_EAP_ROLE_EXCLUDE_IN_VPN 0x00000010 |
| 42 |
|
| 43 |
typedef enum _RAS_AUTH_ATTRIBUTE_TYPE_ { |
| 44 |
raatMinimum = 0, |
| 45 |
raatUserName, |
| 46 |
raatUserPassword, |
| 47 |
raatMD5CHAPPassword, |
| 48 |
raatNASIPAddress, |
| 49 |
raatNASPort, |
| 50 |
raatServiceType, |
| 51 |
raatFramedProtocol, |
| 52 |
raatFramedIPAddress, |
| 53 |
raatFramedIPNetmask, |
| 54 |
raatFramedRouting = 10, |
| 55 |
raatFilterId, |
| 56 |
raatFramedMTU, |
| 57 |
raatFramedCompression, |
| 58 |
raatLoginIPHost, |
| 59 |
raatLoginService, |
| 60 |
raatLoginTCPPort, |
| 61 |
raatUnassigned17, |
| 62 |
raatReplyMessage, |
| 63 |
raatCallbackNumber, |
| 64 |
raatCallbackId =20, |
| 65 |
raatUnassigned21, |
| 66 |
raatFramedRoute, |
| 67 |
raatFramedIPXNetwork, |
| 68 |
raatState, |
| 69 |
raatClass, |
| 70 |
raatVendorSpecific, |
| 71 |
raatSessionTimeout, |
| 72 |
raatIdleTimeout, |
| 73 |
raatTerminationAction, |
| 74 |
raatCalledStationId = 30, |
| 75 |
raatCallingStationId, |
| 76 |
raatNASIdentifier, |
| 77 |
raatProxyState, |
| 78 |
raatLoginLATService, |
| 79 |
raatLoginLATNode, |
| 80 |
raatLoginLATGroup, |
| 81 |
raatFramedAppleTalkLink, |
| 82 |
raatFramedAppleTalkNetwork, |
| 83 |
raatFramedAppleTalkZone, |
| 84 |
raatAcctStatusType = 40, |
| 85 |
raatAcctDelayTime, |
| 86 |
raatAcctInputOctets, |
| 87 |
raatAcctOutputOctets, |
| 88 |
raatAcctSessionId, |
| 89 |
raatAcctAuthentic, |
| 90 |
raatAcctSessionTime, |
| 91 |
raatAcctInputPackets, |
| 92 |
raatAcctOutputPackets, |
| 93 |
raatAcctTerminateCause, |
| 94 |
raatAcctMultiSessionId = 50, |
| 95 |
raatAcctLinkCount, |
| 96 |
raatAcctEventTimeStamp = 55, |
| 97 |
raatMD5CHAPChallenge = 60, |
| 98 |
raatNASPortType, |
| 99 |
raatPortLimit, |
| 100 |
raatLoginLATPort, |
| 101 |
raatTunnelType, |
| 102 |
raatTunnelMediumType, |
| 103 |
raatTunnelClientEndpoint, |
| 104 |
raatTunnelServerEndpoint, |
| 105 |
raatARAPPassword = 70, |
| 106 |
raatARAPFeatures, |
| 107 |
raatARAPZoneAccess, |
| 108 |
raatARAPSecurity, |
| 109 |
raatARAPSecurityData, |
| 110 |
raatPasswordRetry, |
| 111 |
raatPrompt, |
| 112 |
raatConnectInfo, |
| 113 |
raatConfigurationToken, |
| 114 |
raatEAPMessage, |
| 115 |
raatSignature = 80, |
| 116 |
raatARAPChallengeResponse = 84, |
| 117 |
raatAcctInterimInterval = 85, |
| 118 |
raatNASIPv6Address = 95, |
| 119 |
raatFramedInterfaceId, |
| 120 |
raatFramedIPv6Prefix, |
| 121 |
raatLoginIPv6Host, |
| 122 |
raatFramedIPv6Route, |
| 123 |
raatFramedIPv6Pool, |
| 124 |
raatARAPGuestLogon = 8096, |
| 125 |
raatCertificateOID, |
| 126 |
raatEAPConfiguration, |
| 127 |
raatPEAPEmbeddedEAPTypeId = 8099, |
| 128 |
raatInnerEAPTypeId = 8099, |
| 129 |
raatPEAPFastRoamedSession = 8100, |
| 130 |
raatFastRoamedSession = 8100, |
| 131 |
raatEAPTLV = 8102, |
| 132 |
raatCredentialsChanged, |
| 133 |
raatPeerId = 9000, |
| 134 |
raatServerId, |
| 135 |
raatMethodId, |
| 136 |
raatEMSK, |
| 137 |
raatSessionId, |
| 138 |
raatReserved = 0xffffffff |
| 139 |
} RAS_AUTH_ATTRIBUTE_TYPE; |
| 140 |
|
| 141 |
#define raatARAPChallenge 33 |
| 142 |
#define raatARAPOldPassword 19 |
| 143 |
#define raatARAPNewPassword 20 |
| 144 |
#define raatARAPPasswordChangeReason 21 |
| 145 |
|
| 146 |
typedef struct _RAS_AUTH_ATTRIBUTE { |
| 147 |
RAS_AUTH_ATTRIBUTE_TYPE raaType; |
| 148 |
DWORD dwLength; |
| 149 |
PVOID Value; |
| 150 |
} RAS_AUTH_ATTRIBUTE,*PRAS_AUTH_ATTRIBUTE; |
| 151 |
|
| 152 |
#define EAPCODE_Request 1 |
| 153 |
#define EAPCODE_Response 2 |
| 154 |
#define EAPCODE_Success 3 |
| 155 |
#define EAPCODE_Failure 4 |
| 156 |
|
| 157 |
#define MAXEAPCODE 4 |
| 158 |
|
| 159 |
#define RAS_EAP_FLAG_ROUTER 0x00000001 |
| 160 |
#define RAS_EAP_FLAG_NON_INTERACTIVE 0x00000002 |
| 161 |
#define RAS_EAP_FLAG_LOGON 0x00000004 |
| 162 |
#define RAS_EAP_FLAG_PREVIEW 0x00000008 |
| 163 |
#define RAS_EAP_FLAG_FIRST_LINK 0x00000010 |
| 164 |
#define RAS_EAP_FLAG_MACHINE_AUTH 0x00000020 |
| 165 |
#define RAS_EAP_FLAG_GUEST_ACCESS 0x00000040 |
| 166 |
#define RAS_EAP_FLAG_8021X_AUTH 0x00000080 |
| 167 |
#define RAS_EAP_FLAG_HOSTED_IN_PEAP 0x00000100 |
| 168 |
#define RAS_EAP_FLAG_RESUME_FROM_HIBERNATE 0x00000200 |
| 169 |
#define RAS_EAP_FLAG_PEAP_UPFRONT 0x00000400 |
| 170 |
#define RAS_EAP_FLAG_ALTERNATIVE_USER_DB 0x00000800 |
| 171 |
#define RAS_EAP_FLAG_PEAP_FORCE_FULL_AUTH 0x00001000 |
| 172 |
#define RAS_EAP_FLAG_PRE_LOGON 0x00020000 |
| 173 |
#define RAS_EAP_FLAG_CONFG_READONLY 0x00080000 |
| 174 |
#define RAS_EAP_FLAG_RESERVED 0x00100000 |
| 175 |
#define RAS_EAP_FLAG_SAVE_CREDMAN 0x00200000 |
| 176 |
|
| 177 |
typedef struct _PPP_EAP_PACKET { |
| 178 |
BYTE Code; |
| 179 |
BYTE Id; |
| 180 |
BYTE Length[2]; |
| 181 |
BYTE Data[1]; |
| 182 |
} PPP_EAP_PACKET,*PPPP_EAP_PACKET; |
| 183 |
|
| 184 |
#define PPP_EAP_PACKET_HDR_LEN (sizeof(PPP_EAP_PACKET) - 1) |
| 185 |
|
| 186 |
typedef struct _PPP_EAP_INPUT { |
| 187 |
DWORD dwSizeInBytes; |
| 188 |
DWORD fFlags; |
| 189 |
WINBOOL fAuthenticator; |
| 190 |
WCHAR *pwszIdentity; |
| 191 |
WCHAR *pwszPassword; |
| 192 |
BYTE bInitialId; |
| 193 |
RAS_AUTH_ATTRIBUTE *pUserAttributes; |
| 194 |
WINBOOL fAuthenticationComplete; |
| 195 |
DWORD dwAuthResultCode; |
| 196 |
HANDLE hTokenImpersonateUser; |
| 197 |
WINBOOL fSuccessPacketReceived; |
| 198 |
WINBOOL fDataReceivedFromInteractiveUI; |
| 199 |
PBYTE pDataFromInteractiveUI; |
| 200 |
DWORD dwSizeOfDataFromInteractiveUI; |
| 201 |
PBYTE pConnectionData; |
| 202 |
DWORD dwSizeOfConnectionData; |
| 203 |
PBYTE pUserData; |
| 204 |
DWORD dwSizeOfUserData; |
| 205 |
HANDLE hReserved; |
| 206 |
} PPP_EAP_INPUT,*PPPP_EAP_INPUT; |
| 207 |
|
| 208 |
typedef enum _PPP_EAP_ACTION { |
| 209 |
EAPACTION_NoAction, |
| 210 |
EAPACTION_Authenticate, |
| 211 |
EAPACTION_Done, |
| 212 |
EAPACTION_SendAndDone, |
| 213 |
EAPACTION_Send, |
| 214 |
EAPACTION_SendWithTimeout, |
| 215 |
EAPACTION_SendWithTimeoutInteractive, |
| 216 |
EAPACTION_IndicateTLV, |
| 217 |
EAPACTION_IndicateIdentity |
| 218 |
} PPP_EAP_ACTION; |
| 219 |
|
| 220 |
typedef struct _PPP_EAP_OUTPUT { |
| 221 |
DWORD dwSizeInBytes; |
| 222 |
PPP_EAP_ACTION Action; |
| 223 |
DWORD dwAuthResultCode; |
| 224 |
RAS_AUTH_ATTRIBUTE *pUserAttributes; |
| 225 |
WINBOOL fInvokeInteractiveUI; |
| 226 |
PBYTE pUIContextData; |
| 227 |
DWORD dwSizeOfUIContextData; |
| 228 |
WINBOOL fSaveConnectionData; |
| 229 |
PBYTE pConnectionData; |
| 230 |
DWORD dwSizeOfConnectionData; |
| 231 |
WINBOOL fSaveUserData; |
| 232 |
PBYTE pUserData; |
| 233 |
DWORD dwSizeOfUserData; |
| 234 |
} PPP_EAP_OUTPUT,*PPPP_EAP_OUTPUT; |
| 235 |
|
| 236 |
typedef struct _PPP_EAP_INFO { |
| 237 |
DWORD dwSizeInBytes; |
| 238 |
DWORD dwEapTypeId; |
| 239 |
DWORD (WINAPI *RasEapInitialize)(WINBOOL fInitialize); |
| 240 |
DWORD (WINAPI *RasEapBegin)(VOID **ppWorkBuffer, PPP_EAP_INPUT *pPppEapInput); |
| 241 |
DWORD (WINAPI *RasEapEnd)(VOID *pWorkBuffer); |
| 242 |
DWORD (WINAPI *RasEapMakeMessage)(VOID *pWorkBuf, PPP_EAP_PACKET *pReceivePacket, PPP_EAP_PACKET *pSendPacket, DWORD cbSendPacket, PPP_EAP_OUTPUT *pEapOutput, PPP_EAP_INPUT *pEapInput); |
| 243 |
} PPP_EAP_INFO,*PPPP_EAP_INFO; |
| 244 |
|
| 245 |
typedef struct _LEGACY_IDENTITY_UI_PARAMS { |
| 246 |
DWORD eapType; |
| 247 |
DWORD dwFlags; |
| 248 |
DWORD dwSizeofConnectionData; |
| 249 |
BYTE *pConnectionData; |
| 250 |
DWORD dwSizeofUserData; |
| 251 |
BYTE *pUserData; |
| 252 |
DWORD dwSizeofUserDataOut; |
| 253 |
BYTE *pUserDataOut; |
| 254 |
LPWSTR pwszIdentity; |
| 255 |
DWORD dwError; |
| 256 |
} LEGACY_IDENTITY_UI_PARAMS; |
| 257 |
|
| 258 |
typedef struct _LEGACY_INTERACTIVE_UI_PARAMS { |
| 259 |
DWORD eapType; |
| 260 |
DWORD dwSizeofContextData; |
| 261 |
BYTE *pContextData; |
| 262 |
DWORD dwSizeofInteractiveUIData; |
| 263 |
BYTE *pInteractiveUIData; |
| 264 |
DWORD dwError; |
| 265 |
} LEGACY_INTERACTIVE_UI_PARAMS; |
| 266 |
|
| 267 |
DWORD WINAPI RasEapGetInfo(DWORD dwEapTypeId, PPP_EAP_INFO *pEapInfo); |
| 268 |
DWORD WINAPI RasEapFreeMemory(BYTE *pMemory); |
| 269 |
DWORD WINAPI RasEapInvokeInteractiveUI(DWORD dwEapTypeId, HWND hwndParent, BYTE *pUIContextData, DWORD dwSizeOfUIContextData, BYTE **ppDataFromInteractiveUI, DWORD *pdwSizeOfDataFromInteractiveUI); |
| 270 |
DWORD WINAPI RasEapInvokeConfigUI(DWORD dwEapTypeId, HWND hwndParent, DWORD dwFlags, BYTE *pConnectionDataIn, DWORD dwSizeOfConnectionDataIn, BYTE **ppConnectionDataOut, DWORD *pdwSizeOfConnectionDataOut); |
| 271 |
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); |
| 272 |
|
| 273 |
#ifdef __cplusplus |
| 274 |
} |
| 275 |
#endif |
| 276 |
|
| 277 |
#endif |
| 278 |
#endif |