iketypes.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747
  1. /*** Autogenerated by WIDL 7.7 from include/iketypes.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __iketypes_h__
  14. #define __iketypes_h__
  15. /* Forward declarations */
  16. /* Headers for imported files */
  17. #include <fwptypes.h>
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. /**
  22. * This file is part of the mingw-w64 runtime package.
  23. * No warranty is given; refer to the file DISCLAIMER within this package.
  24. */
  25. #include <winapifamily.h>
  26. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  27. #define IKEEXT_ERROR_CODE_COUNT (ERROR_IPSEC_IKE_NEG_STATUS_END - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN)
  28. /* Please keep in sync with winerror.h defines. */
  29. #define IKEEXT_CERT_FLAG_ENABLE_ACCOUNT_MAPPING (0x1)
  30. #define IKEEXT_CERT_FLAG_DISABLE_REQUEST_PAYLOAD (0x2)
  31. #define IKEEXT_CERT_FLAG_USE_NAP_CERTIFICATE (0x4)
  32. #define IKEEXT_CERT_FLAG_INTERMEDIATE_CA (0x8)
  33. #define IKEEXT_CERT_FLAG_IGNORE_INIT_CERT_MAP_FAILURE (0x10)
  34. #define IKEEXT_CERT_FLAG_PREFER_NAP_CERTIFICATE_OUTBOUND (0x20)
  35. #if (NTDDI_VERSION >= NTDDI_WIN8)
  36. #define IKEEXT_CERT_FLAG_SELECT_NAP_CERTIFICATE (0x40)
  37. #define IKEEXT_CERT_FLAG_VERIFY_NAP_CERTIFICATE (0x80)
  38. #define IKEEXT_CERT_FLAG_FOLLOW_RENEWAL_CERTIFICATE (0x100)
  39. #endif
  40. #define IKEEXT_CERT_AUTH_FLAG_SSL_ONE_WAY (0x1)
  41. #define IKEEXT_CERT_AUTH_FLAG_DISABLE_CRL_CHECK (0x2)
  42. #define IKEEXT_CERT_AUTH_ENABLE_CRL_CHECK_STRONG (0x4)
  43. #define IKEEXT_CERT_AUTH_DISABLE_SSL_CERT_VALIDATION (0x8)
  44. #if (NTDDI_VERSION >= NTDDI_WIN7)
  45. #define IKEEXT_CERT_AUTH_ALLOW_HTTP_CERT_LOOKUP (0x10)
  46. #define IKEEXT_CERT_AUTH_URL_CONTAINS_BUNDLE (0x20)
  47. #endif
  48. #define IKEEXT_KERB_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION (0x1)
  49. #define IKEEXT_KERB_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS (0x2)
  50. #if (NTDDI_VERSION >= NTDDI_WIN8)
  51. #define IKEEXT_KERB_AUTH_FORCE_PROXY_ON_INITIATOR (0x4)
  52. #endif
  53. #define IKEEXT_RESERVED_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION (0x1)
  54. #define IKEEXT_NTLM_V2_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS (0x1)
  55. #define IKEEXT_POLICY_FLAG_DISABLE_DIAGNOSTICS (0x00000001)
  56. #define IKEEXT_POLICY_FLAG_NO_MACHINE_LUID_VERIFY (0x00000002)
  57. #define IKEEXT_POLICY_FLAG_NO_IMPERSONATION_LUID_VERIFY (0x00000004)
  58. #define IKEEXT_POLICY_FLAG_ENABLE_OPTIONAL_DH (0x00000008)
  59. #define IKEEXT_CERT_CREDENTIAL_FLAG_NAP_CERT (0x1)
  60. #if (NTDDI_VERSION >= NTDDI_WIN7)
  61. #define IKEEXT_PSK_FLAG_LOCAL_AUTH_ONLY (0x1)
  62. #define IKEEXT_PSK_FLAG_REMOTE_AUTH_ONLY (0x2)
  63. #define IKEEXT_EAP_FLAG_LOCAL_AUTH_ONLY (0x1)
  64. #define IKEEXT_EAP_FLAG_REMOTE_AUTH_ONLY (0x2)
  65. #endif
  66. #ifndef __IPSEC_V4_UDP_ENCAPSULATION0_FWD_DECLARED
  67. #define __IPSEC_V4_UDP_ENCAPSULATION0_FWD_DECLARED
  68. typedef struct IPSEC_V4_UDP_ENCAPSULATION0_ IPSEC_V4_UDP_ENCAPSULATION0;
  69. #endif
  70. typedef UINT64 IKEEXT_COOKIE;
  71. typedef enum IKEEXT_EM_SA_STATE_ {
  72. IKEEXT_EM_SA_STATE_NONE = 0,
  73. IKEEXT_EM_SA_STATE_SENT_ATTS = 1,
  74. IKEEXT_EM_SA_STATE_SSPI_SENT = 2,
  75. IKEEXT_EM_SA_STATE_AUTH_COMPLETE = 3,
  76. IKEEXT_EM_SA_STATE_FINAL = 4,
  77. IKEEXT_EM_SA_STATE_COMPLETE = 5,
  78. IKEEXT_EM_SA_STATE_MAX = 6
  79. } IKEEXT_EM_SA_STATE;
  80. typedef enum IKEEXT_SA_ROLE_ {
  81. IKEEXT_SA_ROLE_INITIATOR = 0,
  82. IKEEXT_SA_ROLE_RESPONDER = 1,
  83. IKEEXT_SA_ROLE_MAX = 2
  84. } IKEEXT_SA_ROLE;
  85. typedef enum IKEEXT_AUTHENTICATION_METHOD_TYPE_ {
  86. IKEEXT_PRESHARED_KEY = 0,
  87. IKEEXT_CERTIFICATE = 1,
  88. IKEEXT_KERBEROS = 2,
  89. IKEEXT_ANONYMOUS = 3,
  90. IKEEXT_SSL = 4,
  91. IKEEXT_NTLM_V2 = 5,
  92. IKEEXT_IPV6_CGA = 6,
  93. IKEEXT_CERTIFICATE_ECDSA_P256 = 7,
  94. IKEEXT_CERTIFICATE_ECDSA_P384 = 8,
  95. IKEEXT_SSL_ECDSA_P256 = 9,
  96. IKEEXT_SSL_ECDSA_P384 = 10,
  97. IKEEXT_EAP = 11,
  98. IKEEXT_RESERVED = 12,
  99. IKEEXT_AUTHENTICATION_METHOD_TYPE_MAX = 13
  100. } IKEEXT_AUTHENTICATION_METHOD_TYPE;
  101. typedef enum IKEEXT_KEY_MODULE_TYPE_ {
  102. IKEEXT_KEY_MODULE_IKE = 0,
  103. IKEEXT_KEY_MODULE_AUTHIP = 1,
  104. IKEEXT_KEY_MODULE_IKEV2 = 2,
  105. IKEEXT_KEY_MODULE_MAX = 3
  106. } IKEEXT_KEY_MODULE_TYPE;
  107. typedef enum IKEEXT_MM_SA_STATE_ {
  108. IKEEXT_MM_SA_STATE_NONE = 0,
  109. IKEEXT_MM_SA_STATE_SA_SENT = 1,
  110. IKEEXT_MM_SA_STATE_SSPI_SENT = 2,
  111. IKEEXT_MM_SA_STATE_FINAL = 3,
  112. IKEEXT_MM_SA_STATE_FINAL_SENT = 4,
  113. IKEEXT_MM_SA_STATE_COMPLETE = 5,
  114. IKEEXT_MM_SA_STATE_MAX = 6
  115. } IKEEXT_MM_SA_STATE;
  116. typedef enum IKEEXT_QM_SA_STATE_ {
  117. IKEEXT_QM_SA_STATE_NONE = 0,
  118. IKEEXT_QM_SA_STATE_INITIAL = 1,
  119. IKEEXT_QM_SA_STATE_FINAL = 2,
  120. IKEEXT_QM_SA_STATE_COMPLETE = 3,
  121. IKEEXT_QM_SA_STATE_MAX = 4
  122. } IKEEXT_QM_SA_STATE;
  123. typedef enum IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE_ {
  124. IKEEXT_IMPERSONATION_NONE = 0,
  125. IKEEXT_IMPERSONATION_SOCKET_PRINCIPAL = 1,
  126. IKEEXT_IMPERSONATION_MAX = 2
  127. } IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE;
  128. typedef enum IKEEXT_CERT_CONFIG_TYPE_ {
  129. IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST = 0,
  130. IKEEXT_CERT_CONFIG_ENTERPRISE_STORE = 1,
  131. IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE = 2,
  132. IKEEXT_CERT_CONFIG_UNSPECIFIED = 3,
  133. IKEEXT_CERT_CONFIG_TYPE_MAX = 4
  134. } IKEEXT_CERT_CONFIG_TYPE;
  135. typedef enum IKEEXT_CIPHER_TYPE_ {
  136. IKEEXT_CIPHER_DES = 0,
  137. IKEEXT_CIPHER_3DES = 1,
  138. IKEEXT_CIPHER_AES_128 = 2,
  139. IKEEXT_CIPHER_AES_192 = 3,
  140. IKEEXT_CIPHER_AES_256 = 4,
  141. IKEEXT_CIPHER_TYPE_MAX = 5
  142. } IKEEXT_CIPHER_TYPE;
  143. typedef enum IKEEXT_INTEGRITY_TYPE_ {
  144. IKEEXT_INTEGRITY_MD5 = 0,
  145. IKEEXT_INTEGRITY_SHA1 = 1,
  146. IKEEXT_INTEGRITY_SHA_256 = 2,
  147. IKEEXT_INTEGRITY_SHA_384 = 3,
  148. IKEEXT_INTEGRITY_TYPE_MAX = 4
  149. } IKEEXT_INTEGRITY_TYPE;
  150. typedef enum IKEEXT_DH_GROUP_ {
  151. IKEEXT_DH_GROUP_NONE = 0,
  152. IKEEXT_DH_GROUP_1 = 1,
  153. IKEEXT_DH_GROUP_2 = 2,
  154. IKEEXT_DH_GROUP_14 = 3,
  155. IKEEXT_DH_GROUP_2048 = IKEEXT_DH_GROUP_14,
  156. IKEEXT_DH_ECP_256 = 4,
  157. IKEEXT_DH_ECP_384 = 5,
  158. IKEEXT_DH_GROUP_24 = 6,
  159. IKEEXT_DH_GROUP_MAX = 7
  160. } IKEEXT_DH_GROUP;
  161. typedef struct IKEEXT_CERT_ROOT_CONFIG0_ {
  162. FWP_BYTE_BLOB certData;
  163. UINT32 flags;
  164. } IKEEXT_CERT_ROOT_CONFIG0;
  165. typedef struct IKEEXT_KERBEROS_AUTHENTICATION0__ {
  166. UINT32 flags;
  167. } IKEEXT_KERBEROS_AUTHENTICATION0;
  168. typedef struct IKEEXT_NTLM_V2_AUTHENTICATION0__ {
  169. UINT32 flags;
  170. } IKEEXT_NTLM_V2_AUTHENTICATION0;
  171. typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION0__ {
  172. FWP_BYTE_BLOB presharedKey;
  173. } IKEEXT_PRESHARED_KEY_AUTHENTICATION0;
  174. typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION1__ {
  175. FWP_BYTE_BLOB presharedKey;
  176. UINT32 flags;
  177. } IKEEXT_PRESHARED_KEY_AUTHENTICATION1;
  178. typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION0_ {
  179. IKEEXT_CERT_CONFIG_TYPE inboundConfigType;
  180. __C89_NAMELESS union {
  181. __C89_NAMELESS struct {
  182. UINT32 inboundRootArraySize;
  183. IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray;
  184. } __C89_NAMELESSSTRUCTNAME;
  185. IKEEXT_CERT_ROOT_CONFIG0 *inboundEnterpriseStoreConfig;
  186. IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig;
  187. } __C89_NAMELESSUNIONNAME1;
  188. IKEEXT_CERT_CONFIG_TYPE outboundConfigType;
  189. __C89_NAMELESS union {
  190. __C89_NAMELESS struct {
  191. UINT32 outboundRootArraySize;
  192. IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray;
  193. } __C89_NAMELESSSTRUCTNAME;
  194. IKEEXT_CERT_ROOT_CONFIG0 *outboundEnterpriseStoreConfig;
  195. IKEEXT_CERT_ROOT_CONFIG0 *outboundTrustedRootStoreConfig;
  196. } __C89_NAMELESSUNIONNAME2;
  197. UINT32 flags;
  198. } IKEEXT_CERTIFICATE_AUTHENTICATION0;
  199. #if NTDDI_VERSION >= NTDDI_WIN7
  200. typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION1_ {
  201. IKEEXT_CERT_CONFIG_TYPE inboundConfigType;
  202. __C89_NAMELESS union {
  203. __C89_NAMELESS struct {
  204. UINT32 inboundRootArraySize;
  205. IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray;
  206. } __C89_NAMELESSSTRUCTNAME;
  207. IKEEXT_CERT_ROOT_CONFIG0 *inboundEnterpriseStoreConfig;
  208. IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig;
  209. } __C89_NAMELESSUNIONNAME1;
  210. IKEEXT_CERT_CONFIG_TYPE outboundConfigType;
  211. __C89_NAMELESS union {
  212. __C89_NAMELESS struct {
  213. UINT32 outboundRootArraySize;
  214. IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray;
  215. } __C89_NAMELESSSTRUCTNAME;
  216. IKEEXT_CERT_ROOT_CONFIG0 *outboundEnterpriseStoreConfig;
  217. IKEEXT_CERT_ROOT_CONFIG0 *outboundTrustedRootStoreConfig;
  218. } __C89_NAMELESSUNIONNAME2;
  219. UINT32 flags;
  220. FWP_BYTE_BLOB localCertLocationUrl;
  221. } IKEEXT_CERTIFICATE_AUTHENTICATION1;
  222. #endif
  223. #if (NTDDI_VERSION >= NTDDI_WIN8)
  224. typedef enum IKEEXT_CERT_CRITERIA_NAME_TYPE_ {
  225. IKEEXT_CERT_CRITERIA_DNS = 0,
  226. IKEEXT_CERT_CRITERIA_UPN = 1,
  227. IKEEXT_CERT_CRITERIA_RFC822 = 2,
  228. IKEEXT_CERT_CRITERIA_CN = 3,
  229. IKEEXT_CERT_CRITERIA_OU = 4,
  230. IKEEXT_CERT_CRITERIA_O = 5,
  231. IKEEXT_CERT_CRITERIA_DC = 6,
  232. IKEEXT_CERT_CRITERIA_NAME_TYPE_MAX = 7
  233. } IKEEXT_CERT_CRITERIA_NAME_TYPE;
  234. typedef struct IKEEXT_CERT_EKUS0_ {
  235. ULONG numEku;
  236. LPSTR *eku;
  237. } IKEEXT_CERT_EKUS0;
  238. typedef struct IKEEXT_CERT_NAME0_ {
  239. IKEEXT_CERT_CRITERIA_NAME_TYPE nameType;
  240. LPWSTR certName;
  241. } IKEEXT_CERT_NAME0;
  242. typedef struct IKEEXT_CERTIFICATE_CRITERIA0_ {
  243. FWP_BYTE_BLOB certData;
  244. FWP_BYTE_BLOB certHash;
  245. IKEEXT_CERT_EKUS0 *eku;
  246. IKEEXT_CERT_NAME0 *name;
  247. UINT32 flags;
  248. } IKEEXT_CERTIFICATE_CRITERIA0;
  249. typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION2_ {
  250. IKEEXT_CERT_CONFIG_TYPE inboundConfigType;
  251. __C89_NAMELESS union {
  252. __C89_NAMELESS struct {
  253. UINT32 inboundRootArraySize;
  254. IKEEXT_CERTIFICATE_CRITERIA0 *inboundRootCriteria;
  255. } __C89_NAMELESSSTRUCTNAME1;
  256. __C89_NAMELESS struct {
  257. UINT32 inboundEnterpriseStoreArraySize;
  258. IKEEXT_CERTIFICATE_CRITERIA0 *inboundEnterpriseStoreCriteria;
  259. } __C89_NAMELESSSTRUCTNAME2;
  260. __C89_NAMELESS struct {
  261. UINT32 inboundRootStoreArraySize;
  262. IKEEXT_CERTIFICATE_CRITERIA0 *inboundTrustedRootStoreCriteria;
  263. } __C89_NAMELESSSTRUCTNAME3;
  264. } __C89_NAMELESSUNIONNAME1;
  265. IKEEXT_CERT_CONFIG_TYPE outboundConfigType;
  266. __C89_NAMELESS union {
  267. __C89_NAMELESS struct {
  268. UINT32 outboundRootArraySize;
  269. IKEEXT_CERTIFICATE_CRITERIA0 *outboundRootCriteria;
  270. } __C89_NAMELESSSTRUCTNAME1;
  271. __C89_NAMELESS struct {
  272. UINT32 outboundEnterpriseStoreArraySize;
  273. IKEEXT_CERTIFICATE_CRITERIA0 *outboundEnterpriseStoreCriteria;
  274. } __C89_NAMELESSSTRUCTNAME2;
  275. __C89_NAMELESS struct {
  276. UINT32 outboundRootStoreArraySize;
  277. IKEEXT_CERTIFICATE_CRITERIA0 *outboundTrustedRootStoreCriteria;
  278. } __C89_NAMELESSSTRUCTNAME3;
  279. } __C89_NAMELESSUNIONNAME2;
  280. UINT32 flags;
  281. FWP_BYTE_BLOB localCertLocationUrl;
  282. } IKEEXT_CERTIFICATE_AUTHENTICATION2;
  283. #endif
  284. typedef struct IKEEXT_IPV6_CGA_AUTHENTICATION0_ {
  285. wchar_t *keyContainerName;
  286. wchar_t *cspName;
  287. UINT32 cspType;
  288. FWP_BYTE_ARRAY16 cgaModifier;
  289. BYTE cgaCollisionCount;
  290. } IKEEXT_IPV6_CGA_AUTHENTICATION0;
  291. #if (NTDDI_VERSION >= NTDDI_WIN8)
  292. typedef struct IKEEXT_KERBEROS_AUTHENTICATION1__ {
  293. UINT32 flags;
  294. wchar_t *proxyServer;
  295. } IKEEXT_KERBEROS_AUTHENTICATION1;
  296. #endif
  297. typedef struct IKEEXT_RESERVED_AUTHENTICATION0__ {
  298. UINT32 flags;
  299. } IKEEXT_RESERVED_AUTHENTICATION0;
  300. #if (NTDDI_VERSION >= NTDDI_WIN7)
  301. typedef struct IKEEXT_EAP_AUTHENTICATION0__ {
  302. UINT32 flags;
  303. } IKEEXT_EAP_AUTHENTICATION0;
  304. #endif
  305. typedef struct IKEEXT_AUTHENTICATION_METHOD0_ {
  306. IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType;
  307. __C89_NAMELESS union {
  308. IKEEXT_PRESHARED_KEY_AUTHENTICATION0 presharedKeyAuthentication;
  309. IKEEXT_CERTIFICATE_AUTHENTICATION0 certificateAuthentication;
  310. IKEEXT_KERBEROS_AUTHENTICATION0 kerberosAuthentication;
  311. IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication;
  312. IKEEXT_CERTIFICATE_AUTHENTICATION0 sslAuthentication;
  313. IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication;
  314. } __C89_NAMELESSUNIONNAME;
  315. } IKEEXT_AUTHENTICATION_METHOD0;
  316. #if (NTDDI_VERSION >= NTDDI_WIN7)
  317. typedef struct IKEEXT_AUTHENTICATION_METHOD1_ {
  318. IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType;
  319. __C89_NAMELESS union {
  320. IKEEXT_PRESHARED_KEY_AUTHENTICATION1 presharedKeyAuthentication;
  321. IKEEXT_CERTIFICATE_AUTHENTICATION1 certificateAuthentication;
  322. IKEEXT_KERBEROS_AUTHENTICATION0 kerberosAuthentication;
  323. IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication;
  324. IKEEXT_CERTIFICATE_AUTHENTICATION1 sslAuthentication;
  325. IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication;
  326. IKEEXT_EAP_AUTHENTICATION0 eapAuthentication;
  327. } __C89_NAMELESSUNIONNAME;
  328. } IKEEXT_AUTHENTICATION_METHOD1;
  329. #endif
  330. #if (NTDDI_VERSION >= NTDDI_WIN8)
  331. typedef struct IKEEXT_AUTHENTICATION_METHOD2_ {
  332. IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType;
  333. __C89_NAMELESS union {
  334. IKEEXT_PRESHARED_KEY_AUTHENTICATION1 presharedKeyAuthentication;
  335. IKEEXT_CERTIFICATE_AUTHENTICATION2 certificateAuthentication;
  336. IKEEXT_KERBEROS_AUTHENTICATION1 kerberosAuthentication;
  337. IKEEXT_RESERVED_AUTHENTICATION0 reservedAuthentication;
  338. IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication;
  339. IKEEXT_CERTIFICATE_AUTHENTICATION2 sslAuthentication;
  340. IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication;
  341. IKEEXT_EAP_AUTHENTICATION0 eapAuthentication;
  342. } __C89_NAMELESSUNIONNAME;
  343. } IKEEXT_AUTHENTICATION_METHOD2;
  344. #endif
  345. typedef struct IKEEXT_CIPHER_ALGORITHM0_ {
  346. IKEEXT_CIPHER_TYPE algoIdentifier;
  347. UINT32 keyLen;
  348. UINT32 rounds;
  349. } IKEEXT_CIPHER_ALGORITHM0;
  350. typedef struct IKEEXT_INTEGRITY_ALGORITHM0_ {
  351. IKEEXT_INTEGRITY_TYPE algoIdentifier;
  352. } IKEEXT_INTEGRITY_ALGORITHM0;
  353. typedef struct IKEEXT_PROPOSAL0_ {
  354. IKEEXT_CIPHER_ALGORITHM0 cipherAlgorithm;
  355. IKEEXT_INTEGRITY_ALGORITHM0 integrityAlgorithm;
  356. UINT32 maxLifetimeSeconds;
  357. IKEEXT_DH_GROUP dhGroup;
  358. UINT32 quickModeLimit;
  359. } IKEEXT_PROPOSAL0;
  360. typedef struct IKEEXT_POLICY0_ {
  361. UINT32 softExpirationTime;
  362. UINT32 numAuthenticationMethods;
  363. IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods;
  364. IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType;
  365. UINT32 numIkeProposals;
  366. IKEEXT_PROPOSAL0 *ikeProposals;
  367. UINT32 flags;
  368. UINT32 maxDynamicFilters;
  369. } IKEEXT_POLICY0;
  370. #if (NTDDI_VERSION >= NTDDI_WIN7)
  371. typedef struct IKEEXT_POLICY1_ {
  372. UINT32 softExpirationTime;
  373. UINT32 numAuthenticationMethods;
  374. IKEEXT_AUTHENTICATION_METHOD1 *authenticationMethods;
  375. IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType;
  376. UINT32 numIkeProposals;
  377. IKEEXT_PROPOSAL0 *ikeProposals;
  378. UINT32 flags;
  379. UINT32 maxDynamicFilters;
  380. UINT32 retransmitDurationSecs;
  381. } IKEEXT_POLICY1;
  382. #endif
  383. #if (NTDDI_VERSION >= NTDDI_WIN8)
  384. typedef struct IKEEXT_POLICY2_ {
  385. UINT32 softExpirationTime;
  386. UINT32 numAuthenticationMethods;
  387. IKEEXT_AUTHENTICATION_METHOD2 *authenticationMethods;
  388. IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType;
  389. UINT32 numIkeProposals;
  390. IKEEXT_PROPOSAL0 *ikeProposals;
  391. UINT32 flags;
  392. UINT32 maxDynamicFilters;
  393. UINT32 retransmitDurationSecs;
  394. } IKEEXT_POLICY2;
  395. #endif
  396. typedef struct IKEEXT_EM_POLICY0_ {
  397. UINT32 numAuthenticationMethods;
  398. IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods;
  399. IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType;
  400. } IKEEXT_EM_POLICY0;
  401. #if (NTDDI_VERSION >= NTDDI_WIN7)
  402. typedef struct IKEEXT_EM_POLICY1_ {
  403. UINT32 numAuthenticationMethods;
  404. IKEEXT_AUTHENTICATION_METHOD1 *authenticationMethods;
  405. IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType;
  406. } IKEEXT_EM_POLICY1;
  407. #endif
  408. #if (NTDDI_VERSION >= NTDDI_WIN8)
  409. typedef struct IKEEXT_EM_POLICY2_ {
  410. UINT32 numAuthenticationMethods;
  411. IKEEXT_AUTHENTICATION_METHOD2 *authenticationMethods;
  412. IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType;
  413. } IKEEXT_EM_POLICY2;
  414. #endif
  415. typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0_ {
  416. UINT32 currentActiveMainModes;
  417. UINT32 totalMainModesStarted;
  418. UINT32 totalSuccessfulMainModes;
  419. UINT32 totalFailedMainModes;
  420. UINT32 totalResponderMainModes;
  421. UINT32 currentNewResponderMainModes;
  422. UINT32 currentActiveQuickModes;
  423. UINT32 totalQuickModesStarted;
  424. UINT32 totalSuccessfulQuickModes;
  425. UINT32 totalFailedQuickModes;
  426. UINT32 totalAcquires;
  427. UINT32 totalReinitAcquires;
  428. UINT32 currentActiveExtendedModes;
  429. UINT32 totalExtendedModesStarted;
  430. UINT32 totalSuccessfulExtendedModes;
  431. UINT32 totalFailedExtendedModes;
  432. UINT32 totalImpersonationExtendedModes;
  433. UINT32 totalImpersonationMainModes;
  434. } IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0;
  435. #if (NTDDI_VERSION >= NTDDI_WIN7)
  436. typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1_ {
  437. UINT32 currentActiveMainModes;
  438. UINT32 totalMainModesStarted;
  439. UINT32 totalSuccessfulMainModes;
  440. UINT32 totalFailedMainModes;
  441. UINT32 totalResponderMainModes;
  442. UINT32 currentNewResponderMainModes;
  443. UINT32 currentActiveQuickModes;
  444. UINT32 totalQuickModesStarted;
  445. UINT32 totalSuccessfulQuickModes;
  446. UINT32 totalFailedQuickModes;
  447. UINT32 totalAcquires;
  448. UINT32 totalReinitAcquires;
  449. UINT32 currentActiveExtendedModes;
  450. UINT32 totalExtendedModesStarted;
  451. UINT32 totalSuccessfulExtendedModes;
  452. UINT32 totalFailedExtendedModes;
  453. UINT32 totalImpersonationExtendedModes;
  454. UINT32 totalImpersonationMainModes;
  455. } IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1;
  456. #endif
  457. typedef struct IKEEXT_KEYMODULE_STATISTICS0_ {
  458. IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v4Statistics;
  459. IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v6Statistics;
  460. UINT32 errorFrequencyTable[97];
  461. UINT32 mainModeNegotiationTime;
  462. UINT32 quickModeNegotiationTime;
  463. UINT32 extendedModeNegotiationTime;
  464. } IKEEXT_KEYMODULE_STATISTICS0;
  465. #if (NTDDI_VERSION >= NTDDI_WIN7)
  466. typedef struct IKEEXT_KEYMODULE_STATISTICS1_ {
  467. IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 v4Statistics;
  468. IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 v6Statistics;
  469. UINT32 errorFrequencyTable[97];
  470. UINT32 mainModeNegotiationTime;
  471. UINT32 quickModeNegotiationTime;
  472. UINT32 extendedModeNegotiationTime;
  473. } IKEEXT_KEYMODULE_STATISTICS1;
  474. #endif
  475. typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0_ {
  476. UINT32 totalSocketReceiveFailures;
  477. UINT32 totalSocketSendFailures;
  478. } IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0;
  479. #if (NTDDI_VERSION >= NTDDI_WIN7)
  480. typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1_ {
  481. UINT32 totalSocketReceiveFailures;
  482. UINT32 totalSocketSendFailures;
  483. } IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1;
  484. #endif
  485. typedef struct IKEEXT_COMMON_STATISTICS0_ {
  486. IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v4Statistics;
  487. IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v6Statistics;
  488. UINT32 totalPacketsReceived;
  489. UINT32 totalInvalidPacketsReceived;
  490. UINT32 currentQueuedWorkitems;
  491. } IKEEXT_COMMON_STATISTICS0;
  492. #if (NTDDI_VERSION >= NTDDI_WIN7)
  493. typedef struct IKEEXT_COMMON_STATISTICS1_ {
  494. IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 v4Statistics;
  495. IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 v6Statistics;
  496. UINT32 totalPacketsReceived;
  497. UINT32 totalInvalidPacketsReceived;
  498. UINT32 currentQueuedWorkitems;
  499. } IKEEXT_COMMON_STATISTICS1;
  500. #endif
  501. typedef struct IKEEXT_STATISTICS0_ {
  502. IKEEXT_KEYMODULE_STATISTICS0 ikeStatistics;
  503. IKEEXT_KEYMODULE_STATISTICS0 authipStatistics;
  504. IKEEXT_COMMON_STATISTICS0 commonStatistics;
  505. } IKEEXT_STATISTICS0;
  506. #if (NTDDI_VERSION >= NTDDI_WIN7)
  507. typedef struct IKEEXT_STATISTICS1_ {
  508. IKEEXT_KEYMODULE_STATISTICS1 ikeStatistics;
  509. IKEEXT_KEYMODULE_STATISTICS1 authipStatistics;
  510. IKEEXT_KEYMODULE_STATISTICS1 ikeV2Statistics;
  511. IKEEXT_COMMON_STATISTICS1 commonStatistics;
  512. } IKEEXT_STATISTICS1;
  513. #endif
  514. typedef struct IKEEXT_TRAFFIC0_ {
  515. FWP_IP_VERSION ipVersion;
  516. __C89_NAMELESS union {
  517. UINT32 localV4Address;
  518. UINT8 localV6Address[16];
  519. } __C89_NAMELESSUNIONNAME1;
  520. __C89_NAMELESS union {
  521. UINT32 remoteV4Address;
  522. UINT8 remoteV6Address[16];
  523. } __C89_NAMELESSUNIONNAME2;
  524. UINT64 authIpFilterId;
  525. } IKEEXT_TRAFFIC0;
  526. typedef struct IKEEXT_COOKIE_PAIR0_ {
  527. IKEEXT_COOKIE initiator;
  528. IKEEXT_COOKIE responder;
  529. } IKEEXT_COOKIE_PAIR0;
  530. typedef struct IKEEXT_CERTIFICATE_CREDENTIAL0_ {
  531. FWP_BYTE_BLOB subjectName;
  532. FWP_BYTE_BLOB certHash;
  533. UINT32 flags;
  534. } IKEEXT_CERTIFICATE_CREDENTIAL0;
  535. typedef struct IKEEXT_NAME_CREDENTIAL0_ {
  536. wchar_t *principalName;
  537. } IKEEXT_NAME_CREDENTIAL0;
  538. typedef struct IKEEXT_CREDENTIAL0_ {
  539. IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType;
  540. IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType;
  541. __C89_NAMELESS union {
  542. IKEEXT_PRESHARED_KEY_AUTHENTICATION0 *presharedKey;
  543. IKEEXT_CERTIFICATE_CREDENTIAL0 *certificate;
  544. IKEEXT_NAME_CREDENTIAL0 *name;
  545. } __C89_NAMELESSUNIONNAME;
  546. } IKEEXT_CREDENTIAL0;
  547. typedef struct IKEEXT_CREDENTIAL_PAIR0_ {
  548. IKEEXT_CREDENTIAL0 localCredentials;
  549. IKEEXT_CREDENTIAL0 peerCredentials;
  550. } IKEEXT_CREDENTIAL_PAIR0;
  551. typedef struct IKEEXT_CREDENTIALS0_ {
  552. UINT32 numCredentials;
  553. IKEEXT_CREDENTIAL_PAIR0 *credentials;
  554. } IKEEXT_CREDENTIALS0;
  555. typedef struct IKEEXT_SA_DETAILS0_ {
  556. UINT64 saId;
  557. IKEEXT_KEY_MODULE_TYPE keyModuleType;
  558. FWP_IP_VERSION ipVersion;
  559. __C89_NAMELESS union {
  560. IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation;
  561. } __C89_NAMELESSUNIONNAME;
  562. IKEEXT_TRAFFIC0 ikeTraffic;
  563. IKEEXT_PROPOSAL0 ikeProposal;
  564. IKEEXT_COOKIE_PAIR0 cookiePair;
  565. IKEEXT_CREDENTIALS0 ikeCredentials;
  566. GUID ikePolicyKey;
  567. UINT64 virtualIfTunnelId;
  568. } IKEEXT_SA_DETAILS0;
  569. #if (NTDDI_VERSION >= NTDDI_WIN7)
  570. typedef struct IKEEXT_CERTIFICATE_CREDENTIAL1_ {
  571. FWP_BYTE_BLOB subjectName;
  572. FWP_BYTE_BLOB certHash;
  573. UINT32 flags;
  574. FWP_BYTE_BLOB certificate;
  575. } IKEEXT_CERTIFICATE_CREDENTIAL1;
  576. typedef struct IKEEXT_CREDENTIAL1_ {
  577. IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType;
  578. IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType;
  579. __C89_NAMELESS union {
  580. IKEEXT_PRESHARED_KEY_AUTHENTICATION1 *presharedKey;
  581. IKEEXT_CERTIFICATE_CREDENTIAL1 *certificate;
  582. IKEEXT_NAME_CREDENTIAL0 *name;
  583. } __C89_NAMELESSUNIONNAME;
  584. } IKEEXT_CREDENTIAL1;
  585. typedef struct IKEEXT_CREDENTIAL_PAIR1_ {
  586. IKEEXT_CREDENTIAL1 localCredentials;
  587. IKEEXT_CREDENTIAL1 peerCredentials;
  588. } IKEEXT_CREDENTIAL_PAIR1;
  589. typedef struct IKEEXT_CREDENTIALS1_ {
  590. UINT32 numCredentials;
  591. IKEEXT_CREDENTIAL_PAIR1 *credentials;
  592. } IKEEXT_CREDENTIALS1;
  593. typedef struct IKEEXT_SA_DETAILS1_ {
  594. UINT64 saId;
  595. IKEEXT_KEY_MODULE_TYPE keyModuleType;
  596. FWP_IP_VERSION ipVersion;
  597. __C89_NAMELESS union {
  598. IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation;
  599. } __C89_NAMELESSUNIONNAME;
  600. IKEEXT_TRAFFIC0 ikeTraffic;
  601. IKEEXT_PROPOSAL0 ikeProposal;
  602. IKEEXT_COOKIE_PAIR0 cookiePair;
  603. IKEEXT_CREDENTIALS1 ikeCredentials;
  604. GUID ikePolicyKey;
  605. UINT64 virtualIfTunnelId;
  606. FWP_BYTE_BLOB correlationKey;
  607. } IKEEXT_SA_DETAILS1;
  608. #endif
  609. #if (NTDDI_VERSION >= NTDDI_WIN8)
  610. typedef struct IKEEXT_CREDENTIAL2_ {
  611. IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType;
  612. IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType;
  613. __C89_NAMELESS union {
  614. IKEEXT_PRESHARED_KEY_AUTHENTICATION1 *presharedKey;
  615. IKEEXT_CERTIFICATE_CREDENTIAL1 *certificate;
  616. IKEEXT_NAME_CREDENTIAL0 *name;
  617. } __C89_NAMELESSUNIONNAME;
  618. } IKEEXT_CREDENTIAL2;
  619. typedef struct IKEEXT_CREDENTIAL_PAIR2_ {
  620. IKEEXT_CREDENTIAL2 localCredentials;
  621. IKEEXT_CREDENTIAL2 peerCredentials;
  622. } IKEEXT_CREDENTIAL_PAIR2;
  623. typedef struct IKEEXT_CREDENTIALS2_ {
  624. UINT32 numCredentials;
  625. IKEEXT_CREDENTIAL_PAIR2 *credentials;
  626. } IKEEXT_CREDENTIALS2;
  627. typedef struct IKEEXT_SA_DETAILS2_ {
  628. UINT64 saId;
  629. IKEEXT_KEY_MODULE_TYPE keyModuleType;
  630. FWP_IP_VERSION ipVersion;
  631. __C89_NAMELESS union {
  632. IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation;
  633. } __C89_NAMELESSUNIONNAME;
  634. IKEEXT_TRAFFIC0 ikeTraffic;
  635. IKEEXT_PROPOSAL0 ikeProposal;
  636. IKEEXT_COOKIE_PAIR0 cookiePair;
  637. IKEEXT_CREDENTIALS2 ikeCredentials;
  638. GUID ikePolicyKey;
  639. UINT64 virtualIfTunnelId;
  640. FWP_BYTE_BLOB correlationKey;
  641. } IKEEXT_SA_DETAILS2;
  642. #endif
  643. typedef struct IKEEXT_SA_ENUM_TEMPLATE0_ {
  644. FWP_CONDITION_VALUE0 localSubNet;
  645. FWP_CONDITION_VALUE0 remoteSubNet;
  646. FWP_BYTE_BLOB localMainModeCertHash;
  647. } IKEEXT_SA_ENUM_TEMPLATE0;
  648. #endif /* WINAPI_PARTITION_DESKTOP. */
  649. /* Begin additional prototypes for all interfaces */
  650. /* End additional prototypes */
  651. #ifdef __cplusplus
  652. }
  653. #endif
  654. #endif /* __iketypes_h__ */