#define NAMEBUG(x) #x, SSL_OP_##x
static const LONG_NAME_MASK ssl_bug_tweaks[] = {
-#if defined(SSL_OP_MICROSOFT_SESS_ID_BUG)
- NAMEBUG(MICROSOFT_SESS_ID_BUG), /* 0x00000001L */
+#ifndef SSL_OP_MICROSOFT_SESS_ID_BUG
+#define SSL_OP_MICROSOFT_SESS_ID_BUG 0
#endif
+ NAMEBUG(MICROSOFT_SESS_ID_BUG),
-#if defined(SSL_OP_NETSCAPE_CHALLENGE_BUG)
- NAMEBUG(NETSCAPE_CHALLENGE_BUG), /* 0x00000002L */
+#ifndef SSL_OP_NETSCAPE_CHALLENGE_BUG
+#define SSL_OP_NETSCAPE_CHALLENGE_BUG 0
#endif
+ NAMEBUG(NETSCAPE_CHALLENGE_BUG),
-#if defined(SSL_OP_LEGACY_SERVER_CONNECT)
- NAMEBUG(LEGACY_SERVER_CONNECT), /* 0x00000004L */
+#ifndef SSL_OP_LEGACY_SERVER_CONNECT
+#define SSL_OP_LEGACY_SERVER_CONNECT 0
#endif
+ NAMEBUG(LEGACY_SERVER_CONNECT),
-#if defined(SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG)
- NAMEBUG(NETSCAPE_REUSE_CIPHER_CHANGE_BUG), /* 0x00000008L */
- "CVE-2010-4180", SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG,
+#ifndef SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG
+#define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0
#endif
+ NAMEBUG(NETSCAPE_REUSE_CIPHER_CHANGE_BUG),
+ "CVE-2010-4180", SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG,
-#if defined(SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG)
- NAMEBUG(SSLREF2_REUSE_CERT_TYPE_BUG), /* 0x00000010L */
+#ifndef SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG
+#define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0
#endif
+ NAMEBUG(SSLREF2_REUSE_CERT_TYPE_BUG),
-#if defined(SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER)
- NAMEBUG(MICROSOFT_BIG_SSLV3_BUFFER),/* 0x00000020L */
+#ifndef SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER
+#define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0
#endif
+ NAMEBUG(MICROSOFT_BIG_SSLV3_BUFFER),
-#if defined(SSL_OP_MSIE_SSLV2_RSA_PADDING)
- NAMEBUG(MSIE_SSLV2_RSA_PADDING), /* 0x00000040L */
- "CVE-2005-2969", SSL_OP_MSIE_SSLV2_RSA_PADDING,
+#ifndef SSL_OP_MSIE_SSLV2_RSA_PADDING
+#define SSL_OP_MSIE_SSLV2_RSA_PADDING 0
#endif
+ NAMEBUG(MSIE_SSLV2_RSA_PADDING),
+ "CVE-2005-2969", SSL_OP_MSIE_SSLV2_RSA_PADDING,
-#if defined(SSL_OP_SSLEAY_080_CLIENT_DH_BUG)
- NAMEBUG(SSLEAY_080_CLIENT_DH_BUG), /* 0x00000080L */
+#ifndef SSL_OP_SSLEAY_080_CLIENT_DH_BUG
+#define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0
#endif
+ NAMEBUG(SSLEAY_080_CLIENT_DH_BUG),
-#if defined(SSL_OP_TLS_D5_BUG)
- NAMEBUG(TLS_D5_BUG), /* 0x00000100L */
+#ifndef SSL_OP_TLS_D5_BUG
+#define SSL_OP_TLS_D5_BUG 0
#endif
+ NAMEBUG(TLS_D5_BUG),
-#if defined(SSL_OP_TLS_BLOCK_PADDING_BUG)
- NAMEBUG(TLS_BLOCK_PADDING_BUG), /* 0x00000200L */
+#ifndef SSL_OP_TLS_BLOCK_PADDING_BUG
+#define SSL_OP_TLS_BLOCK_PADDING_BUG 0
#endif
+ NAMEBUG(TLS_BLOCK_PADDING_BUG),
-#if defined(SSL_OP_TLS_ROLLBACK_BUG)
- NAMEBUG(TLS_ROLLBACK_BUG), /* 0x00000400L */
+#ifndef SSL_OP_TLS_ROLLBACK_BUG
+#define SSL_OP_TLS_ROLLBACK_BUG 0
#endif
+ NAMEBUG(TLS_ROLLBACK_BUG),
-#if defined(SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS)
- NAMEBUG(DONT_INSERT_EMPTY_FRAGMENTS), /* 0x00000800L */
+#ifndef SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
+#define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0
#endif
+ NAMEBUG(DONT_INSERT_EMPTY_FRAGMENTS),
-#if defined(SSL_OP_CRYPTOPRO_TLSEXT_BUG)
- NAMEBUG(CRYPTOPRO_TLSEXT_BUG), /* 0x80000000L */
+#ifndef SSL_OP_CRYPTOPRO_TLSEXT_BUG
+#define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0
#endif
+ NAMEBUG(CRYPTOPRO_TLSEXT_BUG),
0, 0,
};
long bits = SSL_OP_ALL; /* Work around all known bugs */
long mask;
-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
+#if OPENSSL_VERSION_NUMBER >= 0x00908000L && \
+ OPENSSL_VERSION_NUMBER < 0x10000000L
long lib_version = SSLeay();
/*
bits &= ~long_name_mask_opt(VAR_TLS_BUG_TWEAKS, ssl_bug_tweaks,
var_tls_bug_tweaks, NAME_MASK_ANY_CASE |
NAME_MASK_NUMBER | NAME_MASK_WARN);
+#ifdef SSL_OP_SAFARI_ECDHE_ECDSA_BUG
+ /* Not relevant to SMTP */
+ bits &= ~SSL_OP_SAFARI_ECDHE_ECDSA_BUG;
+#endif
}
return (bits);
}