aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/tls/openssl/TLSSession_OpenSSL.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2013-09-21 09:53:38 +0000
committerVincent Richard <[email protected]>2013-09-21 09:53:38 +0000
commit041344d02adcb89de51a57e38dd51d2959a4e494 (patch)
tree206a2c7a7bed3a8152489420303a4be32f330a3a /src/net/tls/openssl/TLSSession_OpenSSL.cpp
parentMade template argument explicit to workaround compiler error on MSVC. (diff)
downloadvmime-041344d02adcb89de51a57e38dd51d2959a4e494.tar.gz
vmime-041344d02adcb89de51a57e38dd51d2959a4e494.zip
TLS properties: allows setting custom cipher suite for TLS/SSL connections.
Diffstat (limited to 'src/net/tls/openssl/TLSSession_OpenSSL.cpp')
-rw-r--r--src/net/tls/openssl/TLSSession_OpenSSL.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/net/tls/openssl/TLSSession_OpenSSL.cpp b/src/net/tls/openssl/TLSSession_OpenSSL.cpp
index fcf82c7b..953e4ebc 100644
--- a/src/net/tls/openssl/TLSSession_OpenSSL.cpp
+++ b/src/net/tls/openssl/TLSSession_OpenSSL.cpp
@@ -28,6 +28,7 @@
#include "vmime/net/tls/openssl/TLSSession_OpenSSL.hpp"
+#include "vmime/net/tls/openssl/TLSProperties_OpenSSL.hpp"
#include "vmime/net/tls/openssl/OpenSSLInitializer.hpp"
#include "vmime/exception.hpp"
@@ -45,19 +46,19 @@ static OpenSSLInitializer::autoInitializer openSSLInitializer;
// static
-ref <TLSSession> TLSSession::create(ref <security::cert::certificateVerifier> cv)
+ref <TLSSession> TLSSession::create(ref <security::cert::certificateVerifier> cv, ref <TLSProperties> props)
{
- return vmime::create <TLSSession_OpenSSL>(cv);
+ return vmime::create <TLSSession_OpenSSL>(cv, props);
}
-TLSSession_OpenSSL::TLSSession_OpenSSL(ref <vmime::security::cert::certificateVerifier> cv)
- : m_sslctx(0), m_certVerifier(cv)
+TLSSession_OpenSSL::TLSSession_OpenSSL(ref <vmime::security::cert::certificateVerifier> cv, ref <TLSProperties> props)
+ : m_sslctx(0), m_certVerifier(cv), m_props(props)
{
m_sslctx = SSL_CTX_new(SSLv23_client_method());
SSL_CTX_set_options(m_sslctx, SSL_OP_ALL | SSL_OP_NO_SSLv2);
SSL_CTX_set_mode(m_sslctx, SSL_MODE_AUTO_RETRY);
- SSL_CTX_set_cipher_list(m_sslctx, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");
+ SSL_CTX_set_cipher_list(m_sslctx, m_props->getCipherSuite().c_str());
SSL_CTX_set_session_cache_mode(m_sslctx, SSL_SESS_CACHE_OFF);
}