00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_NET_SSL_SSLSERVERSOCKET_H_
00019 #define _DECAF_NET_SSL_SSLSERVERSOCKET_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <decaf/net/ServerSocket.h>
00024
00025 namespace decaf {
00026 namespace net {
00027 namespace ssl {
00028
00036 class DECAF_API SSLServerSocket : public ServerSocket {
00037 protected:
00038
00042 SSLServerSocket();
00043
00060 SSLServerSocket( int port );
00061
00081 SSLServerSocket( int port, int backlog );
00082
00105 SSLServerSocket( int port, int backlog, const decaf::net::InetAddress* address );
00106
00107 public:
00108
00109 virtual ~SSLServerSocket();
00110
00117 virtual std::vector<std::string> getSupportedCipherSuites() const = 0;
00118
00125 virtual std::vector<std::string> getSupportedProtocols() const = 0;
00126
00133 virtual std::vector<std::string> getEnabledCipherSuites() const = 0;
00134
00145 virtual void setEnabledCipherSuites( const std::vector<std::string>& suites ) = 0;
00146
00153 virtual std::vector<std::string> getEnabledProtocols() const = 0;
00154
00165 virtual void setEnabledProtocols( const std::vector<std::string>& protocols ) = 0;
00166
00170 virtual bool getWantClientAuth() const = 0;
00171
00180 virtual void setWantClientAuth( bool value ) = 0;
00181
00185 virtual bool getNeedClientAuth() const = 0;
00186
00195 virtual void setNeedClientAuth( bool value ) = 0;
00196
00197 };
00198
00199 }}}
00200
00201 #endif