00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_INTERNAL_NET_SSL_OPENSSL_OPENSSLSERVERSOCKET_H_
00019 #define _DECAF_INTERNAL_NET_SSL_OPENSSL_OPENSSLSERVERSOCKET_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <decaf/net/ssl/SSLServerSocket.h>
00024
00025 namespace decaf {
00026 namespace internal {
00027 namespace net {
00028 namespace ssl {
00029 namespace openssl {
00030
00031 class OpenSSLParameters;
00032 class ServerSocketData;
00033
00039 class DECAF_API OpenSSLServerSocket : public decaf::net::ssl::SSLServerSocket {
00040 private:
00041
00042 ServerSocketData* data;
00043
00044 OpenSSLParameters* parameters;
00045
00046 private:
00047
00048 OpenSSLServerSocket( const OpenSSLServerSocket& );
00049 OpenSSLServerSocket& operator= ( const OpenSSLServerSocket& );
00050
00051 public:
00052
00053 OpenSSLServerSocket( OpenSSLParameters* parameters );
00054
00055 virtual ~OpenSSLServerSocket();
00056
00057 public:
00058
00062 virtual std::vector<std::string> getSupportedCipherSuites() const;
00063
00067 virtual std::vector<std::string> getSupportedProtocols() const;
00068
00072 virtual std::vector<std::string> getEnabledCipherSuites() const;
00073
00077 virtual void setEnabledCipherSuites( const std::vector<std::string>& suites );
00078
00082 virtual std::vector<std::string> getEnabledProtocols() const;
00083
00087 virtual void setEnabledProtocols( const std::vector<std::string>& protocols );
00088
00092 virtual bool getWantClientAuth() const;
00093
00097 virtual void setWantClientAuth( bool value );
00098
00102 virtual bool getNeedClientAuth() const;
00103
00107 virtual void setNeedClientAuth( bool value );
00108
00109 public:
00110
00114 virtual decaf::net::Socket* accept();
00115
00116 };
00117
00118 }}}}}
00119
00120 #endif