blob: 6ee6f05a2c67e8b59d60d4acc186edcd755ab037 [file] [log] [blame]
/**
* 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*/