QSsl 命名空间

QSsl 文件夹声明了适用于 Qt 网络中所有 SSL 类的枚举类型。 更多...

头文件 #include <QSsl>
CMakefind_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmakeQT += network

类型

(自 6.0) 枚举类AlertLevel { 警告, 误报, 未知 }
(自 6.0) 枚举类AlertType { CloseNotify, UnexpectedMessage, BadRecordMac, RecordOverflow, DecompressionFailure, …, UnknownAlertMessage }
枚举AlternativeNameEntryType { EmailEntry, DnsEntry, IpAddressEntry }
枚举EncodingFormat { Pem, Der }
(自 6.1) 枚举类ImplementedClass { Key, Certificate, Socket, DiffieHellman, EllipticCurve, …, DtlsCookie }
枚举KeyAlgorithm { Rsa, Dsa, Ec, Dh, Opaque }
枚举KeyType { PrivateKey, PublicKey }
枚举SslOption { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, SslOptionDisableLegacyRenegotiation, …, SslOptionDisableServerCipherPreference }
标志SslOptions
枚举SslProtocol { TlsV1_0, TlsV1_0OrLater, TlsV1_1, TlsV1_1OrLater, TlsV1_2, …, SecureProtocols }
(自 6.1) 枚举类SupportedFeature { CertificateVerification, ClientSideAlpn, ServerSideAlpn, Ocsp, Psk, …, Alerts }

详细描述

类型文档

[since 6.0] 枚举类 AlertLevel

描述警告消息的级别

此枚举描述了发送或接收到的警告消息的级别。

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

此枚举自 Qt 6.0 以来引入。

[since 6.0] 枚举类 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 以来引入。

枚举 QSsl::AlternativeNameEntryType

描述 QSslCertificate 中的替代名称条目的键类型。

常量描述
QSsl::EmailEntry0电子邮件条目;条目包含证书有效的电子邮件地址。
QSsl::DnsEntry1DNS主机名条目;条目包含证书有效的域名。条目可能包含通配符。
QSsl::IpAddressEntry2IP地址条目;条目包含证书有效的IP地址,Qt 5.13中引入。

另请参阅QSslCertificate::subjectAlternativeNames

枚举 QSsl::EncodingFormat

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

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

[自 6.1] 枚举类 ImplementedClass

枚举 TLS 后端实现的类

在 QtNetwork 中,一些类具有后端特定实施,因此可以被保留不实施。此枚举中的枚举指示,哪个类在后端有一个可工作的实施。

常量描述
QSslSocket::ImplementedClass::Key0QSslKey
QSslSocket::ImplementedClass::Certificate1QSslCertificate
QSslSocket::ImplementedClass::Socket2QSslSocket
QSslSocket::ImplementedClass::DiffieHellman3QSslDiffieHellmanParameters
QSslSocket::ImplementedClass::EllipticCurve4QSslEllipticCurve
QSslSocket::ImplementedClass::Dtls5QDtls
QSslSocket::ImplementedClass::DtlsCookie6QDtlsClientVerifier

此枚举是在 Qt 6.1 中引入的。

枚举 QSsl::KeyAlgorithm

描述 QSslKey 支持的不同的密钥算法。

常量描述
QSsl::Rsa1RSA算法。
QSsl::Dsa2DSA算法。
QSsl::Ec3椭圆曲线算法。
QSsl::Dh4Diffie-Hellman算法。
QSsl::Opaque0一个应该被 QSslKey 当作 '黑盒' 处理的密钥。

透明密钥功能允许应用程序添加对 PowerShell#11 等功能的支持,Qt 并未提供原生的支持。

枚举 QSsl::KeyType

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

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

枚举 QSsl::SslOption
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禁用将SSL会话以ASN.1格式存储,如QSslConfiguration::sessionTicket()返回。启用此功能将增加每个使用的会话票据大约1K的内存开销。
QSsl::SslOptionDisableServerCipherPreference0x80禁用根据服务器偏好而非客户端发送密钥顺序选择的密码。此选项仅适用于服务器套接字,并且仅由OpenSSL后端支持。

默认情况下,SslOptionDisableEmptyFragments被启用,因为这会导致大量服务器出现问题。SslOptionDisableLegacyRenegotiation也已启用,因为它引入了安全风险。SslOptionDisableCompression被启用以防止CRIME公布的攻击。SslOptionDisableSessionPersistence被启用以优化内存使用。其他选项被关闭。

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

SslOptions类型是QFlags<SslOption>的类型别名。它存储一个OR组合的SslOption值。

枚举 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_312TLSv1.3。(自Qt 5.12起)
QSsl::TlsV1_3OrLater13TLSv1.3及其后续版本。(自Qt 5.12起)
QSsl::UnknownProtocol-1无法确定密码的协议。
QSsl::AnyProtocol3任何受支持的协议。此值仅由QSslSocket使用。
QSsl::SecureProtocols4默认选项,使用已知的加密协议。

[自 6.1 版起] 枚举类 SupportedFeature

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

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

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

此枚举是在 Qt 6.1 中引入的。

© 2024 The Qt Company Ltd。本文档中的文档贡献包括此处各自所有者的版权。提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 许可的。Qt 和相关标志是 The Qt Company Ltd. 在芬兰以及/或其他国家的商标。所有其他商标均为各自所有者的财产。