本页内容

QSsl Namespace

QSsl 命名空间声明了Qt Network 中所有 SSL 类共有的枚举。更多内容...

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

类型

(since 6.0) enum class AlertLevel { Warning, Fatal, Unknown }
(since 6.0) enum class AlertType { CloseNotify, UnexpectedMessage, BadRecordMac, RecordOverflow, DecompressionFailure, …, UnknownAlertMessage }
enum AlternativeNameEntryType { EmailEntry, DnsEntry, IpAddressEntry }
enum EncodingFormat { Pem, Der }
(since 6.1) enum class ImplementedClass { Key, Certificate, Socket, DiffieHellman, EllipticCurve, …, DtlsCookie }
enum KeyAlgorithm { MlDsa, Rsa, Dsa, Ec, Dh, Opaque }
enum KeyType { PrivateKey, PublicKey }
enum SslOption { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, SslOptionDisableLegacyRenegotiation, …, SslOptionDisableServerCipherPreference }
flags SslOptions
enum SslProtocol { TlsV1_0, TlsV1_0OrLater, TlsV1_1, TlsV1_1OrLater, TlsV1_2, …, SecureProtocols }
(since 6.1) enum class SupportedFeature { CertificateVerification, ClientSideAlpn, ServerSideAlpn, Ocsp, Psk, …, Alerts }

详细说明

类型文档

[since 6.0] enum class AlertLevel

描述警报消息的级别

此枚举描述已发送或接收的警报消息的级别。

常量值描述
QSslSocket::AlertLevel::Warning0非致命警报消息
QSslSocket::AlertLevel::Fatal1致命警报消息,底层后端将正确处理此类警报并关闭连接。
QSslSocket::AlertLevel::Unknown2严重程度未知的警报。

此枚举类型在 Qt 6.0 中引入。

[since 6.0] enum class AlertType

列举了警报消息可能包含的代码

有关可能的值及其含义,请参阅RFC 8446 第 6 节。

常量值描述
QSslSocket::AlertType::CloseNotify0,
QSslSocket::AlertType::UnexpectedMessage10 
QSslSocket::AlertType::BadRecordMac20 
QSslSocket::AlertType::RecordOverflow22 
QSslSocket::AlertType::DecompressionFailure30 
QSslSocket::AlertType::HandshakeFailure40 
QSslSocket::AlertType::NoCertificate41 
QSslSocket::AlertType::BadCertificate42 
QSslSocket::AlertType::UnsupportedCertificate43 
QSslSocket::AlertType::CertificateRevoked44 
QSslSocket::AlertType::CertificateExpired45 
QSslSocket::AlertType::CertificateUnknown46 
QSslSocket::AlertType::IllegalParameter47 
QSslSocket::AlertType::UnknownCa48 
QSslSocket::AlertType::AccessDenied49 
QSslSocket::AlertType::DecodeError50 
QSslSocket::AlertType::DecryptError51 
QSslSocket::AlertType::ExportRestriction60 
QSslSocket::AlertType::ProtocolVersion70 
QSslSocket::AlertType::InsufficientSecurity71 
QSslSocket::AlertType::InternalError80 
QSslSocket::AlertType::InappropriateFallback86 
QSslSocket::AlertType::UserCancelled90 
QSslSocket::AlertType::NoRenegotiation100 
QSslSocket::AlertType::MissingExtension109 
QSslSocket::AlertType::UnsupportedExtension110 
QSslSocket::AlertType::CertificateUnobtainable111 
QSslSocket::AlertType::UnrecognizedName112 
QSslSocket::AlertType::BadCertificateStatusResponse113 
QSslSocket::AlertType::BadCertificateHashValue114 
QSslSocket::AlertType::UnknownPskIdentity115 
QSslSocket::AlertType::CertificateRequired116 
QSslSocket::AlertType::NoApplicationProtocol120 
QSslSocket::AlertType::UnknownAlertMessage255 

该枚举在 Qt 6.0 中引入。

enum QSsl::AlternativeNameEntryType

描述了QSslCertificate 中别名条目的关键类型。

常量值描述
QSsl::EmailEntry0电子邮件条目;该条目包含证书所适用的电子邮件地址。
QSsl::DnsEntry1DNS 主机名条目;该条目包含证书所适用的主机名。该条目可能包含通配符。
QSsl::IpAddressEntry2IP 地址条目;该条目包含证书所适用的 IP 地址条目,此功能在 Qt 5.13 中引入。

另请参阅 QSslCertificate::subjectAlternativeNames()。

enum QSsl::EncodingFormat

描述了证书和密钥支持的编码格式。

常量值描述
QSsl::Pem0PEM 格式。
QSsl::Der1DER 格式。

[since 6.1] enum class ImplementedClass

列举 TLS 后端所实现的类

在QtNetwork 中,某些类具有后端特有的实现,因此可以不进行实现。该枚举中的枚举项指示了后端中哪些类具有可正常工作的实现。

常量值描述
QSslSocket::ImplementedClass::Key0类QSslKey 。
QSslSocket::ImplementedClass::Certificate1类QSslCertificate 。
QSslSocket::ImplementedClass::Socket2QSslSocket 类。
QSslSocket::ImplementedClass::DiffieHellman3QSslDiffieHellmanParameters 类。
QSslSocket::ImplementedClass::EllipticCurve4QSslEllipticCurve 类。
QSslSocket::ImplementedClass::Dtls5QDtls 类。
QSslSocket::ImplementedClass::DtlsCookie6类QDtlsClientVerifier 。

