class QSsl#

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

注意

本文档可能包含自动从C++转换为Python的片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单的方式来告诉我们。

详细描述#

class KeyType#

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

常量

描述

QSsl.PrivateKey

私钥。

QSsl.PublicKey

公钥。

class EncodingFormat#

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

常量

描述

QSsl.Pem

PEM格式。

QSsl.Der

DER格式。

class KeyAlgorithm#

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

常量

描述

QSsl.Rsa

RSA算法。

QSsl.Dsa

DSA算法。

QSsl.Ec

椭圆曲线算法。

QSsl.Dh

Diffie-Hellman算法。

QSsl.Opaque

应该由QSslKey作为'黑盒'处理的密钥。

未知密钥功能允许应用程序支持像PKCS#11这样的设施,Qt目前尚未提供原生的支持。

class AlternativeNameEntryType#

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

常量

描述

QSsl.EmailEntry

电子邮件条目;条目包含证书有效的电子邮件地址。

QSsl.DnsEntry

域名主机名条目;条目包含证书有效的域名。条目可能包含通配符。

QSsl.IpAddressEntry

IP地址条目;条目包含证书有效的IP地址,自Qt 5.13引入。

class SslProtocol#

描述密码的协议。

常量

描述

QSsl.TlsV1_0

TLSv1.0

QSsl.TlsV1_0OrLater

TLSv1.0和后来的版本。

QSsl.TlsV1_1

TLSv1.1。

QSsl.TlsV1_1OrLater

TLSv1.1和后来的版本。

QSsl.TlsV1_2

TLSv1.2。

QSsl.TlsV1_2OrLater

TLSv1.2和后来的版本。

QSsl.DtlsV1_0

DTLSv1.0

QSsl.DtlsV1_0OrLater

DTLSv1.0和后来的版本。

QSsl.DtlsV1_2

DTLSv1.2

QSsl.DtlsV1_2OrLater

DTLSv1.2和后来的版本。

QSsl.TlsV1_3

TLSv1.3。(自Qt 5.12起)

QSsl.TlsV1_3OrLater

TLSv1.3和后来的版本。(自Qt 5.12起)

QSsl.UnknownProtocol

无法确定加密协议。

QSsl.AnyProtocol

任何支持的协议。该值只用于 QSslSocket

QSsl.SecureProtocols

默认选项,使用已知的加密协议。

class SslOption#

(继承自 enum.Flag) 描述了可用来控制 SSL 行为详细信息的选项。这些选项通常用于关闭有问题的服务器上的功能。

常量

描述

QSsl.SslOptionDisableEmptyFragments

使用块密钥时禁用数据中的空片段插入。启用时,这可以阻止某些攻击(例如 BEAST 攻击),但它与某些服务器不兼容。

QSsl.SslOptionDisableSessionTickets

禁用 SSL 会话票据扩展。这可能会导致连接设置更慢,然而某些服务器与该扩展不兼容。

QSsl.SslOptionDisableCompression

禁用 SSL 压缩扩展。启用时,这允许通过 SSL 传输的数据被压缩,但某些服务器与该扩展不兼容。

QSsl.SslOptionDisableServerNameIndication

禁用 SSL 服务器名指示扩展。启用时,这告诉服务器访问的虚拟机,使其能够响应正确的证书。

QSsl.SslOptionDisableLegacyRenegotiation

禁用重协商连接参数的旧版不安全机制。启用时,此选项允许与旧版服务器建立连接,但这引入了攻击者可能将明文注入 SSL 会话的风险。

QSsl.SslOptionDisableSessionSharing

禁用通过会话 ID 握手属性进行 SSL 会话共享。

QSsl.SslOptionDisableSessionPersistence

禁用将 SSL 会话存储为 ASN.1 格式,如由 sessionTicket() 返回。启用此功能会为每个使用的会话票据增加大约 1K 的内存开销。

QSsl.SslOptionDisableServerCipherPreference

禁用根据服务器偏好选择密钥而不是客户端发送密钥顺序选择密钥。此选项仅适用于服务器套接字,并且只为 OpenSSL 后端所尊重。

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

