kio Library API Documentation

kssld.h

00001 /*
00002    This file is part of the KDE libraries
00003 
00004    Copyright (c) 2001 George Staikos <staikos@kde.org>
00005 
00006    This library is free software; you can redistribute it and/or
00007    modify it under the terms of the GNU Library General Public
00008    License as published by the Free Software Foundation; either
00009    version 2 of the License, or (at your option) any later version.
00010 
00011    This library is distributed in the hope that it will be useful,
00012    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014    Library General Public License for more details.
00015 
00016    You should have received a copy of the GNU Library General Public License
00017    along with this library; see the file COPYING.LIB.  If not, write to
00018    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00019    Boston, MA 02111-1307, USA.
00020 
00021 */
00022 #ifndef __KSSLD_H__
00023 #define __KSSLD_H__
00024 
00025 #include <kded/kdedmodule.h>
00026 #include <ksslcertificate.h>
00027 #include <ksslcertificatecache.h>
00028 #include <qstring.h>
00029 #include <qstringlist.h>
00030 
00031 
00032 class KSimpleConfig;
00033 class KSSLCNode;
00034 class KOpenSSLProxy;
00035 
00036 class KSSLD : public KDEDModule
00037 {
00038   Q_OBJECT
00039   K_DCOP
00040 
00041 public:
00042   
00043   KSSLD(const QCString &name);
00044   
00045   virtual ~KSSLD();
00046 
00047 k_dcop:
00048   //
00049   //  Certificate Cache methods
00050   //
00051   void cacheAddCertificate(KSSLCertificate cert, 
00052                    KSSLCertificateCache::KSSLCertificatePolicy policy,
00053                    bool permanent = true);
00054   KSSLCertificateCache::KSSLCertificatePolicy cacheGetPolicyByCN(QString cn);
00055 
00056   KSSLCertificateCache::KSSLCertificatePolicy cacheGetPolicyByCertificate(KSSLCertificate cert);
00057 
00058   bool cacheSeenCN(QString cn);
00059   bool cacheSeenCertificate(KSSLCertificate cert);
00060 
00061   bool cacheRemoveByCN(QString cn);
00062   bool cacheRemoveByCertificate(KSSLCertificate cert);
00063            
00064   bool cacheIsPermanent(KSSLCertificate cert);
00065 
00066   void cacheReload();
00067 
00068   bool cacheModifyByCN(QString cn,
00069                        KSSLCertificateCache::KSSLCertificatePolicy policy,
00070                        bool permanent,
00071                        QDateTime expires);
00072 
00073   bool cacheModifyByCertificate(KSSLCertificate cert,
00074                            KSSLCertificateCache::KSSLCertificatePolicy policy,
00075                                 bool permanent,
00076                                 QDateTime expires);
00077 
00078   QStringList cacheGetHostList(KSSLCertificate cert);
00079 
00080   bool cacheAddHost(KSSLCertificate cert, QString host);
00081 
00082   bool cacheRemoveHost(KSSLCertificate cert, QString host);
00083 
00084   /* Certificate Authorities */
00085   bool caRegenerate();
00086 
00087   QStringList caList();
00088 
00089   bool caUseForSSL(QString subject);
00090 
00091   bool caUseForEmail(QString subject);
00092   
00093   bool caUseForCode(QString subject);
00094 
00095   bool caAdd(QString certificate, bool ssl, bool email, bool code);
00096 
00097   bool caRemove(QString subject);
00098 
00099   QString caGetCert(QString subject);
00100 
00101   bool caSetUse(QString subject, bool ssl, bool email, bool code);
00102 
00103   //
00104   //  Certificate Home methods
00105   //
00106 
00107 private:
00108 
00109   void cacheClearList();
00110   void cacheSaveToDisk();
00111   void cacheLoadDefaultPolicies();
00112 
00113   // for the cache portion:
00114   KSimpleConfig *cfg;
00115   QPtrList<KSSLCNode> certList;
00116 
00117   // Our pointer to OpenSSL
00118   KOpenSSLProxy *kossl;
00119 };
00120 
00121 
00122 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.0.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Oct 8 12:21:32 2003 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2001