QSslDiffieHellmanParameters Class

The QSslDiffieHellmanParameters class provides an interface for Diffie-Hellman parameters for servers. More...

Header: #include <QSslDiffieHellmanParameters>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

Note: All functions in this class are reentrant.

Public Types

enum Error { NoError, InvalidInputDataError, UnsafeParametersError }

Public Functions

QSslDiffieHellmanParameters()
QSslDiffieHellmanParameters(const QSslDiffieHellmanParameters &other)
QSslDiffieHellmanParameters(QSslDiffieHellmanParameters &&other)
~QSslDiffieHellmanParameters()
QSslDiffieHellmanParameters::Error error() const
QString errorString() const
bool isEmpty() const
bool isValid() const
void swap(QSslDiffieHellmanParameters &other)
QSslDiffieHellmanParameters &operator=(const QSslDiffieHellmanParameters &other)
QSslDiffieHellmanParameters &operator=(QSslDiffieHellmanParameters &&other)

Static Public Members

QSslDiffieHellmanParameters defaultParameters()
QSslDiffieHellmanParameters fromEncoded(const QByteArray &encoded, QSsl::EncodingFormat encoding = QSsl::Pem)
QSslDiffieHellmanParameters fromEncoded(QIODevice *device, QSsl::EncodingFormat encoding = QSsl::Pem)
size_t qHash(const QSslDiffieHellmanParameters &dhparam, size_t seed = 0)
bool operator!=(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs)
QDebug operator<<(QDebug debug, const QSslDiffieHellmanParameters &dhparam)
bool operator==(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs)

Detailed Description

QSslDiffieHellmanParameters provides an interface for setting Diffie-Hellman parameters to servers based on QSslSocket.

See also QSslSocket, QSslCipher, and QSslConfiguration.

Member Type Documentation

enum QSslDiffieHellmanParameters::Error

Describes a QSslDiffieHellmanParameters error.

ConstantValueDescription
QSslDiffieHellmanParameters::NoError0No error occurred.
QSslDiffieHellmanParameters::InvalidInputDataError1The given input data could not be used to construct a QSslDiffieHellmanParameters object.
QSslDiffieHellmanParameters::UnsafeParametersError2The Diffie-Hellman parameters are unsafe and should not be used.

Member Function Documentation

QSslDiffieHellmanParameters::QSslDiffieHellmanParameters()

Constructs an empty QSslDiffieHellmanParameters instance.

If an empty QSslDiffieHellmanParameters instance is set on a QSslConfiguration object, Diffie-Hellman negotiation will be disabled.

See also isValid() and QSslConfiguration.

QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(const QSslDiffieHellmanParameters &other)

Constructs an identical copy of other.

[noexcept] QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(QSslDiffieHellmanParameters &&other)

Move-constructs from other.

Note: The moved-from object other is placed in a partially-formed state, in which the only valid operations are destruction and assignment of a new value.

[noexcept] QSslDiffieHellmanParameters::~QSslDiffieHellmanParameters()

Destroys the QSslDiffieHellmanParameters object.

[static] QSslDiffieHellmanParameters QSslDiffieHellmanParameters::defaultParameters()

Returns the default QSslDiffieHellmanParameters used by QSslSocket.

This is currently the 2048-bit MODP group from RFC 3526.

[noexcept] QSslDiffieHellmanParameters::Error QSslDiffieHellmanParameters::error() const

Returns the error that caused the QSslDiffieHellmanParameters object to be invalid.

[noexcept] QString QSslDiffieHellmanParameters::errorString() const

Returns a human-readable description of the error that caused the QSslDiffieHellmanParameters object to be invalid.

[static] QSslDiffieHellmanParameters QSslDiffieHellmanParameters::fromEncoded(const QByteArray &encoded, QSsl::EncodingFormat encoding = QSsl::Pem)

Constructs a QSslDiffieHellmanParameters object using the byte array encoded in either PEM or DER form as specified by encoding.

Use the isValid() method on the returned object to check whether the Diffie-Hellman parameters were valid and loaded correctly.

See also isValid() and QSslConfiguration.

[static] QSslDiffieHellmanParameters QSslDiffieHellmanParameters::fromEncoded(QIODevice *device, QSsl::EncodingFormat encoding = QSsl::Pem)

Constructs a QSslDiffieHellmanParameters object by reading from device in either PEM or DER form as specified by encoding.

Use the isValid() method on the returned object to check whether the Diffie-Hellman parameters were valid and loaded correctly.

In particular, if device is nullptr or not open for reading, an invalid object will be returned.

See also isValid() and QSslConfiguration.

[noexcept] bool QSslDiffieHellmanParameters::isEmpty() const

Returns true if this is a an empty QSslDiffieHellmanParameters instance.

Setting an empty QSslDiffieHellmanParameters instance on a QSslSocket-based server will disable Diffie-Hellman key exchange.

[noexcept] bool QSslDiffieHellmanParameters::isValid() const

Returns true if this is a valid QSslDiffieHellmanParameters; otherwise false.

This method should be used after constructing a QSslDiffieHellmanParameters object to determine its validity.

If a QSslDiffieHellmanParameters object is not valid, you can use the error() method to determine what error prevented the object from being constructed.

See also error().

[noexcept] void QSslDiffieHellmanParameters::swap(QSslDiffieHellmanParameters &other)

Swaps this QSslDiffieHellmanParameters with other. This function is very fast and never fails.

QSslDiffieHellmanParameters &QSslDiffieHellmanParameters::operator=(const QSslDiffieHellmanParameters &other)

Copies the contents of other into this QSslDiffieHellmanParameters, making the two QSslDiffieHellmanParameters identical.

Returns a reference to this QSslDiffieHellmanParameters.

[noexcept] QSslDiffieHellmanParameters &QSslDiffieHellmanParameters::operator=(QSslDiffieHellmanParameters &&other)

Move-assigns other to this QSslDiffieHellmanParameters instance.

Note: The moved-from object other is placed in a partially-formed state, in which the only valid operations are destruction and assignment of a new value.

Related Non-Members

[noexcept] size_t qHash(const QSslDiffieHellmanParameters &dhparam, size_t seed = 0)

Returns an hash value for dhparam, using seed to seed the calculation.

[noexcept] bool operator!=(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs)

Returns true if lhs is not equal to rhs; otherwise returns false.

QDebug operator<<(QDebug debug, const QSslDiffieHellmanParameters &dhparam)

Writes the set of Diffie-Hellman parameters in dhparam into the debug object debug for debugging purposes.

The Diffie-Hellman parameters will be represented in Base64-encoded DER form.

See also Debugging Techniques.

[noexcept] bool operator==(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs)

Returns true if lhs is equal to rhs; otherwise returns false.