diff -urN include/openssl.orig/dtls1.h include/openssl/dtls1.h --- include/openssl.orig/dtls1.h Mon Sep 21 21:45:45 2015 +++ include/openssl/dtls1.h Mon Sep 21 21:58:56 2015 @@ -60,7 +60,11 @@ #ifndef HEADER_DTLS1_H #define HEADER_DTLS1_H +#if defined(_WIN32) +#include +#else #include +#endif #include #include diff -urN include/openssl.orig/opensslconf.h include/openssl/opensslconf.h --- include/openssl.orig/opensslconf.h Mon Sep 21 21:45:45 2015 +++ include/openssl/opensslconf.h Mon Sep 21 21:56:13 2015 @@ -1,6 +1,10 @@ #include /* crypto/opensslconf.h.in */ +#if defined(_MSC_VER) && !defined(__attribute__) +#define __attribute__(a) +#endif + /* Generate 80386 code? */ #undef I386_ONLY diff -urN include/openssl.orig/ossl_typ.h include/openssl/ossl_typ.h --- include/openssl.orig/ossl_typ.h Mon Sep 21 21:45:45 2015 +++ include/openssl/ossl_typ.h Mon Sep 21 21:56:22 2015 @@ -100,6 +100,22 @@ typedef struct ASN1_ITEM_st ASN1_ITEM; typedef struct asn1_pctx_st ASN1_PCTX; +#if defined(_WIN32) && defined(__WINCRYPT_H__) +#ifndef LIBRESSL_INTERNAL +#ifdef _MSC_VER +#pragma message("Warning, overriding WinCrypt defines") +#else +#warning overriding WinCrypt defines +#endif +#endif +#undef X509_NAME +#undef X509_CERT_PAIR +#undef X509_EXTENSIONS +#undef OCSP_REQUEST +#undef OCSP_RESPONSE +#undef PKCS7_ISSUER_AND_SERIAL +#endif + #ifdef BIGNUM #undef BIGNUM #endif diff -urN include/openssl.orig/pkcs7.h include/openssl/pkcs7.h --- include/openssl.orig/pkcs7.h Mon Sep 21 21:45:45 2015 +++ include/openssl/pkcs7.h Mon Sep 21 21:56:29 2015 @@ -69,6 +69,18 @@ extern "C" { #endif +#if defined(_WIN32) && defined(__WINCRYPT_H__) +#ifndef LIBRESSL_INTERNAL +#ifdef _MSC_VER +#pragma message("Warning, overriding WinCrypt defines") +#else +#warning overriding WinCrypt defines +#endif +#endif +#undef PKCS7_ISSUER_AND_SERIAL +#undef PKCS7_SIGNER_INFO +#endif + /* Encryption_ID DES-CBC Digest_ID MD5 diff -urN include/openssl.orig/x509.h include/openssl/x509.h --- include/openssl.orig/x509.h Mon Sep 21 21:45:45 2015 +++ include/openssl/x509.h Mon Sep 21 21:56:35 2015 @@ -112,6 +112,19 @@ extern "C" { #endif +#if defined(_WIN32) +#ifndef LIBRESSL_INTERNAL +#ifdef _MSC_VER +#pragma message("Warning, overriding WinCrypt defines") +#else +#warning overriding WinCrypt defines +#endif +#endif +#undef X509_NAME +#undef X509_CERT_PAIR +#undef X509_EXTENSIONS +#endif + #define X509_FILETYPE_PEM 1 #define X509_FILETYPE_ASN1 2 #define X509_FILETYPE_DEFAULT 3