Auf dieser Seite

QSsl Namespace

Der Namespace „QSsl“ definiert Aufzählungen, die allen SSL-Klassen in „ Qt Network “ gemeinsam sind. Mehr dazu...

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

Typen

(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 }

Ausführliche Beschreibung

Typdokumentation

[since 6.0] enum class AlertLevel

Beschreibt die Schwere einer Warnmeldung

Diese Aufzählung beschreibt die Stufe einer gesendeten oder empfangenen Warnmeldung.

KonstanteWertBeschreibung
QSslSocket::AlertLevel::Warning0Nicht schwerwiegende Warnmeldung
QSslSocket::AlertLevel::Fatal1Schwerwiegende Warnmeldung; das zugrunde liegende Backend wird eine solche Warnmeldung ordnungsgemäß behandeln und die Verbindung schließen.
QSslSocket::AlertLevel::Unknown2Eine Warnmeldung mit unbekanntem Schweregrad.

Diese Enumeration wurde in Qt 6.0 eingeführt.

[since 6.0] enum class AlertType

Listet mögliche Codes auf, die eine Warnmeldung haben kann

Die möglichen Werte und ihre Bedeutung finden Sie in RFC 8446, Abschnitt 6.

KonstanteWertBeschreibung
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 

Diese Enumeration wurde in Qt 6.0 eingeführt.

enum QSsl::AlternativeNameEntryType

Beschreibt die Schlüsseltypen für Einträge mit alternativen Namen in „ QSslCertificate “.

KonstanteWertBeschreibung
QSsl::EmailEntry0Ein E-Mail-Eintrag; der Eintrag enthält eine E-Mail-Adresse, für die das Zertifikat gültig ist.
QSsl::DnsEntry1Ein DNS-Hostnamen-Eintrag; der Eintrag enthält einen Hostnamen, für den das Zertifikat gültig ist. Der Eintrag kann Platzhalter enthalten.
QSsl::IpAddressEntry2Ein IP-Adress-Eintrag; der Eintrag enthält eine IP-Adresse, für die das Zertifikat gültig ist, eingeführt in Qt 5.13.

Siehe auch ` QSslCertificate::subjectAlternativeNames()`.

enum QSsl::EncodingFormat

Beschreibt die unterstützten Verschlüsselungsformate für Zertifikate und Schlüssel.

KonstanteWertBeschreibung
QSsl::Pem0Das PEM-Format.
QSsl::Der1Das DER-Format.

[since 6.1] enum class ImplementedClass

Listet Klassen auf, die ein TLS-Backend implementiert

In „ QtNetwork “ weisen einige Klassen eine backend-spezifische Implementierung auf und können daher unimplementiert bleiben. Die Elemente dieser Aufzählung geben an, welche Klasse im Backend über eine funktionierende Implementierung verfügt.

KonstanteWertBeschreibung
QSslSocket::ImplementedClass::Key0Klasse „ QSslKey “.
QSslSocket::ImplementedClass::Certificate1Klasse „ QSslCertificate “.
QSslSocket::ImplementedClass::Socket2Klasse „ QSslSocket “.
QSslSocket::ImplementedClass::DiffieHellman3Klasse „ QSslDiffieHellmanParameters “.
QSslSocket::ImplementedClass::EllipticCurve4Klasse „ QSslEllipticCurve “.
QSslSocket::ImplementedClass::Dtls5Klasse „ QDtls “.
QSslSocket::ImplementedClass::DtlsCookie6Klasse „ QDtlsClientVerifier “.

Diese Enumeration wurde in Qt 6.1 eingeführt.

enum QSsl::KeyAlgorithm

Beschreibt die verschiedenen Schlüsselalgorithmen, die von QSslKey unterstützt werden.

KonstanteWertBeschreibung
QSsl::MlDsa5Der ML-DSA-Algorithmus.
QSsl::Rsa1Der RSA-Algorithmus.
QSsl::Dsa2Der DSA-Algorithmus.
QSsl::Ec3Der Algorithmus der elliptischen Kurve.
QSsl::Dh4Der Diffie-Hellman-Algorithmus.
QSsl::Opaque0Ein Schlüssel, der von „ QSslKey “ als „Black Box“ behandelt werden sollte.

Die Funktion für undurchsichtige Schlüssel ermöglicht es Anwendungen, Unterstützung für Funktionen wie PKCS#11 hinzuzufügen, die Qt derzeit nicht nativ bietet.

enum QSsl::KeyType

Beschreibt die beiden Schlüsseltypen, die „ QSslKey “ unterstützt.

KonstanteWertBeschreibung
QSsl::PrivateKey0Ein privater Schlüssel.
QSsl::PublicKey1Ein öffentlicher Schlüssel.

enum QSsl::SslOption
flags QSsl::SslOptions

Beschreibt die Optionen, mit denen sich das SSL-Verhalten im Detail steuern lässt. Diese Optionen werden in der Regel verwendet, um Funktionen zu deaktivieren und so Probleme mit fehlerhaften Servern zu umgehen.

