00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_NET_SSL_SSLCONTEXTSPI_H_
00019 #define _DECAF_NET_SSL_SSLCONTEXTSPI_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <decaf/security/SecureRandom.h>
00024
00025 namespace decaf {
00026 namespace net {
00027
00028 class SocketFactory;
00029 class ServerSocketFactory;
00030
00031 namespace ssl {
00032
00033 class SSLParameters;
00034
00040 class DECAF_API SSLContextSpi {
00041 public:
00042
00043 virtual ~SSLContextSpi();
00044
00054 virtual void providerInit( security::SecureRandom* random ) = 0;
00055
00067 virtual SSLParameters* providerGetDefaultSSLParameters();
00068
00080 virtual SSLParameters* providerGetSupportedSSLParameters();
00081
00092 virtual SocketFactory* providerGetSocketFactory() = 0;
00093
00104 virtual ServerSocketFactory* providerGetServerSocketFactory() = 0;
00105
00106 };
00107
00108 }}}
00109
00110 #endif