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 |
- QSsl ist Teil der Netzwerkprogrammier-API.
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 } |
Typdokumentation
[since 6.0] enum class AlertLevel
Beschreibt die Schwere einer Warnmeldung
Diese Aufzählung beschreibt die Stufe einer gesendeten oder empfangenen Warnmeldung.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSslSocket::AlertLevel::Warning | 0 | Nicht schwerwiegende Warnmeldung |
QSslSocket::AlertLevel::Fatal | 1 | Schwerwiegende Warnmeldung; das zugrunde liegende Backend wird eine solche Warnmeldung ordnungsgemäß behandeln und die Verbindung schließen. |
QSslSocket::AlertLevel::Unknown | 2 | Eine 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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSslSocket::AlertType::CloseNotify | 0 | , |
QSslSocket::AlertType::UnexpectedMessage | 10 | |
QSslSocket::AlertType::BadRecordMac | 20 | |
QSslSocket::AlertType::RecordOverflow | 22 | |
QSslSocket::AlertType::DecompressionFailure | 30 | |
QSslSocket::AlertType::HandshakeFailure | 40 | |
QSslSocket::AlertType::NoCertificate | 41 | |
QSslSocket::AlertType::BadCertificate | 42 | |
QSslSocket::AlertType::UnsupportedCertificate | 43 | |
QSslSocket::AlertType::CertificateRevoked | 44 | |
QSslSocket::AlertType::CertificateExpired | 45 | |
QSslSocket::AlertType::CertificateUnknown | 46 | |
QSslSocket::AlertType::IllegalParameter | 47 | |
QSslSocket::AlertType::UnknownCa | 48 | |
QSslSocket::AlertType::AccessDenied | 49 | |
QSslSocket::AlertType::DecodeError | 50 | |
QSslSocket::AlertType::DecryptError | 51 | |
QSslSocket::AlertType::ExportRestriction | 60 | |
QSslSocket::AlertType::ProtocolVersion | 70 | |
QSslSocket::AlertType::InsufficientSecurity | 71 | |
QSslSocket::AlertType::InternalError | 80 | |
QSslSocket::AlertType::InappropriateFallback | 86 | |
QSslSocket::AlertType::UserCancelled | 90 | |
QSslSocket::AlertType::NoRenegotiation | 100 | |
QSslSocket::AlertType::MissingExtension | 109 | |
QSslSocket::AlertType::UnsupportedExtension | 110 | |
QSslSocket::AlertType::CertificateUnobtainable | 111 | |
QSslSocket::AlertType::UnrecognizedName | 112 | |
QSslSocket::AlertType::BadCertificateStatusResponse | 113 | |
QSslSocket::AlertType::BadCertificateHashValue | 114 | |
QSslSocket::AlertType::UnknownPskIdentity | 115 | |
QSslSocket::AlertType::CertificateRequired | 116 | |
QSslSocket::AlertType::NoApplicationProtocol | 120 | |
QSslSocket::AlertType::UnknownAlertMessage | 255 |
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 “.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSsl::EmailEntry | 0 | Ein E-Mail-Eintrag; der Eintrag enthält eine E-Mail-Adresse, für die das Zertifikat gültig ist. |
QSsl::DnsEntry | 1 | Ein DNS-Hostnamen-Eintrag; der Eintrag enthält einen Hostnamen, für den das Zertifikat gültig ist. Der Eintrag kann Platzhalter enthalten. |
QSsl::IpAddressEntry | 2 | Ein 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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSsl::Pem | 0 | Das PEM-Format. |
QSsl::Der | 1 | Das 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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSslSocket::ImplementedClass::Key | 0 | Klasse „ QSslKey “. |
QSslSocket::ImplementedClass::Certificate | 1 | Klasse „ QSslCertificate “. |
QSslSocket::ImplementedClass::Socket | 2 | Klasse „ QSslSocket “. |
QSslSocket::ImplementedClass::DiffieHellman | 3 | Klasse „ QSslDiffieHellmanParameters “. |
QSslSocket::ImplementedClass::EllipticCurve | 4 | Klasse „ QSslEllipticCurve “. |
QSslSocket::ImplementedClass::Dtls | 5 | Klasse „ QDtls “. |
QSslSocket::ImplementedClass::DtlsCookie | 6 | Klasse „ QDtlsClientVerifier “. |
Diese Enumeration wurde in Qt 6.1 eingeführt.
enum QSsl::KeyAlgorithm
Beschreibt die verschiedenen Schlüsselalgorithmen, die von QSslKey unterstützt werden.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSsl::MlDsa | 5 | Der ML-DSA-Algorithmus. |
QSsl::Rsa | 1 | Der RSA-Algorithmus. |
QSsl::Dsa | 2 | Der DSA-Algorithmus. |
QSsl::Ec | 3 | Der Algorithmus der elliptischen Kurve. |
QSsl::Dh | 4 | Der Diffie-Hellman-Algorithmus. |
QSsl::Opaque | 0 | Ein 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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSsl::PrivateKey | 0 | Ein privater Schlüssel. |
QSsl::PublicKey | 1 | Ein ö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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSsl::SslOptionDisableEmptyFragments | 0x01 | Deaktiviert 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::SslOptionDisableSessionTickets | 0x02 | Deaktiviert die SSL-Session-Ticket-Erweiterung. Dies kann zu einem langsameren Verbindungsaufbau führen, allerdings sind einige Server mit dieser Erweiterung nicht kompatibel. |
QSsl::SslOptionDisableCompression | 0x04 | Deaktiviert 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::SslOptionDisableServerNameIndication | 0x08 | Deaktiviert 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::SslOptionDisableLegacyRenegotiation | 0x10 | Deaktiviert 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::SslOptionDisableSessionSharing | 0x20 | Deaktiviert die gemeinsame Nutzung von SSL-Sitzungen über das „Session ID Handshake“-Attribut. |
QSsl::SslOptionDisableSessionPersistence | 0x40 | Deaktiviert 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::SslOptionDisableServerCipherPreference | 0x80 | Deaktiviert 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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSsl::TlsV1_0 | 0 | TLSv1.0 |
QSsl::TlsV1_0OrLater | 5 | TLSv1.0 und spätere Versionen. |
QSsl::TlsV1_1 | 1 | TLSv1.1. |
QSsl::TlsV1_1OrLater | 6 | TLSv1.1 und spätere Versionen. |
QSsl::TlsV1_2 | 2 | TLSv1.2. |
QSsl::TlsV1_2OrLater | 7 | TLSv1.2 und spätere Versionen. |
QSsl::DtlsV1_0 | 8 | DTLSv1.0 |
QSsl::DtlsV1_0OrLater | 9 | DTLSv1.0 und spätere Versionen. |
QSsl::DtlsV1_2 | 10 | DTLSv1.2 |
QSsl::DtlsV1_2OrLater | 11 | DTLSv1.2 und spätere Versionen. |
QSsl::TlsV1_3 (since Qt 5.12) | 12 | TLSv1.3. |
QSsl::TlsV1_3OrLater (since Qt 5.12) | 13 | TLSv1.3 und spätere Versionen. |
QSsl::UnknownProtocol | -1 | Das Protokoll der Verschlüsselung kann nicht ermittelt werden. |
QSsl::AnyProtocol | 3 | Jedes unterstützte Protokoll. Dieser Wert wird ausschließlich von „ QSslSocket “ verwendet. |
QSsl::SecureProtocols | 4 | Die 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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSslSocket::SupportedFeature::CertificateVerification | 0 | Gibt an, dass „ QSslCertificate::verify()“ vom Backend implementiert ist. |
QSslSocket::SupportedFeature::ClientSideAlpn | 1 | Clientseitiges ALPN (Application Layer Protocol Negotiation). |
QSslSocket::SupportedFeature::ServerSideAlpn | 2 | Serverseitiges ALPN. |
QSslSocket::SupportedFeature::Ocsp | 3 | OCSP-Stapling (Online Certificate Status Protocol). |
QSslSocket::SupportedFeature::Psk | 4 | Vorab geteilte Schlüssel. |
QSslSocket::SupportedFeature::SessionTicket | 5 | Sitzungstickets. |
QSslSocket::SupportedFeature::Alerts | 6 | Informationen 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.