summaryrefslogtreecommitdiff
path: root/cpp/src/IceSSL
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2014-10-21 11:33:27 +0200
committerJose <jose@zeroc.com>2014-10-21 11:33:27 +0200
commite787d0855b51a47f10547d0346faa7fe6def5064 (patch)
treecfb595d9500151f74f8bf32786e0d55c91fe52f5 /cpp/src/IceSSL
parentFixed gradle jar installation task to depend on jar task (diff)
downloadice-e787d0855b51a47f10547d0346faa7fe6def5064.tar.bz2
ice-e787d0855b51a47f10547d0346faa7fe6def5064.tar.xz
ice-e787d0855b51a47f10547d0346faa7fe6def5064.zip
OS X 10.10 SSL configuration fixes
Diffstat (limited to 'cpp/src/IceSSL')
-rw-r--r--cpp/src/IceSSL/SecureTransportEngine.cpp7
-rw-r--r--cpp/src/IceSSL/SecureTransportTransceiverI.cpp7
2 files changed, 14 insertions, 0 deletions
diff --git a/cpp/src/IceSSL/SecureTransportEngine.cpp b/cpp/src/IceSSL/SecureTransportEngine.cpp
index 7a4d16d7c5e..743347feb67 100644
--- a/cpp/src/IceSSL/SecureTransportEngine.cpp
+++ b/cpp/src/IceSSL/SecureTransportEngine.cpp
@@ -1499,5 +1499,12 @@ IceSSL::SecureTransportEngine::parseCiphers(const string& ciphers)
}
}
_ciphers = enabled;
+
+ if(_ciphers.empty())
+ {
+ throw PluginInitializationException(__FILE__, __LINE__,
+ "IceSSL: invalid value for IceSSL.Ciphers:\n" + ciphers +
+ "\nThe result cipher list does not contain any entries");
+ }
}
#endif
diff --git a/cpp/src/IceSSL/SecureTransportTransceiverI.cpp b/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
index 38f9e4cc70a..a8f491db570 100644
--- a/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
+++ b/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
@@ -224,6 +224,13 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B
{
assert(!_trust);
err = SSLCopyPeerTrust(_ssl, &_trust);
+ if(_incoming && err == errSSLBadCert && _engine->getVerifyPeer() == 1)
+ {
+ // This happens in 10.10 when the client doesn't provide
+ // a certificate and the server is configured to try
+ // authenticate
+ continue;
+ }
if(err == noErr)
{
checkTrustResult(_trust, _engine, _instance);