diff -u include/openssl.orig/dtls1.h include/openssl/dtls1.h --- include/openssl.orig/dtls1.h Mon Dec 7 07:58:32 2015 +++ include/openssl/dtls1.h Mon Dec 7 07:56:14 2015 @@ -60,7 +60,11 @@ #ifndef HEADER_DTLS1_H #define HEADER_DTLS1_H +#if defined(_WIN32) +#include +#else #include +#endif #include #include --- include/openssl/opensslconf.h.orig Sat Nov 5 08:36:25 2016 +++ include/openssl/opensslconf.h Mon Jul 17 06:06:58 2017 @@ -1,6 +1,10 @@ #include /* crypto/opensslconf.h.in */ +#if defined(_MSC_VER) && !defined(__attribute__) +#define __attribute__(a) +#endif + #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) #define OPENSSLDIR "/etc/ssl" #endif diff -u include/openssl.orig/ossl_typ.h include/openssl/ossl_typ.h --- include/openssl.orig/ossl_typ.h Mon Dec 7 07:58:32 2015 +++ include/openssl/ossl_typ.h Mon Dec 7 07:56:14 2015 @@ -80,6 +80,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 -u include/openssl.orig/pkcs7.h include/openssl/pkcs7.h --- include/openssl.orig/pkcs7.h Mon Dec 7 07:58:32 2015 +++ include/openssl/pkcs7.h Mon Dec 7 07:56:14 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 -u include/openssl.orig/x509.h include/openssl/x509.h --- include/openssl.orig/x509.h Mon Dec 7 07:58:32 2015 +++ include/openssl/x509.h Mon Dec 7 07:56:14 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