kernel-wfp: Declare GUIDs and auth/cipher configs missing in some MinGW builds

This commit is contained in:
Martin Willi
2014-06-04 16:32:11 +02:00
parent 4b51280344
commit be32be01a8
@@ -107,6 +107,95 @@ enum {
IPSEC_SA_BUNDLE_FLAG_FORWARD_PATH_INITIATOR = (1<<17),
};
/* missing in some MinGW versions */
const GUID FWPM_CONDITION_IP_REMOTE_ADDRESS;
const GUID FWPM_CONDITION_IP_LOCAL_ADDRESS;
const GUID FWPM_CONDITION_IP_SOURCE_ADDRESS;
const GUID FWPM_CONDITION_IP_DESTINATION_ADDRESS;
const GUID FWPM_CONDITION_IP_LOCAL_PORT;
const GUID FWPM_CONDITION_IP_REMOTE_PORT;
const GUID FWPM_CONDITION_IP_PROTOCOL;
#ifndef FWPM_CONDITION_ICMP_TYPE
# define FWPM_CONDITION_ICMP_TYPE FWPM_CONDITION_IP_LOCAL_PORT
#endif
#ifndef FWPM_CONDITION_ICMP_CODE
# define FWPM_CONDITION_ICMP_CODE FWPM_CONDITION_IP_REMOTE_PORT
#endif
const GUID FWPM_LAYER_INBOUND_TRANSPORT_V4;
const GUID FWPM_LAYER_INBOUND_TRANSPORT_V6;
const GUID FWPM_LAYER_OUTBOUND_TRANSPORT_V4;
const GUID FWPM_LAYER_OUTBOUND_TRANSPORT_V6;
const GUID FWPM_LAYER_IPFORWARD_V4;
const GUID FWPM_LAYER_IPFORWARD_V6;
const GUID FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V4;
const GUID FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V6;
const GUID FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V4;
const GUID FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V6;
const GUID FWPM_CALLOUT_IPSEC_INBOUND_TUNNEL_V4;
const GUID FWPM_CALLOUT_IPSEC_INBOUND_TUNNEL_V6;
const GUID FWPM_CALLOUT_IPSEC_OUTBOUND_TUNNEL_V4;
const GUID FWPM_CALLOUT_IPSEC_OUTBOUND_TUNNEL_V6;
const GUID FWPM_CALLOUT_IPSEC_FORWARD_INBOUND_TUNNEL_V4;
const GUID FWPM_CALLOUT_IPSEC_FORWARD_INBOUND_TUNNEL_V6;
const GUID FWPM_CALLOUT_IPSEC_FORWARD_OUTBOUND_TUNNEL_V4;
const GUID FWPM_CALLOUT_IPSEC_FORWARD_OUTBOUND_TUNNEL_V6;
/* integrity config, missing in some MinGW versions */
#ifndef IPSEC_AUTH_CONFIG_HMAC_MD5_96
enum {
IPSEC_AUTH_CONFIG_HMAC_MD5_96 = 0,
IPSEC_AUTH_CONFIG_HMAC_SHA_1_96,
IPSEC_AUTH_CONFIG_HMAC_SHA_256_128,
IPSEC_AUTH_CONFIG_GCM_AES_128,
IPSEC_AUTH_CONFIG_GCM_AES_192,
IPSEC_AUTH_CONFIG_GCM_AES_256,
IPSEC_AUTH_CONFIG_MAX
};
#define IPSEC_AUTH_TRANSFORM_ID_HMAC_MD5_96 { \
IPSEC_AUTH_MD5, IPSEC_AUTH_CONFIG_HMAC_MD5_96 }
#define IPSEC_AUTH_TRANSFORM_ID_HMAC_SHA_1_96 { \
IPSEC_AUTH_SHA_1, IPSEC_AUTH_CONFIG_HMAC_SHA_1_96 }
#define IPSEC_AUTH_TRANSFORM_ID_HMAC_SHA_256_128 { \
IPSEC_AUTH_SHA_256, IPSEC_AUTH_CONFIG_HMAC_SHA_256_128 }
#define IPSEC_AUTH_TRANSFORM_ID_GCM_AES_128 { \
IPSEC_AUTH_AES_128, IPSEC_AUTH_CONFIG_GCM_AES_128 }
#define IPSEC_AUTH_TRANSFORM_ID_GCM_AES_192 { \
IPSEC_AUTH_AES_192, IPSEC_AUTH_CONFIG_GCM_AES_192 }
#define IPSEC_AUTH_TRANSFORM_ID_GCM_AES_256 { \
IPSEC_AUTH_AES_256, IPSEC_AUTH_CONFIG_GCM_AES_256 }
#endif
/* encryption config, missing in some MinGW versions */
#ifndef IPSEC_CIPHER_CONFIG_CBC_DES
enum {
IPSEC_CIPHER_CONFIG_CBC_DES = 1,
IPSEC_CIPHER_CONFIG_CBC_3DES,
IPSEC_CIPHER_CONFIG_CBC_AES_128,
IPSEC_CIPHER_CONFIG_CBC_AES_192,
IPSEC_CIPHER_CONFIG_CBC_AES_256,
IPSEC_CIPHER_CONFIG_GCM_AES_128,
IPSEC_CIPHER_CONFIG_GCM_AES_192,
IPSEC_CIPHER_CONFIG_GCM_AES_256,
IPSEC_CIPHER_CONFIG_MAX
};
#define IPSEC_CIPHER_TRANSFORM_ID_GCM_AES_128 { \
IPSEC_CIPHER_TYPE_AES_128, IPSEC_CIPHER_CONFIG_GCM_AES_128 }
#define IPSEC_CIPHER_TRANSFORM_ID_GCM_AES_192 { \
IPSEC_CIPHER_TYPE_AES_192, IPSEC_CIPHER_CONFIG_GCM_AES_192 }
#define IPSEC_CIPHER_TRANSFORM_ID_GCM_AES_256 { \
IPSEC_CIPHER_TYPE_AES_256, IPSEC_CIPHER_CONFIG_GCM_AES_256 }
#define IPSEC_CIPHER_TRANSFORM_ID_CBC_DES { \
IPSEC_CIPHER_TYPE_DES, IPSEC_CIPHER_CONFIG_CBC_DES }
#define IPSEC_CIPHER_TRANSFORM_ID_CBC_3DES { \
IPSEC_CIPHER_TYPE_3DES, IPSEC_CIPHER_CONFIG_CBC_3DES }
#define IPSEC_CIPHER_TRANSFORM_ID_AES_128 { \
IPSEC_CIPHER_TYPE_AES_128, IPSEC_CIPHER_CONFIG_CBC_AES_128 }
#define IPSEC_CIPHER_TRANSFORM_ID_AES_192 { \
IPSEC_CIPHER_TYPE_AES_192, IPSEC_CIPHER_CONFIG_CBC_AES_192 }
#define IPSEC_CIPHER_TRANSFORM_ID_AES_256 { \
IPSEC_CIPHER_TYPE_AES_256, IPSEC_CIPHER_CONFIG_CBC_AES_256 }
#endif
DWORD WINAPI FwpmIPsecTunnelAdd0(HANDLE, UINT32,
const FWPM_PROVIDER_CONTEXT0*, const FWPM_PROVIDER_CONTEXT0*, UINT32,
const FWPM_FILTER_CONDITION0*, PSECURITY_DESCRIPTOR);