kio
ksslcertificatecache.h
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #ifndef _INCLUDE_KSSLCCACHE_H
00022 #define _INCLUDE_KSSLCCACHE_H
00023 
00024 class KSSLCertificate;
00025 #include <qstring.h>
00026 #include <qstringlist.h>
00027 #include <qdatetime.h>
00028 
00029 #include <kdelibs_export.h>
00030 
00031 class KIO_EXPORT KSSLCertificateCache {
00032 public:
00033 
00034 enum KSSLCertificatePolicy { Unknown, Reject, Accept, Prompt, Ambiguous };
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044   KSSLCertificateCache();
00045   ~KSSLCertificateCache();
00046 
00047   void addCertificate(KSSLCertificate& cert, KSSLCertificatePolicy policy, 
00048                                                      bool permanent = true);
00049 
00050   
00051   
00052   
00053   
00054   
00055   
00056   
00057   
00058   KSSLCertificatePolicy getPolicyByCN(QString& cn);
00059 
00060   KSSLCertificatePolicy getPolicyByCertificate(KSSLCertificate& cert);
00061 
00062   bool seenCN(QString& cn);
00063   bool seenCertificate(KSSLCertificate& cert);
00064 
00065   bool removeByCN(QString& cn);
00066   bool removeByCertificate(KSSLCertificate& cert);
00067 
00068   bool isPermanent(KSSLCertificate& cert);
00069 
00070   bool modifyByCN(QString& cn,
00071                   KSSLCertificateCache::KSSLCertificatePolicy policy,
00072                   bool permanent,
00073                   QDateTime& expires);
00074 
00075   bool modifyByCertificate(KSSLCertificate& cert,
00076                            KSSLCertificateCache::KSSLCertificatePolicy policy,
00077                            bool permanent,
00078                            QDateTime& expires);
00079 
00080   QStringList getHostList(KSSLCertificate& cert);
00081   bool addHost(KSSLCertificate& cert, QString& host);
00082   bool removeHost(KSSLCertificate& cert, QString& host);
00083 
00084   
00085   QStringList getKDEKeyByEmail(const QString &email);
00086   KSSLCertificate *getCertByMD5Digest(const QString &key);
00087 
00088   void reload();
00089 
00090   
00091   
00092   void saveToDisk();
00093 
00094 private:
00095   class KSSLCertificateCachePrivate;
00096   KSSLCertificateCachePrivate *d;
00097 
00098   void loadDefaultPolicies();
00099   void clearList();
00100 
00101 };
00102 
00103 
00104 KIO_EXPORT QDataStream& operator<<(QDataStream& s, const KSSLCertificateCache::KSSLCertificatePolicy& p);
00105 KIO_EXPORT QDataStream& operator>>(QDataStream& s, KSSLCertificateCache::KSSLCertificatePolicy& p);
00106 
00107 #endif