1 // 2 // Copyright (c) ZeroC, Inc. All rights reserved. 3 // 4 5 #include <IceSSL/PluginI.h> 6 #include <IceSSL/SecureTransport.h> 7 #include <IceSSL/SecureTransportEngine.h> 8 9 #include <Ice/Initialize.h> 10 11 using namespace Ice; 12 using namespace std; 13 14 namespace 15 { 16 17 class PluginI : public IceSSL::PluginI 18 { 19 public: 20 21 PluginI(const Ice::CommunicatorPtr&); 22 23 virtual IceSSL::CertificatePtr create(SecCertificateRef) const; 24 virtual IceSSL::CertificatePtr load(const std::string&) const; 25 virtual IceSSL::CertificatePtr decode(const std::string&) const; 26 }; 27 28 } // anonymous namespace end 29 30 // 31 // Plugin implementation. 32 // PluginI(const Ice::CommunicatorPtr & com)33PluginI::PluginI(const Ice::CommunicatorPtr& com) : 34 IceSSL::PluginI(com, new IceSSL::SecureTransport::SSLEngine(com)) 35 { 36 } 37 38 IceSSL::CertificatePtr create(SecCertificateRef cert) const39PluginI::create(SecCertificateRef cert) const 40 { 41 return IceSSL::SecureTransport::Certificate::create(cert); 42 } 43 44 IceSSL::CertificatePtr load(const std::string & file) const45PluginI::load(const std::string& file) const 46 { 47 return IceSSL::SecureTransport::Certificate::load(file); 48 } 49 50 IceSSL::CertificatePtr decode(const std::string & encoding) const51PluginI::decode(const std::string& encoding) const 52 { 53 return IceSSL::SecureTransport::Certificate::load(encoding); 54 } 55 56 // 57 // Plug-in factory function. 58 // 59 extern "C" ICESSL_API Ice::Plugin* createIceSSL(const Ice::CommunicatorPtr & communicator,const string &,const Ice::StringSeq &)60createIceSSL(const Ice::CommunicatorPtr& communicator, const string& /*name*/, const Ice::StringSeq& /*args*/) 61 { 62 return new PluginI(communicator); 63 } 64 65 IceSSL::CertificatePtr load(const std::string & file)66IceSSL::Certificate::load(const std::string& file) 67 { 68 return IceSSL::SecureTransport::Certificate::load(file); 69 } 70 71 IceSSL::CertificatePtr decode(const std::string & encoding)72IceSSL::Certificate::decode(const std::string& encoding) 73 { 74 return IceSSL::SecureTransport::Certificate::decode(encoding); 75 } 76