QtBase  v6.3.1
qssldiffiehellmanparameters.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2015 Mikkel Krautz <mikkel@krautz.dk>
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the QtNetwork module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 3 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL3 included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 3 requirements
23 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24 **
25 ** GNU General Public License Usage
26 ** Alternatively, this file may be used under the terms of the GNU
27 ** General Public License version 2.0 or (at your option) the GNU General
28 ** Public license version 3 or any later version approved by the KDE Free
29 ** Qt Foundation. The licenses are as published by the Free Software
30 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31 ** included in the packaging of this file. Please review the following
32 ** information to ensure the GNU General Public License requirements will
33 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34 ** https://www.gnu.org/licenses/gpl-3.0.html.
35 **
36 ** $QT_END_LICENSE$
37 **
38 ****************************************************************************/
39 
40 
41 #ifndef QSSLDIFFIEHELLMANPARAMETERS_H
42 #define QSSLDIFFIEHELLMANPARAMETERS_H
43 
44 #include <QtNetwork/qssl.h>
45 #include <QtCore/qnamespace.h>
46 #include <QtCore/qbytearray.h>
47 #include <QtCore/qshareddata.h>
48 
50 
51 #ifndef QT_NO_SSL
52 
53 class QIODevice;
54 class QSslContext;
56 
58 // qHash is a friend, but we can't use default arguments for friends (ยง8.3.6.4)
59 Q_NETWORK_EXPORT size_t qHash(const QSslDiffieHellmanParameters &dhparam, size_t seed = 0) noexcept;
60 
61 #ifndef QT_NO_DEBUG_STREAM
62 class QDebug;
63 Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QSslDiffieHellmanParameters &dhparams);
64 #endif
65 
66 class Q_NETWORK_EXPORT QSslDiffieHellmanParameters
67 {
68 public:
69  enum Error {
72  UnsafeParametersError
73  };
74 
75  static QSslDiffieHellmanParameters defaultParameters();
76 
81 
84 
85  void swap(QSslDiffieHellmanParameters &other) noexcept { qt_ptr_swap(d, other.d); }
86 
89 
90  bool isEmpty() const noexcept;
91  bool isValid() const noexcept;
92  Error error() const noexcept;
93  QString errorString() const noexcept;
94 
95 private:
97  friend class QSslContext;
98 
99  bool isEqual(const QSslDiffieHellmanParameters &other) const noexcept;
101  { return lhs.isEqual(rhs); }
103  { return !lhs.isEqual(rhs); }
104 
105 #ifndef QT_NO_DEBUG_STREAM
106  friend Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QSslDiffieHellmanParameters &dhparam);
107 #endif
108  friend Q_NETWORK_EXPORT size_t qHash(const QSslDiffieHellmanParameters &dhparam, size_t seed) noexcept;
109 };
110 
112 
113 #endif // QT_NO_SSL
114 
116 
117 #endif
FT_Error error
Definition: cffdrivr.c:657
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:85
operator<<(QDataStream &ds, qfloat16 f)
Definition: qfloat16.cpp:327
The QDebug class provides an output stream for debugging information.
Definition: qdebug.h:65
template< typename Enum > size_t qHash(QFlags< Enum > flags, size_t seed=0) noexcept
The QIODevice class is the base interface class of all I/O devices in Qt.
Definition: qiodevice.h:70
The QSslDiffieHellmanParameters class provides an interface for Diffie-Hellman parameters for servers...
void swap(QSslDiffieHellmanParameters &other) noexcept
QSslDiffieHellmanParameters & operator=(QSslDiffieHellmanParameters &&other) noexcept
QSslDiffieHellmanParameters(QSslDiffieHellmanParameters &&other) noexcept
friend bool operator!=(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs) noexcept
The QString class provides a Unicode character string.
Definition: qstring.h:388
auto it unsigned count const
Definition: hb-iter.hh:848
@ Error
Definition: qprint_p.h:94
EncodingFormat
Definition: qssl.h:56
@ Pem
Definition: qssl.h:57
GLint GLsizei GLsizei GLenum format
Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QSslDiffieHellmanParameters &dhparams)
Q_NETWORK_EXPORT size_t qHash(const QSslDiffieHellmanParameters &dhparam, size_t seed=0) noexcept
#define Q_DECLARE_SHARED(TYPE)
Definition: qtypeinfo.h:197
QSharedPointer< T > other(t)
[5]
this swap(other)
#define private
Definition: main.cpp:37
#define rhs