1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_EAPTYPES 7 #define _INC_EAPTYPES 8 #if (_WIN32_WINNT >= 0x0600) 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 14 typedef DWORD EAP_SESSIONID; 15 typedef void* EAP_SESSION_HANDLE; 16 17 #define EAP_FLAG_Reserved1 0x00000001 18 #define EAP_FLAG_NON_INTERACTIVE 0x00000002 19 #define EAP_FLAG_LOGON 0x00000004 20 #define EAP_FLAG_PREVIEW 0x00000008 21 #define EAP_FLAG_Reserved2 0x00000010 22 #define EAP_FLAG_MACHINE_AUTH 0x00000020 23 #define EAP_FLAG_GUEST_ACCESS 0x00000040 24 #define EAP_FLAG_Reserved3 0x00000080 25 #define EAP_FLAG_Reserved4 0x00000100 26 #define EAP_FLAG_RESUME_FROM_HIBERNATE 0x00000200 27 #define EAP_FLAG_Reserved5 0x00000400 28 #define EAP_FLAG_Reserved6 0x00000800 29 #define EAP_FLAG_FULL_AUTH 0x00001000 30 #define EAP_FLAG_PREFER_ALT_CREDENTIALS 0x00002000 31 #define EAP_FLAG_Reserved7 0x00004000 32 #define EAP_PEER_FLAG_HEALTH_STATE_CHANGE 0x00008000 33 #define EAP_FLAG_SUPRESS_UI 0x00010000 34 #define EAP_FLAG_PRE_LOGON 0x00020000 35 #define EAP_FLAG_USER_AUTH 0x00040000 36 #define EAP_FLAG_CONFG_READONLY 0x00080000 37 #define EAP_FLAG_Reserved8 0x00100000 38 39 typedef enum _EAP_ATTRIBUTE_TYPE { 40 eatMinimum = 0, 41 eatUserName = 1, 42 eatUserPassword = 2, 43 eatMD5CHAPPassword = 3, 44 eatNASIPAddress = 4, 45 eatNASport = 5, 46 eatServiceType = 6, 47 eatFramedProtocol = 7, 48 eatFramedIPAddress = 8, 49 eatFramedIPNetmask = 9, 50 eatFramedRouting = 10, 51 eatFilterId = 11, 52 eatFramedMTU = 12, 53 eatFramedCompression = 13, 54 eatLoginIPHost = 14, 55 eatLoginService = 15, 56 eatLoginTCPPort = 16, 57 eatUnassigned17 = 17, 58 eatReplyMessage = 18, 59 eatCallbackNumber = 19, 60 eatCallbackId = 20, 61 eatUnassigned21 = 21, 62 eatFramedRoute = 22, 63 eatFramedIPXNetwork = 23, 64 eatState = 24, 65 eatClass = 25, 66 eatVendorSpecific = 26, 67 eatSessionTimeout = 27, 68 eatIdleTimeout = 28, 69 eatTerminationAction = 29, 70 eatCalledStationId = 30, 71 eatCallingStationId = 31, 72 eatNASIdentifier = 32, 73 eatProxyState = 33, 74 eatLoginLATService = 34, 75 eatLoginLATNode = 35, 76 eatLoginLATGroup = 36, 77 eatFramedAppleTalkLink = 37, 78 eatFramedAppleTalkNetwork = 38, 79 eatFramedAppleTalkZone = 39, 80 eatAcctStatusType = 40, 81 eatAcctDelayTime = 41, 82 eatAcctInputOctets = 42, 83 eatAcctOutputOctets = 43, 84 eatAcctSessionId = 44, 85 eatAcctAuthentic = 45, 86 eatAcctSessionTime = 46, 87 eatAcctInputPackets = 47, 88 eatAcctOutputPackets = 48, 89 eatAcctTerminateCause = 49, 90 eatAcctMultiSessionId = 50, 91 eatAcctLinkCount = 51, 92 eatAcctEventTimeStamp = 55, 93 eatMD5CHAPChallenge = 60, 94 eatNASPortType = 61, 95 eatPortLimit = 62, 96 eatLoginLATPort = 63, 97 eatTunnelType = 64, 98 eatTunnelMediumType = 65, 99 eatTunnelClientEndpoint = 66, 100 eatTunnelServerEndpoint = 67, 101 eatARAPPassword = 70, 102 eatARAPFeatures = 71, 103 eatARAPZoneAccess = 72, 104 eatARAPSecurity = 73, 105 eatARAPSecurityData = 74, 106 eatPasswordRetry = 75, 107 eatPrompt = 76, 108 eatConnectInfo = 77, 109 eatConfigurationToken = 78, 110 eatEAPMessage = 79, 111 eatSignature = 80, 112 eatARAPChallengeResponse = 84, 113 eatAcctInterimInterval = 85, 114 eatNASIPv6Address = 95, 115 eatFramedInterfaceId = 96, 116 eatFramedIPv6Prefix = 97, 117 eatLoginIPv6Host = 98, 118 eatFramedIPv6Route = 99, 119 eatFramedIPv6Pool = 100, 120 eatARAPGuestLogon = 8096, 121 eatCertificateOID = 8097, 122 eatEAPConfiguration = 8098, 123 eatPEAPEmbeddedEAPTypeId = 8099, 124 eatPEAPFastRoamedSession = 8100, 125 eatEAPTLV = 8102, 126 eatCredentialsChanged = 8103, 127 eatInnerEapMethodType = 8104, 128 eatClearTextPassword = 8107, 129 eatQuarantineSoH = 8150, 130 eatPeerId = 9000, 131 eatServerId = 9001, 132 eatMethodId = 9002, 133 eatEMSK = 9003, 134 eatSessionId = 9004, 135 eatReserved = 0xFFFFFFFF 136 } EAP_ATTRIBUTE_TYPE, EapAttributeType; 137 138 typedef struct _EAP_ATTRIBUTE { 139 EAP_ATTRIBUTE_TYPE eapType; 140 DWORD dwLength; 141 BYTE * pValue; 142 } EAP_ATTRIBUTE, EapAttribute; 143 144 typedef struct _EAP_ATTRIBUTES { 145 DWORD dwNumberOfAttributes; 146 EAP_ATTRIBUTE *pAttribs; 147 } EAP_ATTRIBUTES, EapAttributes; 148 149 typedef struct _EAP_TYPE { 150 BYTE type; 151 DWORD dwVendorId; 152 DWORD dwVendorType; 153 } EAP_TYPE; 154 155 typedef struct _EAP_METHOD_TYPE { 156 EAP_TYPE eapType; 157 DWORD dwAuthorId; 158 } EAP_METHOD_TYPE; 159 160 typedef struct _EAP_ERROR { 161 DWORD dwWinError; 162 EAP_METHOD_TYPE type; 163 DWORD dwReasonCode; 164 GUID rootCauseGuid; 165 GUID repairGuid; 166 GUID helpLinkGuid; 167 LPWSTR pRootCauseString; 168 LPWSTR pRepairString; 169 } EAP_ERROR; 170 171 typedef enum _EAP_CONFIG_INPUT_FIELD_TYPE { 172 EapConfigInputUsername = 0, 173 EapConfigInputPassword, 174 EapConfigInputNetworkUsername, 175 EapConfigInputNetworkPassword, 176 EapConfigInputPin, 177 EapConfigInputPSK, 178 EapConfigInputEdit, 179 EapConfigSmartCardUsername, 180 EapConfigSmartCardError 181 } EAP_CONFIG_INPUT_FIELD_TYPE; 182 183 typedef enum _EAP_INTERACTIVE_UI_DATA_TYPE { 184 EapCredReq, 185 EapCredResp, 186 EapCredExpiryReq, 187 EapCredExpiryResp 188 } EAP_INTERACTIVE_UI_DATA_TYPE; 189 190 #define EAP_UI_INPUT_FIELD_PROPS_DEFAULT 0x00000000 191 #define EAP_CONFIG_INPUT_FIELD_PROPS_DEFAULT 0x00000000 192 #define EAP_UI_INPUT_FIELD_PROPS_NON_DISPLAYABLE 0x00000001 193 #define EAP_CONFIG_INPUT_FIELD_PROPS_NON_DISPLAYABLE 0x00000001 194 #define EAP_UI_INPUT_FIELD_PROPS_NON_PERSIST 0x00000002 195 #define EAP_CONFIG_INPUT_FIELD_PROPS_NON_PERSIST 0x00000002 196 #define EAP_UI_INPUT_FIELD_PROPS_READ_ONLY 0x00000004 197 198 #define MAX_EAP_CONFIG_INPUT_FIELD_LENGTH 256 199 200 #define MAX_EAP_CONFIG_INPUT_FIELD_VALUE_LENGTH 1024 201 202 typedef struct _EAP_CONFIG_INPUT_FIELD_DATA { 203 DWORD dwSize; 204 EAP_CONFIG_INPUT_FIELD_TYPE Type; 205 DWORD dwFlagProps; 206 LPWSTR pwszLabel; 207 LPWSTR pwszData; 208 DWORD dwMinDataLength; 209 DWORD dwMaxDataLength; 210 } EAP_CONFIG_INPUT_FIELD_DATA, *PEAP_CONFIG_INPUT_FIELD_DATA; 211 212 #define EAP_CREDENTIAL_VERSION 1 213 214 typedef struct _EAP_CONFIG_INPUT_FIELD_ARRAY { 215 DWORD dwVersion; 216 DWORD dwNumberOfFields; 217 DWORD dwSize; 218 EAP_CONFIG_INPUT_FIELD_DATA *pFields; 219 } EAP_CONFIG_INPUT_FIELD_ARRAY, *PEAP_CONFIG_INPUT_FIELD_ARRAY; 220 221 typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_REQ; 222 typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_RESP; 223 typedef struct _EAP_CRED_EXPIRY_REQ EAP_CRED_EXPIRY_REQ; 224 225 typedef union _EAP_UI_DATA_FORMAT { 226 EAP_CRED_REQ * credData; 227 EAP_CRED_EXPIRY_REQ *credExpiryData; 228 } EAP_UI_DATA_FORMAT; 229 230 typedef struct _EAP_INTERACTIVE_UI_DATA { 231 DWORD dwVersion; 232 DWORD dwSize; 233 EAP_INTERACTIVE_UI_DATA_TYPE dwDataType; 234 DWORD cbUiData; 235 EAP_UI_DATA_FORMAT pbUiData; 236 } EAP_INTERACTIVE_UI_DATA; 237 238 #define eapPropCipherSuiteNegotiation 0x00000001 239 #define eapPropMutualAuth 0x00000002 240 #define eapPropIntegrity 0x00000004 241 #define eapPropReplayProtection 0x00000008 242 #define eapPropConfidentiality 0x00000010 243 #define eapPropKeyDerivation 0x00000020 244 #define eapPropKeyStrength64 0x00000040 245 #define eapPropKeyStrength128 0x00000080 246 #define eapPropKeyStrength256 0x00000100 247 #define eapPropKeyStrength512 0x00000200 248 #define eapPropKeyStrength1024 0x00000400 249 #define eapPropDictionaryAttackResistance 0x00000800 250 #define eapPropFastReconnect 0x00001000 251 #define eapPropCryptoBinding 0x00002000 252 #define eapPropSessionIndependence 0x00004000 253 #define eapPropFragmentation 0x00008000 254 #define eapPropChannelBinding 0x00010000 255 #define eapPropNap 0x00020000 256 #define eapPropStandalone 0x00040000 257 #define eapPropMppeEncryption 0x00080000 258 #define eapPropTunnelMethod 0x00100000 259 #define eapPropSupportsConfig 0x00200000 260 #define eapPropCertifiedMethod 0x00400000 261 #if (_WIN32_WINNT >= 0x0601) 262 #define eapPropmachineAuth 0x01000000 263 #define eapPropUserAuth 0x02000000 264 #define eapPropIdentityPrivacy 0x04000000 265 #define eapPropMethodChaining 0x08000000 266 #define eapPropSharedStateEquivalence 0x10000000 267 #endif /*(_WIN32_WINNT >= 0x0601)*/ 268 #define eapPropReserved 0x20000000 269 270 typedef struct _EAP_METHOD_INFO { 271 EAP_METHOD_TYPE eapType; 272 LPWSTR pwszAuthorName; 273 LPWSTR pwszFriendlyName; 274 DWORD eapProperties; 275 struct _EAP_METHOD_INFO *pInnerMethodInfo; 276 } EAP_METHOD_INFO; 277 278 typedef struct _EAP_METHOD_INFO_ARRAY { 279 DWORD dwNumberOfMethods; 280 EAP_METHOD_INFO *pEapMethods; 281 } EAP_METHOD_INFO_ARRAY, *PEAP_METHOD_INFO_ARRAY; 282 283 typedef struct _EAP_METHOD_INFO_EX { 284 EAP_METHOD_TYPE eapType; 285 LPWSTR pwszAuthorName; 286 LPWSTR pwszFriendlyName; 287 DWORD eapProperties; 288 struct _EAP_METHOD_INFO_ARRAY_EX *pInnerMethodInfoArray; 289 } EAP_METHOD_INFO_EX; 290 291 typedef struct _EAP_METHOD_INFO_ARRAY_EX { 292 DWORD dwNumberOfMethods; 293 EAP_METHOD_INFO_EX *pEapMethods; 294 } EAP_METHOD_INFO_ARRAY_EX, *PEAP_METHOD_INFO_ARRAY_EX; 295 296 typedef struct _EAP_CRED_EXPIRY_REQ { 297 EAP_CONFIG_INPUT_FIELD_ARRAY curCreds; 298 EAP_CONFIG_INPUT_FIELD_ARRAY newCreds; 299 } EAP_CRED_EXPIRY_REQ, *PEAP_CRED_EXPIRY_REQ; 300 301 typedef struct _EAP_CRED_EXPIRY_RESP { 302 EAP_CONFIG_INPUT_FIELD_ARRAY curCreds; 303 EAP_CONFIG_INPUT_FIELD_ARRAY newCreds; 304 } EAP_CRED_EXPIRY_RESP, *PEAP_CRED_EXPIRY_RESP; 305 306 #ifdef __cplusplus 307 } 308 #endif 309 #endif /*(_WIN32_WINNT >= 0x0600)*/ 310 #endif /*_INC_EAPTYPES*/ 311