Protect TLSv1, TLSv1_1 and TLSv1_2 entry point references by proper

OpenSSL constant

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>
This commit is contained in:
FrancisANDRE
2015-09-19 08:24:37 +02:00
parent 73222d1530
commit 3e3c9da626

View File

@@ -333,27 +333,33 @@ void Context::createSSLContext()
case SERVER_USE: case SERVER_USE:
_pSSLContext = SSL_CTX_new(SSLv23_server_method()); _pSSLContext = SSL_CTX_new(SSLv23_server_method());
break; break;
#if defined(SSL_OP_NO_TLSv1) && !defined(OPENSSL_NO_TLS1)
case TLSV1_CLIENT_USE: case TLSV1_CLIENT_USE:
_pSSLContext = SSL_CTX_new(TLSv1_client_method()); _pSSLContext = SSL_CTX_new(TLSv1_client_method());
break; break;
case TLSV1_SERVER_USE: case TLSV1_SERVER_USE:
_pSSLContext = SSL_CTX_new(TLSv1_server_method()); _pSSLContext = SSL_CTX_new(TLSv1_server_method());
break; break;
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
case TLSV1_1_CLIENT_USE:
_pSSLContext = SSL_CTX_new(TLSv1_1_client_method());
break;
case TLSV1_1_SERVER_USE:
_pSSLContext = SSL_CTX_new(TLSv1_1_server_method());
break;
#endif #endif
#if OPENSSL_VERSION_NUMBER >= 0x10001000L #if defined(SSL_OP_NO_TLSv1_1) && !defined(OPENSSL_NO_TLS1)
case TLSV1_2_CLIENT_USE: /* SSL_OP_NO_TLSv1_1 is defined in ssl.h if the library version supports TLSv1.1.
_pSSLContext = SSL_CTX_new(TLSv1_2_client_method()); * OPENSSL_NO_TLS1 is defined in opensslconf.h or on the compiler command line
break; * if TLS1.x was removed at OpenSSL library build time via Configure options.
case TLSV1_2_SERVER_USE: */
_pSSLContext = SSL_CTX_new(TLSv1_2_server_method()); case TLSV1_1_CLIENT_USE:
break; _pSSLContext = SSL_CTX_new(TLSv1_1_client_method());
break;
case TLSV1_1_SERVER_USE:
_pSSLContext = SSL_CTX_new(TLSv1_1_server_method());
break;
#endif
#if defined(SSL_OP_NO_TLSv1_2) && !defined(OPENSSL_NO_TLS1)
case TLSV1_2_CLIENT_USE:
_pSSLContext = SSL_CTX_new(TLSv1_2_client_method());
break;
case TLSV1_2_SERVER_USE:
_pSSLContext = SSL_CTX_new(TLSv1_2_server_method());
break;
#endif #endif
default: default:
throw Poco::InvalidArgumentException("Invalid or unsupported usage"); throw Poco::InvalidArgumentException("Invalid or unsupported usage");