KonstanteWertBeschreibung
QSsl::SslOptionDisableEmptyFragments0x01Deaktiviert das Einfügen leerer Fragmente in die Daten bei der Verwendung von Blockchiffren. Wenn diese Option aktiviert ist, verhindert sie bestimmte Angriffe (wie beispielsweise den BEAST-Angriff), ist jedoch mit einigen Servern nicht kompatibel.
QSsl::SslOptionDisableSessionTickets0x02Deaktiviert die SSL-Session-Ticket-Erweiterung. Dies kann zu einem langsameren Verbindungsaufbau führen, allerdings sind einige Server mit dieser Erweiterung nicht kompatibel.
QSsl::SslOptionDisableCompression0x04Deaktiviert die SSL-Komprimierungserweiterung. Wenn diese Option aktiviert ist, können die über SSL übertragenen Daten komprimiert werden; einige Server sind jedoch nicht mit dieser Erweiterung kompatibel.
QSsl::SslOptionDisableServerNameIndication0x08Deaktiviert die SSL-Erweiterung „Server Name Indication“. Wenn diese Option aktiviert ist, teilt sie dem Server mit, auf welchen virtuellen Host zugegriffen wird, sodass er mit dem richtigen Zertifikat antworten kann.
QSsl::SslOptionDisableLegacyRenegotiation0x10Deaktiviert den älteren, unsicheren Mechanismus zur Neuverhandlung der Verbindungsparameter. Wenn diese Option aktiviert ist, können Verbindungen zu älteren Servern ermöglicht werden, es besteht jedoch die Gefahr, dass ein Angreifer Klartext in die SSL-Sitzung einschleusen könnte.
QSsl::SslOptionDisableSessionSharing0x20Deaktiviert die gemeinsame Nutzung von SSL-Sitzungen über das „Session ID Handshake“-Attribut.
QSsl::SslOptionDisableSessionPersistence0x40Deaktiviert die Speicherung der SSL-Sitzung im ASN.1-Format, wie sie von ` QSslConfiguration::sessionTicket()` zurückgegeben wird. Die Aktivierung dieser Funktion verursacht einen zusätzlichen Speicherbedarf von etwa 1 KB pro verwendetem Sitzungs-Ticket.
QSsl::SslOptionDisableServerCipherPreference0x80Deaktiviert die Auswahl der Verschlüsselungsmethode auf Basis der Serverpräferenzen anstelle der Reihenfolge, in der die Verschlüsselungsmethoden vom Client gesendet wurden. Diese Option ist nur für Server-Sockets relevant und wird ausschließlich vom OpenSSL-Backend berücksichtigt.

Standardmäßig ist „SslOptionDisableEmptyFragments“ aktiviert, da dies bei einer großen Anzahl von Servern zu Problemen führt. „SslOptionDisableLegacyRenegotiation“ ist ebenfalls aktiviert, da es ein Sicherheitsrisiko darstellt. „SslOptionDisableCompression“ ist aktiviert, um den durch CRIME bekannt gewordenen Angriff zu verhindern. „SslOptionDisableSessionPersistence“ ist aktiviert, um die Speichernutzung zu optimieren. Die übrigen Optionen sind deaktiviert.

Hinweis: Die Verfügbarkeit der oben genannten Optionen hängt von der verwendeten Version des SSL-Backends ab.

Der Typ „SslOptions“ ist ein „typedef“ für „QFlags<SslOption>“. Er speichert eine ODER-Kombination von „SslOption“-Werten.

enum QSsl::SslProtocol

Beschreibt das Protokoll der Verschlüsselung.

KonstanteWertBeschreibung
QSsl::TlsV1_00TLSv1.0
QSsl::TlsV1_0OrLater5TLSv1.0 und spätere Versionen.
QSsl::TlsV1_11TLSv1.1.
QSsl::TlsV1_1OrLater6TLSv1.1 und spätere Versionen.
QSsl::TlsV1_22TLSv1.2.
QSsl::TlsV1_2OrLater7TLSv1.2 und spätere Versionen.
QSsl::DtlsV1_08DTLSv1.0
QSsl::DtlsV1_0OrLater9DTLSv1.0 und spätere Versionen.
QSsl::DtlsV1_210DTLSv1.2
QSsl::DtlsV1_2OrLater11DTLSv1.2 und spätere Versionen.
QSsl::TlsV1_3 (since Qt 5.12)12TLSv1.3.
QSsl::TlsV1_3OrLater (since Qt 5.12)13TLSv1.3 und spätere Versionen.
QSsl::UnknownProtocol-1Das Protokoll der Verschlüsselung kann nicht ermittelt werden.
QSsl::AnyProtocol3Jedes unterstützte Protokoll. Dieser Wert wird ausschließlich von „ QSslSocket “ verwendet.
QSsl::SecureProtocols4Die Standardoption, bei der Protokolle verwendet werden, die als sicher gelten.

[since 6.1] enum class SupportedFeature

Listet mögliche Funktionen auf, die ein TLS-Backend unterstützt

In „ QtNetwork “ verfügen TLS-bezogene Klassen über eine öffentliche API, die von manchen Backends möglicherweise nicht implementiert wird; so unterstützt beispielsweise unser SecureTransport-Backend kein serverseitiges ALPN. Enumeratoren aus der Enumeration „SupportedFeature“ geben an, dass eine bestimmte Funktion unterstützt wird.

KonstanteWertBeschreibung
QSslSocket::SupportedFeature::CertificateVerification0Gibt an, dass „ QSslCertificate::verify()“ vom Backend implementiert ist.
QSslSocket::SupportedFeature::ClientSideAlpn1Clientseitiges ALPN (Application Layer Protocol Negotiation).
QSslSocket::SupportedFeature::ServerSideAlpn2Serverseitiges ALPN.
QSslSocket::SupportedFeature::Ocsp3OCSP-Stapling (Online Certificate Status Protocol).
QSslSocket::SupportedFeature::Psk4Vorab geteilte Schlüssel.
QSslSocket::SupportedFeature::SessionTicket5Sitzungstickets.
QSslSocket::SupportedFeature::Alerts6Informationen zu gesendeten und empfangenen Warnmeldungen.

Diese Enumeration wurde in Qt 6.1 eingeführt.

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