- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Directories
- Examples

- File List
- File Members

# qsslerror.h

Go to the documentation of this file.

    00001 /****************************************************************************
    00002 **
    00003 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    00004 ** All rights reserved.
    00005 ** Contact: Nokia Corporation (qt-info@nokia.com)
    00006 **
    00007 ** This file is part of the QtNetwork module of the Qt Toolkit.
    00008 **
    00009 ** $QT_BEGIN_LICENSE:LGPL$
    00010 ** Commercial Usage
    00011 ** Licensees holding valid Qt Commercial licenses may use this file in
    00012 ** accordance with the Qt Commercial License Agreement provided with the
    00013 ** Software or, alternatively, in accordance with the terms contained in
    00014 ** a written agreement between you and Nokia.
    00015 **
    00016 ** GNU Lesser General Public License Usage
    00017 ** Alternatively, this file may be used under the terms of the GNU Lesser
    00018 ** General Public License version 2.1 as published by the Free Software
    00019 ** Foundation and appearing in the file LICENSE.LGPL included in the
    00020 ** packaging of this file.  Please review the following information to
    00021 ** ensure the GNU Lesser General Public License version 2.1 requirements
    00022 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    00023 **
    00024 ** In addition, as a special exception, Nokia gives you certain additional
    00025 ** rights.  These rights are described in the Nokia Qt LGPL Exception
    00026 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this module.
    00027 **
    00028 ** GNU General Public License Usage
    00029 ** Alternatively, this file may be used under the terms of the GNU
    00030 ** General Public License version 3.0 as published by the Free Software
    00031 ** Foundation and appearing in the file LICENSE.GPL included in the
    00032 ** packaging of this file.  Please review the following information to
    00033 ** ensure the GNU General Public License version 3.0 requirements will be
    00034 ** met: http://www.gnu.org/copyleft/gpl.html.
    00035 **
    00036 ** If you have questions regarding the use of this file, please contact
    00037 ** Nokia at qt-info@nokia.com.
    00038 ** $QT_END_LICENSE$
    00039 **
    00040 ****************************************************************************/
    00041
    00042
    00043 #ifndef QSSLERROR_H
    00044 #define QSSLERROR_H
    00045
    00046 #include <QtCore/qvariant.h>
    00047 #include <QtNetwork/qsslcertificate.h>
    00048
    00049 QT_BEGIN_HEADER
    00050
    00051 QT_BEGIN_NAMESPACE
    00052
    00053 QT_MODULE(Network)
    00054
    00055 #ifndef QT_NO_OPENSSL
    00056
    00057 class QSslErrorPrivate;
    00058 class Q_NETWORK_EXPORT QSslError
    00059 {
    00060 public:
    00061     enum SslError {
    00062         NoError,
    00063         UnableToGetIssuerCertificate,
    00064         UnableToDecryptCertificateSignature,
    00065         UnableToDecodeIssuerPublicKey,
    00066         CertificateSignatureFailed,
    00067         CertificateNotYetValid,
    00068         CertificateExpired,
    00069         InvalidNotBeforeField,
    00070         InvalidNotAfterField,
    00071         SelfSignedCertificate,
    00072         SelfSignedCertificateInChain,
    00073         UnableToGetLocalIssuerCertificate,
    00074         UnableToVerifyFirstCertificate,
    00075         CertificateRevoked,
    00076         InvalidCaCertificate,
    00077         PathLengthExceeded,
    00078         InvalidPurpose,
    00079         CertificateUntrusted,
    00080         CertificateRejected,
    00081         SubjectIssuerMismatch, // hostname mismatch?
    00082         AuthorityIssuerSerialNumberMismatch,
    00083         NoPeerCertificate,
    00084         HostNameMismatch,
    00085         NoSslSupport,
    00086         UnspecifiedError = -1
    00087     };
    00088
    00089     // RVCT compiler in debug build does not like about default values in const-
    00090     // So as an workaround we define all constructor overloads here explicitly
    00091     QSslError();
    00092     QSslError(SslError error);
    00093     QSslError(SslError error, const QSslCertificate &certificate);
    00094
    00095     QSslError(const QSslError &other);
    00096
    00097     ~QSslError();
    00098     QSslError &operator=(const QSslError &other);
    00099     bool operator==(const QSslError &other) const;
    00100     inline bool operator!=(const QSslError &other) const
    00101     { return !(*this == other); }
    00102
    00103     SslError error() const;
    00104     QString errorString() const;
    00105     QSslCertificate certificate() const;
    00106
    00107 private:
    00108     QScopedPointer<QSslErrorPrivate> d;
    00109 };
    00110
    00111 #ifndef QT_NO_DEBUG_STREAM
    00112 class QDebug;
    00113 Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QSslError &error);
    00114 Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QSslError::SslError &error);
    00115 #endif
    00116
    00117 #endif // QT_NO_OPENSSL
    00118
    00119 QT_END_NAMESPACE
    00120
    00121 QT_END_HEADER
    00122
    00123 #endif