//
//     Copyright 2009 Simon Edwards <simon@simonzone.com>

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.


class KSslCertificateRule
{
%TypeHeaderCode
#include <kio/ksslcertificatemanager.h>
%End

public:
                            KSslCertificateRule (const QSslCertificate& cert = QSslCertificate(), const QString& hostName = QString());
                            KSslCertificateRule (const KSslCertificateRule& other);
    QSslCertificate         certificate () const;
    QString                 hostName () const;
    void                    setExpiryDateTime (const QDateTime& dateTime);
    QDateTime               expiryDateTime () const;
    void                    setRejected (bool rejected);
    bool                    isRejected () const;
    bool                    isErrorIgnored (KSslError::Error error) const;
    void                    setIgnoredErrors (const QList<KSslError::Error>& errors);
    void                    setIgnoredErrors (const QList<KSslError>& errors);
    QList<KSslError::Error>  ignoredErrors () const;
    QList<KSslError::Error>  filterErrors (const QList<KSslError::Error>& errors) const;
    QList<KSslError>        filterErrors (const QList<KSslError>& errors) const;
};   // KSslCertificateRule


class KSslCertificateManager
{
%TypeHeaderCode
#include <kio/ksslcertificatemanager.h>
%End

public:
    static KSslCertificateManager*  self ();
    void                    setRule (const KSslCertificateRule& rule);
    void                    clearRule (const KSslCertificateRule& rule);
    void                    clearRule (const QSslCertificate& cert, const QString& hostName);
    KSslCertificateRule     rule (const QSslCertificate& cert, const QString& hostName) const;
    void                    setRootCertificates (const QList<QSslCertificate>& rootCertificates);
    QList<QSslCertificate>  rootCertificates () const;

    enum RulesStorage
    {
        RecallRules,
        StoreRules,
        RecallAndStoreRules
    };

    static QList<KSslError>  nonIgnorableErrors (const QList<KSslError>&);
    static QList<KSslError::Error>  nonIgnorableErrors (const QList<KSslError::Error>&);
    static bool             askIgnoreSslErrors (const KTcpSocket* socket, KSslCertificateManager::RulesStorage storedRules = KSslCertificateManager::RecallAndStoreRules);
    static bool             askIgnoreSslErrors (const KSslErrorUiData& uiData, KSslCertificateManager::RulesStorage storedRules = KSslCertificateManager::RecallAndStoreRules);

private:
                            KSslCertificateManager ();
                            ~KSslCertificateManager ();
};   // KSslCertificateManager