该枚举在 Qt 6.1 中引入。

enum QSsl::KeyAlgorithm

描述了QSslKey 支持的各种密钥算法。

常量值描述
QSsl::MlDsa5ML-DSA 算法。
QSsl::Rsa1RSA 算法。
QSsl::Dsa2DSA 算法。
QSsl::Ec3椭圆曲线算法。
QSsl::Dh4迪菲-赫尔曼算法。
QSsl::Opaque0QSslKey 应将该密钥视为“黑盒”。

不透明密钥功能允许应用程序为 PKCS#11 等功能添加支持,而 Qt 目前尚未原生提供这些功能。

enum QSsl::KeyType

描述了QSslKey 支持的两种密钥类型。

常量值描述
QSsl::PrivateKey0私钥。
QSsl::PublicKey1公钥。

enum QSsl::SslOption
flags QSsl::SslOptions

描述了可用于控制 SSL 行为细节的选项。这些选项通常用于禁用某些功能,以绕过存在缺陷的服务器。

常量值描述
QSsl::SslOptionDisableEmptyFragments0x01在使用分组密码时,禁用将空片段插入数据中的操作。启用此选项可防止某些攻击(例如 BEAST 攻击),但与某些服务器不兼容。
QSsl::SslOptionDisableSessionTickets0x02禁用 SSL 会话票证扩展。这可能会导致连接建立速度变慢,但某些服务器不支持该扩展。
QSsl::SslOptionDisableCompression0x04禁用 SSL 压缩扩展。启用后,可通过 SSL 传输的数据将被压缩,但部分服务器不支持此扩展。
QSsl::SslOptionDisableServerNameIndication0x08禁用 SSL 服务器名称指示扩展。启用后,该选项会告知服务器正在访问的虚拟主机,使其能够返回正确的证书。
QSsl::SslOptionDisableLegacyRenegotiation0x10禁用用于重新协商连接参数的旧式不安全机制。启用此选项可允许连接到旧版服务器,但会增加攻击者向 SSL 会话中注入明文的风险。
QSsl::SslOptionDisableSessionSharing0x20禁用通过会话 ID 握手属性实现的 SSL 会话共享。
QSsl::SslOptionDisableSessionPersistence0x40禁用以 ASN.1 格式存储 SSL 会话(如QSslConfiguration::sessionTicket() 所返回)。启用此功能会增加内存开销,每个使用的会话票据约占用 1K 内存。
QSsl::SslOptionDisableServerCipherPreference0x80禁用根据服务器偏好(而非客户端发送加密套件的顺序)选择加密套件的功能。此选项仅适用于服务器套接字,且仅由 OpenSSL 后端支持。

默认情况下,SslOptionDisableEmptyFragments 处于启用状态,因为这会导致与大量服务器出现兼容性问题。SslOptionDisableLegacyRenegotiation 也处于启用状态,因为它会引入安全风险。 已启用 SslOptionDisableCompression 以防范 CRIME 披露的攻击。已启用 SslOptionDisableSessionPersistence 以优化内存使用。其余选项均已禁用。

注意: 上述选项的可用性 取决于所使用的 SSL 后端版本。

SslOptions 类型是QFlags<SslOption> 的 typedef 定义。它存储 SslOption 值的按“或”运算组合。

enum QSsl::SslProtocol

描述该密码的协议。

常量值描述
QSsl::TlsV1_00TLSv1.0
QSsl::TlsV1_0OrLater5TLSv1.0 及更高版本。
QSsl::TlsV1_11TLSv1.1。
QSsl::TlsV1_1OrLater6TLSv1.1 及更高版本。
QSsl::TlsV1_22TLSv1.2。
QSsl::TlsV1_2OrLater7TLSv1.2 及更高版本。
QSsl::DtlsV1_08DTLSv1.0
QSsl::DtlsV1_0OrLater9DTLSv1.0 及更高版本。
QSsl::DtlsV1_210DTLSv1.2
QSsl::DtlsV1_2OrLater11DTLSv1.2 及更高版本。
QSsl::TlsV1_3 (since Qt 5.12)12TLSv1.3。
QSsl::TlsV1_3OrLater (since Qt 5.12)13TLSv1.3 及更高版本。
QSsl::UnknownProtocol-1无法确定该加密算法的协议。
QSsl::AnyProtocol3任何受支持的协议。此值仅由QSslSocket 使用。
QSsl::SecureProtocols4默认选项,使用已知安全的协议。

[since 6.1] enum class SupportedFeature

列举 TLS 后端可能支持的功能

在QtNetwork 中,TLS相关类具有公共API,某些后端可能未实现这些API,例如,我们的SecureTransport后端不支持服务器端ALPN。SupportedFeature枚举中的枚举项表示特定功能是否受支持。

常量值描述
QSslSocket::SupportedFeature::CertificateVerification0表示后端实现了QSslCertificate::verify() 方法。
QSslSocket::SupportedFeature::ClientSideAlpn1客户端 ALPN(应用层协议协商)。
QSslSocket::SupportedFeature::ServerSideAlpn2服务器端 ALPN。
QSslSocket::SupportedFeature::Ocsp3OCSP 钉合(在线证书状态协议)。
QSslSocket::SupportedFeature::Psk4预共享密钥。
QSslSocket::SupportedFeature::SessionTicket5会话票证。
QSslSocket::SupportedFeature::Alerts6关于已发送和已接收警报消息的信息。

该枚举在 Qt 6.1 中引入。

© 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.