diff options
Diffstat (limited to 'cpp/src/IceSSL/SSLEngine.cpp')
-rw-r--r-- | cpp/src/IceSSL/SSLEngine.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/cpp/src/IceSSL/SSLEngine.cpp b/cpp/src/IceSSL/SSLEngine.cpp index 355b8fad16f..81f36d38948 100644 --- a/cpp/src/IceSSL/SSLEngine.cpp +++ b/cpp/src/IceSSL/SSLEngine.cpp @@ -22,11 +22,13 @@ using namespace std; using namespace Ice; +using namespace IceUtil; using namespace IceSSL; IceUtil::Shared* IceSSL::upCast(IceSSL::SSLEngine* p) { return p; } IceSSL::SSLEngine::SSLEngine(const Ice::CommunicatorPtr& communicator) : + _initialized(false), _communicator(communicator), _logger(communicator->getLogger()), _trustManager(new TrustManager(communicator)) @@ -80,6 +82,13 @@ IceSSL::SSLEngine::password(bool /*encrypting*/) } } +bool +IceSSL::SSLEngine::initialized() const +{ + Mutex::Lock lock(_mutex); + return _initialized; +} + string IceSSL::SSLEngine::getPassword() const { @@ -128,13 +137,8 @@ IceSSL::SSLEngine::initialize() } void -IceSSL::SSLEngine::verifyPeer(const string& address, const NativeConnectionInfoPtr& info, const string& desc) +IceSSL::SSLEngine::verifyPeerCertName(const string& address, const NativeConnectionInfoPtr& info) { - const CertificateVerifierPtr verifier = getCertificateVerifier(); - -#if defined(ICE_USE_SCHANNEL) || \ - (defined(ICE_USE_OPENSSL) && defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10002000L) - // // For an outgoing connection, we compare the proxy address (if any) against // fields in the server's certificate (if any). @@ -219,8 +223,12 @@ IceSSL::SSLEngine::verifyPeer(const string& address, const NativeConnectionInfoP } } } -#endif +} +void +IceSSL::SSLEngine::verifyPeer(const string& address, const NativeConnectionInfoPtr& info, const string& desc) +{ + const CertificateVerifierPtr verifier = getCertificateVerifier(); if(_verifyDepthMax > 0 && static_cast<int>(info->certs.size()) > _verifyDepthMax) { ostringstream ostr; |