注意

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

class AlertLevel#

描述警报消息的级别

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

常量

描述

QSslSocket.AlertLevel.Warning

非致命警报消息

QSslSocket.AlertLevel.Fatal

致命警报消息,底层后端将正确处理此类警报并关闭连接。

QSslSocket.AlertLevel.Unknown

级别未知的警报

class AlertType#

列出警报消息可能具有的可能代码

请参阅 RFC 8446 的第 6 部分,了解可能的值及其含义。

常量

描述

QSslSocket.AlertType.CloseNotify

,

QSslSocket.AlertType.UnexpectedMessage

QSslSocket.AlertType.BadRecordMac

QSslSocket.AlertType.RecordOverflow

QSslSocket.AlertType.DecompressionFailure

QSslSocket.AlertType.HandshakeFailure

QSslSocket.AlertType.NoCertificate

QSslSocket.AlertType.BadCertificate

QSslSocket.AlertType.UnsupportedCertificate

QSslSocket.AlertType.CertificateRevoked

QSslSocket.AlertType.CertificateExpired

QSslSocket.AlertType.CertificateUnknown

QSslSocket.AlertType.IllegalParameter

QSslSocket.AlertType.UnknownCa

QSslSocket.AlertType.AccessDenied

QSslSocket.AlertType.DecodeError

QSslSocket.AlertType.DecryptError

QSslSocket.AlertType.ExportRestriction

QSslSocket.AlertType.ProtocolVersion

QSslSocket.AlertType.InsufficientSecurity

QSslSocket.AlertType.InternalError

QSslSocket.AlertType.InappropriateFallback

QSslSocket.AlertType.UserCancelled

QSslSocket.AlertType.NoRenegotiation

QSslSocket.AlertType.MissingExtension

QSslSocket.AlertType UnsupportedExtension

QSslSocket.AlertType.CertificateUnobtainable

QSslSocket.AlertType.UnrecognizedName

QSslSocket.AlertType.BadCertificateStatusResponse

QSslSocket.AlertType.BadCertificateHashValue

QSslSocket.AlertType.UnknownPskIdentity

QSslSocket AlertType.CertificateRequired

QSslSocket_alertType.NoApplicationProtocol

QSslSocket_alertType(UnknownAlertMessage

class ImplementedClass#

列举了TLS后端实现的类

QtNetwork 中,一些类有后端特定的实现,因此可以被省略不实现。这个枚举中的枚举项表示,哪个类在后端中有一个正常的工作实现。

常量

描述

QSslSocket.ImplementedClass.Key

QSslKey

QSslSocket.ImplementedClass.Certificate

QSslCertificate

QSslSocket.ImplementedClass.Socket

QSslSocket

QSslSocket.ImplementedClass.DiffieHellman

QSslDiffieHellmanParameters

QSslSocket.ImplementedClass.EllipticCurve

QSslEllipticCurve

QSslSocket.ImplementedClass.Dtls

QDtls

QSslSocket.ImplementedClass.DtlsCookie

QDtlsClientVerifier

自版本 6.1 新增。

class SupportedFeature#

列举了TLS后端支持的可能的特性

QtNetwork 中,TLS相关的类有公共API,某些后端可能省略实现,例如,我们的SecureTransport后端不支持服务器端ALPN。从这个SupportedFeature枚举的枚举项中可以判断特定的特性是否受支持。

常量

描述

QSslSocket.SupportedFeature.CertificateVerification

表示后端实现了 verify()

QSslSocket.SupportedFeature.ClientSideAlpn

客户端ALPN(应用层协议协商)。

QSslSocket.SupportedFeature.ServerSideAlpn

服务器端ALPN。

QSslSocket.SupportedFeature.Ocsp

OCSP端叠(在线证书状态协议)。

QSslSocket.SupportedFeature.Psk

预共享密钥。

QSslSocket.SupportedFeature.SessionTicket

会话票据。

QSslSocket.SupportedFeature.Alerts

发送和接收的警报信息。

自版本 6.1 新增。