本页内容

QSslDiffieHellmanParameters Class

QSslDiffieHellmanParameters 类为服务器提供了用于 Diffie-Hellman 参数的接口。更多内容...

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

注意:该类中的所有函数均为可重入函数。

公共类型

enum Error { NoError, InvalidInputDataError, UnsafeParametersError }

公共函数

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=(QSslDiffieHellmanParameters &&other)
QSslDiffieHellmanParameters &operator=(const QSslDiffieHellmanParameters &other)

静态公共成员

QSslDiffieHellmanParameters defaultParameters()
QSslDiffieHellmanParameters fromEncoded(QIODevice *device, QSsl::EncodingFormat encoding = QSsl::Pem)
QSslDiffieHellmanParameters fromEncoded(const QByteArray &encoded, QSsl::EncodingFormat encoding = QSsl::Pem)
size_t qHash(const QSslDiffieHellmanParameters &key, 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)

详细描述

QSslDiffieHellmanParameters 提供了一个接口,用于根据QSslSocket 为服务器设置迪菲-赫尔曼(Diffie-Hellman)参数。

另请参阅 QSslSocket 、QSslCipher 和QSslConfiguration 。

成员类型文档

enum QSslDiffieHellmanParameters::Error

描述了QSslDiffieHellmanParameters 错误。

常量值描述
QSslDiffieHellmanParameters::NoError0未发生错误。
QSslDiffieHellmanParameters::InvalidInputDataError1无法使用给定的输入数据构建QSslDiffieHellmanParameters 对象。
QSslDiffieHellmanParameters::UnsafeParametersError2Diffie-Hellman 参数不安全,不应使用。

成员函数文档

QSslDiffieHellmanParameters::QSslDiffieHellmanParameters()

构建一个空的 QSslDiffieHellmanParameters 实例。

如果将一个空的 QSslDiffieHellmanParameters 实例设置到QSslConfiguration 对象上,则将禁用迪菲-赫尔曼协商。

另请参阅 isValid() 和QSslConfiguration 。

QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(const QSslDiffieHellmanParameters &other)

创建other 的完全相同的副本。

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

来自other 的移动构造。

注意: 被移动的对象 other 处于部分形成状态,在此状态下,唯一有效的操作是销毁和赋予新值。

[noexcept] QSslDiffieHellmanParameters::~QSslDiffieHellmanParameters()

销毁QSslDiffieHellmanParameters 对象。

[static] QSslDiffieHellmanParameters QSslDiffieHellmanParameters::defaultParameters()

返回QSslSocket 所使用的默认QSslDiffieHellmanParameters 。

目前该值是 RFC 3526 中定义的 2048 位 MODP 组。

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

返回导致QSslDiffieHellmanParameters 对象失效的错误。

[noexcept] QString QSslDiffieHellmanParameters::errorString() const

返回导致QSslDiffieHellmanParameters 对象失效的错误的人类可读描述。

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

通过从device 中读取数据(格式为PEM或DER,具体由encoding 指定),构建一个QSslDiffieHellmanParameters 对象。

使用返回对象上的isValid() 方法,可检查迪菲-赫尔曼参数是否有效且已正确加载。

特别是,如果device 为nullptr 或未以读取方式打开,则将返回一个无效的对象。

另请参阅 isValid() 和QSslConfiguration 。

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

使用字节数组encoded (格式为PEM或DER,具体由encoding 指定)构建一个QSslDiffieHellmanParameters 对象。

对返回的对象调用isValid() 方法,以检查 Diffie-Hellman 参数是否有效且已正确加载。

另请参阅 isValid() 和QSslConfiguration 。

[noexcept] bool QSslDiffieHellmanParameters::isEmpty() const

如果这是一个空的 `QSslDiffieHellmanParameters ` 实例,则返回 `true `。

在基于QSslSocket 的服务器上设置一个空的QSslDiffieHellmanParameters 实例将禁用迪菲-赫尔曼密钥交换。

[noexcept] bool QSslDiffieHellmanParameters::isValid() const

如果这是一个有效的QSslDiffieHellmanParameters ,则返回true ;否则返回false。

应在创建QSslDiffieHellmanParameters 对象后使用此方法来判断其有效性。

如果QSslDiffieHellmanParameters 对象无效,您可以使用error() 方法来确定导致对象无法构建的错误。

另请参阅 error()。

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

将此链接QSslDiffieHellmanParameters 替换为other 。此操作非常快,且从未失败过。

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

将other 通过移动赋值操作赋值给此QSslDiffieHellmanParameters 实例。

注意: 被移动的对象 other 处于部分构筑状态,在此状态下,唯一有效的操作是销毁和赋值。

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

将other 的内容复制到此QSslDiffieHellmanParameters 中,使这两个QSslDiffieHellmanParameters 完全相同。

返回对该QSslDiffieHellmanParameters 的引用。

相关非成员

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

返回key 的哈希值,并使用seed 作为计算的种子。

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

如果lhs 不等于rhs ,则返回true ;否则返回false 。

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

将dhparam 中的迪菲-赫尔曼参数集写入调试对象debug ,以便进行调试。

迪菲-赫尔曼参数将以 Base64 编码的 DER 格式表示。

另请参阅 “调试技术”。

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

如果lhs 等于rhs ,则返回true ;否则返回false 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.