kssl.h
00001 /* This file is part of the KDE project 00002 * 00003 * Copyright (C) 2000-2003 George Staikos <staikos@kde.org> 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Library General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Library General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Library General Public License 00016 * along with this library; see the file COPYING.LIB. If not, write to 00017 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00018 * Boston, MA 02111-1307, USA. 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 KIO_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 00094 bool setSession(const KSSLSession *session); 00095 00099 void close(); 00100 00110 bool reInitialize(); 00111 00121 bool reconfig(); 00122 00132 void setAutoReconfig(bool ar); 00133 00141 int seedWithEGD(); 00142 00151 bool setSettings(KSSLSettings *settings); 00152 00159 KSSLSettings * settings() { return m_cfg; } 00160 00170 bool setClientCertificate(KSSLPKCS12 *pkcs); 00171 00180 void setProxyUse(bool active, QString realIP = QString::null, int realPort = 0, QString proxy = QString::null) KDE_DEPRECATED; 00181 00188 void setPeerHost(QString realHost = QString::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