00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _KSSL_H
00022 #define _KSSL_H
00023
00024 #include <ksslsettings.h>
00025 #include <ksslpeerinfo.h>
00026 #include <ksslconnectioninfo.h>
00027
00028 class KSSLPrivate;
00029 class KSSLCertificate;
00030 class KSSLPKCS12;
00031 class KSSLSession;
00032
00042 class TDEIO_EXPORT KSSL {
00043 public:
00050 KSSL(bool init = true);
00051
00057 ~KSSL();
00058
00064 static bool doesSSLWork();
00065
00074 bool initialize();
00075
00082 bool TLSInit();
00083
00093 bool takeSession(KSSLSession *session);
00094
00098 void close();
00099
00109 bool reInitialize();
00110
00120 bool reconfig();
00121
00131 void setAutoReconfig(bool ar);
00132
00140 int seedWithEGD();
00141
00150 bool setSettings(KSSLSettings *settings);
00151
00158 KSSLSettings * settings() { return m_cfg; }
00159
00169 bool setClientCertificate(KSSLPKCS12 *pkcs);
00170
00180 void setProxyUse(bool active, TQString realIP = TQString::null, int realPort = 0, TQString proxy = TQString::null) KDE_DEPRECATED;
00181
00188 void setPeerHost(TQString realHost = TQString::null);
00189
00199 int connect(int sock);
00200
00210 int accept(int sock);
00211
00219 int read(void *buf, int len);
00220
00228 int peek(void *buf, int len);
00229
00238 int write(const void *buf, int len);
00239
00245 int pending();
00246
00254 KSSLConnectionInfo& connectionInfo();
00255
00263 KSSLPeerInfo& peerInfo();
00264
00274 const KSSLSession* session() const;
00275
00281 bool reusingSession() const;
00282
00283 private:
00284 static bool m_bSSLWorks;
00285 bool m_bInit;
00286 bool m_bAutoReconfig;
00287 KSSLSettings *m_cfg;
00288 KSSLConnectionInfo m_ci;
00289 KSSLPeerInfo m_pi;
00290
00291 KSSLPrivate *d;
00292
00293 void setConnectionInfo();
00294 void setPeerInfo();
00295 bool setVerificationLogic();
00296 };
00297
00298
00299 #endif
00300