diff options
author | Anthony Neal <aneal@zeroc.com> | 2002-02-15 15:36:54 +0000 |
---|---|---|
committer | Anthony Neal <aneal@zeroc.com> | 2002-02-15 15:36:54 +0000 |
commit | 99cec34e98a3f6c5a861e5770219f7785ba29456 (patch) | |
tree | f363e279380b5d78bb4cb480637c6174bb37e9a6 /cpp/src/Ice/SslFactory.cpp | |
parent | bug fix for command-line arg parsing (diff) | |
download | ice-99cec34e98a3f6c5a861e5770219f7785ba29456.tar.bz2 ice-99cec34e98a3f6c5a861e5770219f7785ba29456.tar.xz ice-99cec34e98a3f6c5a861e5770219f7785ba29456.zip |
Added functionality for certificate verification, and certificate
verifiers. Added implementation of Base64 encoding to IceUtil. Added
the RSA Certificate abstraction and RSA Certificate Generation class.
Installed initial hooks into Glacier for certificate generation.
Diffstat (limited to 'cpp/src/Ice/SslFactory.cpp')
-rw-r--r-- | cpp/src/Ice/SslFactory.cpp | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/cpp/src/Ice/SslFactory.cpp b/cpp/src/Ice/SslFactory.cpp index 63ac8f9899d..2210a146d8c 100644 --- a/cpp/src/Ice/SslFactory.cpp +++ b/cpp/src/Ice/SslFactory.cpp @@ -35,18 +35,17 @@ namespace IceSecurity namespace Ssl { - -extern "C" -{ - void lockingCallback(int, int, const char*, int); -} - // Static member instantiations. IceUtil::Mutex Factory::_systemRepositoryMutex; SystemMap Factory::_systemRepository; SslHandleSystemMap Factory::_sslHandleSystemRepository; int Factory::_evict = 0; +extern "C"
+{
+ void lockingCallback(int, int, const char*, int);
+}
+
class SslLockKeeper { @@ -83,9 +82,8 @@ void IceSecurity::Ssl::lockingCallback(int mode, int type, const char *file, int } } - IceSecurity::Ssl::SystemPtr -IceSecurity::Ssl::Factory::getSystem(string& systemIdentifier) +IceSecurity::Ssl::Factory::getSystem(const string& systemIdentifier) { IceUtil::Mutex::Lock sync(_systemRepositoryMutex); @@ -145,7 +143,6 @@ IceSecurity::Ssl::Factory::getSystemFromHandle(void* sslHandle) return system; } - void IceSecurity::Ssl::Factory::reapSystems() { @@ -194,3 +191,21 @@ IceSecurity::Ssl::Factory::reapSystems() } } +void
+IceSecurity::Ssl::setSystemCertificateVerifier(const string& systemIdentifier,
+ CertificateVerifierType verifierType,
+ const CertificateVerifierPtr& certificateVerifier)
+{
+ SystemPtr sslSystem = Factory::getSystem(systemIdentifier);
+
+ if ((verifierType == Client) || (verifierType == ClientServer))
+ {
+ sslSystem->setClientCertificateVerifier(certificateVerifier);
+ }
+
+ if ((verifierType == Server) || (verifierType == ClientServer))
+ {
+ sslSystem->setServerCertificateVerifier(certificateVerifier);
+ }
+}
+
|