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 9#ifdef __cplusplus 10extern "C" { 11#endif 12 13 14typedef DWORD EAP_SESSIONID; 15typedef 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 39typedef 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 138typedef struct _EAP_ATTRIBUTE { 139 EAP_ATTRIBUTE_TYPE eapType; 140 DWORD dwLength; 141 BYTE * pValue; 142} EAP_ATTRIBUTE, EapAttribute; 143 144typedef struct _EAP_ATTRIBUTES { 145 DWORD dwNumberOfAttributes; 146 EAP_ATTRIBUTE *pAttribs; 147} EAP_ATTRIBUTES, EapAttributes; 148 149typedef struct _EAP_TYPE { 150 BYTE type; 151 DWORD dwVendorId; 152 DWORD dwVendorType; 153} EAP_TYPE; 154 155typedef struct _EAP_METHOD_TYPE { 156 EAP_TYPE eapType; 157 DWORD dwAuthorId; 158} EAP_METHOD_TYPE; 159 160typedef 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 171typedef 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 183typedef 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 202typedef 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 214typedef 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 221typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_REQ; 222typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_RESP; 223typedef struct _EAP_CRED_EXPIRY_REQ EAP_CRED_EXPIRY_REQ; 224 225typedef union _EAP_UI_DATA_FORMAT { 226 EAP_CRED_REQ * credData; 227 EAP_CRED_EXPIRY_REQ *credExpiryData; 228} EAP_UI_DATA_FORMAT; 229 230typedef 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 270typedef 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 278typedef struct _EAP_METHOD_INFO_ARRAY { 279 DWORD dwNumberOfMethods; 280 EAP_METHOD_INFO *pEapMethods; 281} EAP_METHOD_INFO_ARRAY, *PEAP_METHOD_INFO_ARRAY; 282 283typedef 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 291typedef 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 296typedef 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 301typedef 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 310#endif /*_INC_EAPTYPES*/ 311