[3.9] bpo-43799: OpenSSL 3.0.0: declare OPENSSL_API_COMPAT 1.1.1 (GH-25329) by miss-islington · Pull Request #25382 · python/cpython
/* Don't warn about deprecated functions, */ #ifndef OPENSSL_API_COMPAT // 0x10101000L == 1.1.1, 30000 == 3.0.0 #define OPENSSL_API_COMPAT 0x10101000L #endif #define OPENSSL_NO_DEPRECATED 1
#define PY_SSIZE_T_CLEAN
#include "Python.h"
/* Don't warn about deprecated functions */ #ifdef __GNUC__ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif #ifdef __clang__ #pragma clang diagnostic ignored "-Wdeprecated-declarations" #endif
/* Include OpenSSL header files */ #include "openssl/rsa.h" #include "openssl/crypto.h"
/* OpenSSL API compat */ #ifdef OPENSSL_API_COMPAT #if OPENSSL_API_COMPAT >= 0x10100000L
/* OpenSSL API 1.1.0+ does not include version methods */ /* OpenSSL API 1.1.0+ does not include version methods. Define the methods * unless OpenSSL is compiled without the methods. It's the easiest way to * make 1.0.2, 1.1.0, 1.1.1, and 3.0.0 happy without deprecation warnings. */ #ifndef OPENSSL_NO_TLS1_METHOD #define OPENSSL_NO_TLS1_METHOD 1 extern const SSL_METHOD *TLSv1_method(void); #endif #ifndef OPENSSL_NO_TLS1_1_METHOD #define OPENSSL_NO_TLS1_1_METHOD 1 extern const SSL_METHOD *TLSv1_1_method(void); #endif #ifndef OPENSSL_NO_TLS1_2_METHOD #define OPENSSL_NO_TLS1_2_METHOD 1 extern const SSL_METHOD *TLSv1_2_method(void); #endif
#endif /* >= 1.1.0 compcat */ #endif /* OPENSSL_API_COMPAT */
/* LibreSSL 2.7.0 provides necessary OpenSSL 1.1.0 APIs */ #if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL # define PY_OPENSSL_1_1_API 1