/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef _INC_EAPTYPES #define _INC_EAPTYPES #ifdef __cplusplus extern "C" { #endif typedef DWORD EAP_SESSIONID; typedef void* EAP_SESSION_HANDLE; #define EAP_FLAG_Reserved1 0x00000001 #define EAP_FLAG_NON_INTERACTIVE 0x00000002 #define EAP_FLAG_LOGON 0x00000004 #define EAP_FLAG_PREVIEW 0x00000008 #define EAP_FLAG_Reserved2 0x00000010 #define EAP_FLAG_MACHINE_AUTH 0x00000020 #define EAP_FLAG_GUEST_ACCESS 0x00000040 #define EAP_FLAG_Reserved3 0x00000080 #define EAP_FLAG_Reserved4 0x00000100 #define EAP_FLAG_RESUME_FROM_HIBERNATE 0x00000200 #define EAP_FLAG_Reserved5 0x00000400 #define EAP_FLAG_Reserved6 0x00000800 #define EAP_FLAG_FULL_AUTH 0x00001000 #define EAP_FLAG_PREFER_ALT_CREDENTIALS 0x00002000 #define EAP_FLAG_Reserved7 0x00004000 #define EAP_PEER_FLAG_HEALTH_STATE_CHANGE 0x00008000 #define EAP_FLAG_SUPRESS_UI 0x00010000 #define EAP_FLAG_PRE_LOGON 0x00020000 #define EAP_FLAG_USER_AUTH 0x00040000 #define EAP_FLAG_CONFG_READONLY 0x00080000 #define EAP_FLAG_Reserved8 0x00100000 typedef enum _EAP_ATTRIBUTE_TYPE { eatMinimum = 0, eatUserName = 1, eatUserPassword = 2, eatMD5CHAPPassword = 3, eatNASIPAddress = 4, eatNASport = 5, eatServiceType = 6, eatFramedProtocol = 7, eatFramedIPAddress = 8, eatFramedIPNetmask = 9, eatFramedRouting = 10, eatFilterId = 11, eatFramedMTU = 12, eatFramedCompression = 13, eatLoginIPHost = 14, eatLoginService = 15, eatLoginTCPPort = 16, eatUnassigned17 = 17, eatReplyMessage = 18, eatCallbackNumber = 19, eatCallbackId = 20, eatUnassigned21 = 21, eatFramedRoute = 22, eatFramedIPXNetwork = 23, eatState = 24, eatClass = 25, eatVendorSpecific = 26, eatSessionTimeout = 27, eatIdleTimeout = 28, eatTerminationAction = 29, eatCalledStationId = 30, eatCallingStationId = 31, eatNASIdentifier = 32, eatProxyState = 33, eatLoginLATService = 34, eatLoginLATNode = 35, eatLoginLATGroup = 36, eatFramedAppleTalkLink = 37, eatFramedAppleTalkNetwork = 38, eatFramedAppleTalkZone = 39, eatAcctStatusType = 40, eatAcctDelayTime = 41, eatAcctInputOctets = 42, eatAcctOutputOctets = 43, eatAcctSessionId = 44, eatAcctAuthentic = 45, eatAcctSessionTime = 46, eatAcctInputPackets = 47, eatAcctOutputPackets = 48, eatAcctTerminateCause = 49, eatAcctMultiSessionId = 50, eatAcctLinkCount = 51, eatAcctEventTimeStamp = 55, eatMD5CHAPChallenge = 60, eatNASPortType = 61, eatPortLimit = 62, eatLoginLATPort = 63, eatTunnelType = 64, eatTunnelMediumType = 65, eatTunnelClientEndpoint = 66, eatTunnelServerEndpoint = 67, eatARAPPassword = 70, eatARAPFeatures = 71, eatARAPZoneAccess = 72, eatARAPSecurity = 73, eatARAPSecurityData = 74, eatPasswordRetry = 75, eatPrompt = 76, eatConnectInfo = 77, eatConfigurationToken = 78, eatEAPMessage = 79, eatSignature = 80, eatARAPChallengeResponse = 84, eatAcctInterimInterval = 85, eatNASIPv6Address = 95, eatFramedInterfaceId = 96, eatFramedIPv6Prefix = 97, eatLoginIPv6Host = 98, eatFramedIPv6Route = 99, eatFramedIPv6Pool = 100, eatARAPGuestLogon = 8096, eatCertificateOID = 8097, eatEAPConfiguration = 8098, eatPEAPEmbeddedEAPTypeId = 8099, eatPEAPFastRoamedSession = 8100, eatEAPTLV = 8102, eatCredentialsChanged = 8103, eatInnerEapMethodType = 8104, eatClearTextPassword = 8107, eatQuarantineSoH = 8150, eatPeerId = 9000, eatServerId = 9001, eatMethodId = 9002, eatEMSK = 9003, eatSessionId = 9004, eatReserved = 0xFFFFFFFF } EAP_ATTRIBUTE_TYPE, EapAttributeType; typedef struct _EAP_ATTRIBUTE { EAP_ATTRIBUTE_TYPE eapType; DWORD dwLength; BYTE * pValue; } EAP_ATTRIBUTE, EapAttribute; typedef struct _EAP_ATTRIBUTES { DWORD dwNumberOfAttributes; EAP_ATTRIBUTE *pAttribs; } EAP_ATTRIBUTES, EapAttributes; typedef struct _EAP_TYPE { BYTE type; DWORD dwVendorId; DWORD dwVendorType; } EAP_TYPE; typedef struct _EAP_METHOD_TYPE { EAP_TYPE eapType; DWORD dwAuthorId; } EAP_METHOD_TYPE; typedef struct _EAP_ERROR { DWORD dwWinError; EAP_METHOD_TYPE type; DWORD dwReasonCode; GUID rootCauseGuid; GUID repairGuid; GUID helpLinkGuid; LPWSTR pRootCauseString; LPWSTR pRepairString; } EAP_ERROR; typedef enum _EAP_CONFIG_INPUT_FIELD_TYPE { EapConfigInputUsername = 0, EapConfigInputPassword, EapConfigInputNetworkUsername, EapConfigInputNetworkPassword, EapConfigInputPin, EapConfigInputPSK, EapConfigInputEdit, EapConfigSmartCardUsername, EapConfigSmartCardError } EAP_CONFIG_INPUT_FIELD_TYPE; typedef enum _EAP_INTERACTIVE_UI_DATA_TYPE { EapCredReq, EapCredResp, EapCredExpiryReq, EapCredExpiryResp } EAP_INTERACTIVE_UI_DATA_TYPE; #define EAP_UI_INPUT_FIELD_PROPS_DEFAULT 0x00000000 #define EAP_CONFIG_INPUT_FIELD_PROPS_DEFAULT 0x00000000 #define EAP_UI_INPUT_FIELD_PROPS_NON_DISPLAYABLE 0x00000001 #define EAP_CONFIG_INPUT_FIELD_PROPS_NON_DISPLAYABLE 0x00000001 #define EAP_UI_INPUT_FIELD_PROPS_NON_PERSIST 0x00000002 #define EAP_CONFIG_INPUT_FIELD_PROPS_NON_PERSIST 0x00000002 #define EAP_UI_INPUT_FIELD_PROPS_READ_ONLY 0x00000004 #define MAX_EAP_CONFIG_INPUT_FIELD_LENGTH 256 #define MAX_EAP_CONFIG_INPUT_FIELD_VALUE_LENGTH 1024 typedef struct _EAP_CONFIG_INPUT_FIELD_DATA { DWORD dwSize; EAP_CONFIG_INPUT_FIELD_TYPE Type; DWORD dwFlagProps; LPWSTR pwszLabel; LPWSTR pwszData; DWORD dwMinDataLength; DWORD dwMaxDataLength; } EAP_CONFIG_INPUT_FIELD_DATA, *PEAP_CONFIG_INPUT_FIELD_DATA; #define EAP_CREDENTIAL_VERSION 1 typedef struct _EAP_CONFIG_INPUT_FIELD_ARRAY { DWORD dwVersion; DWORD dwNumberOfFields; DWORD dwSize; EAP_CONFIG_INPUT_FIELD_DATA *pFields; } EAP_CONFIG_INPUT_FIELD_ARRAY, *PEAP_CONFIG_INPUT_FIELD_ARRAY; typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_REQ; typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_RESP; typedef struct _EAP_CRED_EXPIRY_REQ EAP_CRED_EXPIRY_REQ; typedef union _EAP_UI_DATA_FORMAT { EAP_CRED_REQ * credData; EAP_CRED_EXPIRY_REQ *credExpiryData; } EAP_UI_DATA_FORMAT; typedef struct _EAP_INTERACTIVE_UI_DATA { DWORD dwVersion; DWORD dwSize; EAP_INTERACTIVE_UI_DATA_TYPE dwDataType; DWORD cbUiData; EAP_UI_DATA_FORMAT pbUiData; } EAP_INTERACTIVE_UI_DATA; #define eapPropCipherSuiteNegotiation 0x00000001 #define eapPropMutualAuth 0x00000002 #define eapPropIntegrity 0x00000004 #define eapPropReplayProtection 0x00000008 #define eapPropConfidentiality 0x00000010 #define eapPropKeyDerivation 0x00000020 #define eapPropKeyStrength64 0x00000040 #define eapPropKeyStrength128 0x00000080 #define eapPropKeyStrength256 0x00000100 #define eapPropKeyStrength512 0x00000200 #define eapPropKeyStrength1024 0x00000400 #define eapPropDictionaryAttackResistance 0x00000800 #define eapPropFastReconnect 0x00001000 #define eapPropCryptoBinding 0x00002000 #define eapPropSessionIndependence 0x00004000 #define eapPropFragmentation 0x00008000 #define eapPropChannelBinding 0x00010000 #define eapPropNap 0x00020000 #define eapPropStandalone 0x00040000 #define eapPropMppeEncryption 0x00080000 #define eapPropTunnelMethod 0x00100000 #define eapPropSupportsConfig 0x00200000 #define eapPropCertifiedMethod 0x00400000 #if (_WIN32_WINNT >= 0x0601) #define eapPropmachineAuth 0x01000000 #define eapPropUserAuth 0x02000000 #define eapPropIdentityPrivacy 0x04000000 #define eapPropMethodChaining 0x08000000 #define eapPropSharedStateEquivalence 0x10000000 #endif /*(_WIN32_WINNT >= 0x0601)*/ #define eapPropReserved 0x20000000 typedef struct _EAP_METHOD_INFO { EAP_METHOD_TYPE eapType; LPWSTR pwszAuthorName; LPWSTR pwszFriendlyName; DWORD eapProperties; struct _EAP_METHOD_INFO *pInnerMethodInfo; } EAP_METHOD_INFO; typedef struct _EAP_METHOD_INFO_ARRAY { DWORD dwNumberOfMethods; EAP_METHOD_INFO *pEapMethods; } EAP_METHOD_INFO_ARRAY, *PEAP_METHOD_INFO_ARRAY; typedef struct _EAP_METHOD_INFO_EX { EAP_METHOD_TYPE eapType; LPWSTR pwszAuthorName; LPWSTR pwszFriendlyName; DWORD eapProperties; struct _EAP_METHOD_INFO_ARRAY_EX *pInnerMethodInfoArray; } EAP_METHOD_INFO_EX; typedef struct _EAP_METHOD_INFO_ARRAY_EX { DWORD dwNumberOfMethods; EAP_METHOD_INFO_EX *pEapMethods; } EAP_METHOD_INFO_ARRAY_EX, *PEAP_METHOD_INFO_ARRAY_EX; typedef struct _EAP_CRED_EXPIRY_REQ { EAP_CONFIG_INPUT_FIELD_ARRAY curCreds; EAP_CONFIG_INPUT_FIELD_ARRAY newCreds; } /* EAP_CRED_EXPIRY_REQ, */ *PEAP_CRED_EXPIRY_REQ; typedef struct _EAP_CRED_EXPIRY_RESP { EAP_CONFIG_INPUT_FIELD_ARRAY curCreds; EAP_CONFIG_INPUT_FIELD_ARRAY newCreds; } EAP_CRED_EXPIRY_RESP, *PEAP_CRED_EXPIRY_RESP; #ifdef __cplusplus } #endif #endif /*_INC_EAPTYPES*/