Home | History | Annotate | Download | only in include
      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
     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 
    310 #endif /*_INC_EAPTYPES*/
    311