QSsl Namespace
Der QSsl-Namensraum deklariert Enums, die für alle SSL-Klassen in Qt Network gelten. Mehr...
Kopfzeile: | #include <QSsl> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- QSsl ist Teil der Network Programming 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 { 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 } |
Typ-Dokumentation
[since 6.0]
enum class AlertLevel
Beschreibt die Stufe einer Warnmeldung
Diese Aufzählung beschreibt die Stufe einer gesendeten oder empfangenen Warnmeldung.
Konstante | Wert | Beschreibung |
---|---|---|
QSslSocket::AlertLevel::Warning | 0 | Nicht fatale Warnmeldung |
QSslSocket::AlertLevel::Fatal | 1 | Schwerwiegende Warnmeldung, das zugrundeliegende Backend wird eine solche Warnmeldung ordnungsgemäß behandeln und die Verbindung schließen. |
QSslSocket::AlertLevel::Unknown | 2 | Eine Warnung mit unbekanntem Schweregrad. |
Diese Aufzählung wurde in Qt 6.0 eingeführt.
[since 6.0]
enum class AlertType
Aufzählung der möglichen Codes, die eine Warnmeldung haben kann.
Siehe RFC 8446, Abschnitt 6 für die möglichen Werte und ihre Bedeutung.
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 Aufzählung wurde in Qt 6.0 eingeführt.
enum QSsl::AlternativeNameEntryType
Beschreibt die Schlüsselarten für alternative Namenseinträge in QSslCertificate.
Konstante | Wert | Beschreibung |
---|---|---|
QSsl::EmailEntry | 0 | Ein Email-Eintrag; der Eintrag enthält eine Email-Adresse, für die das Zertifikat gültig ist. |
QSsl::DnsEntry | 1 | Ein DNS-Hostnameneintrag; der Eintrag enthält einen Hostnameneintrag, für den das Zertifikat gültig ist. Der Eintrag kann Wildcards enthalten. |
QSsl::IpAddressEntry | 2 | Ein IP-Adresseintrag; der Eintrag enthält einen IP-Adresseintrag, für den das Zertifikat gültig ist, eingeführt in Qt 5.13. |
Siehe auch QSslCertificate::subjectAlternativeNames().
enum QSsl::EncodingFormat
Beschreibt die unterstützten Kodierungsformate 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
Zählt die Klassen auf, die ein TLS-Backend implementiert.
In QtNetwork haben einige Klassen eine Backend-spezifische Implementierung und können daher unimplementiert bleiben. Die Aufzählungszeichen in diesem Enum zeigen an, welche Klasse im Backend eine funktionierende Implementierung hat.
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 Aufzählung 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::Rsa | 1 | Der RSA-Algorithmus. |
QSsl::Dsa | 2 | Der DSA-Algorithmus. |
QSsl::Ec | 3 | Der Elliptische-Kurven-Algorithmus. |
QSsl::Dh | 4 | Der Diffie-Hellman-Algorithmus. |
QSsl::Opaque | 0 | Ein Schlüssel, der von QSslKey als "Black Box" behandelt werden sollte. |
Die Opak-Schlüssel-Funktion ermöglicht es Anwendungen, Unterstützung für Funktionen wie PKCS#11 hinzuzufügen, die Qt derzeit nicht nativ anbietet.
enum QSsl::KeyType
Beschreibt die beiden Arten von Schlüsseln, 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, die verwendet werden können, um die Details des SSL-Verhaltens zu steuern. Diese Optionen werden im Allgemeinen verwendet, um Funktionen auszuschalten und fehlerhafte Server zu umgehen.
Konstante | Wert | Beschreibung |
---|---|---|
QSsl::SslOptionDisableEmptyFragments | 0x01 | Deaktiviert das Einfügen von leeren Fragmenten in die Daten bei der Verwendung von Blockchiffren. Wenn diese Option aktiviert ist, verhindert sie einige Angriffe (z. B. den BEAST-Angriff), ist jedoch mit einigen Servern nicht kompatibel. |
QSsl::SslOptionDisableSessionTickets | 0x02 | Deaktiviert die SSL-Sitzungsticket-Erweiterung. Dies kann zu einem langsameren Verbindungsaufbau führen, allerdings sind einige Server nicht mit dieser Erweiterung kompatibel. |
QSsl::SslOptionDisableCompression | 0x04 | Deaktiviert die SSL-Komprimierungserweiterung. Wenn sie aktiviert ist, können die über SSL übertragenen Daten komprimiert werden, allerdings sind einige Server nicht mit dieser Erweiterung kompatibel. |
QSsl::SslOptionDisableServerNameIndication | 0x08 | Deaktiviert die Erweiterung zur Angabe des SSL-Servernamens. Wenn sie aktiviert ist, teilt sie dem Server den virtuellen Host mit, auf den zugegriffen wird, damit er mit dem richtigen Zertifikat antworten kann. |
QSsl::SslOptionDisableLegacyRenegotiation | 0x10 | Deaktiviert den älteren, unsicheren Mechanismus zur Neuaushandlung der Verbindungsparameter. Wenn diese Option aktiviert ist, können Verbindungen für ältere Server zugelassen werden, aber es besteht die Möglichkeit, dass ein Angreifer Klartext in die SSL-Sitzung einschleusen kann. |
QSsl::SslOptionDisableSessionSharing | 0x20 | Deaktiviert die gemeinsame Nutzung von SSL-Sitzungen über das Sitzungs-ID-Handshake-Attribut. |
QSsl::SslOptionDisableSessionPersistence | 0x40 | Deaktiviert die Speicherung der SSL-Sitzung im ASN.1-Format, wie es von QSslConfiguration::sessionTicket() zurückgegeben wird. Die Aktivierung dieser Funktion führt zu einem zusätzlichen Speicher-Overhead von etwa 1K pro verwendetem Sitzungsticket. |
QSsl::SslOptionDisableServerCipherPreference | 0x80 | Deaktiviert die Auswahl der Chiffre auf der Grundlage der Serverpräferenzen und nicht der Reihenfolge, in der die Chiffren vom Client gesendet wurden. Diese Option ist nur für Server-Sockets relevant und wird nur vom OpenSSL-Backend beachtet. |
Standardmäßig ist SslOptionDisableEmptyFragments eingeschaltet, da dies bei einer großen Anzahl von Servern Probleme verursacht. SslOptionDisableLegacyRenegotiation ist ebenfalls aktiviert, da es ein Sicherheitsrisiko darstellt. SslOptionDisableCompression ist aktiviert, um den von CRIME bekannt gemachten Angriff zu verhindern. SslOptionDisableSessionPersistence ist aktiviert, um die Speichernutzung zu optimieren. Die anderen Optionen sind ausgeschaltet.
Hinweis: Die Verfügbarkeit der oben genannten Optionen hängt von der Version des verwendeten SSL-Backends ab.
Der Typ SslOptions ist ein Typedef für QFlags<SslOption>. Er speichert eine OR-Kombination von SslOption-Werten.
enum QSsl::SslProtocol
Beschreibt das Protokoll der Chiffre.
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 | 12 | TLSv1.3 (seit Qt 5.12) |
QSsl::TlsV1_3OrLater | 13 | TLSv1.3 und spätere Versionen. (Seit Qt 5.12) |
QSsl::UnknownProtocol | -1 | Das Protokoll der Verschlüsselung kann nicht bestimmt werden. |
QSsl::AnyProtocol | 3 | Jedes unterstützte Protokoll. Dieser Wert wird nur von QSslSocket verwendet. |
QSsl::SecureProtocols | 4 | Die Standardoption, die Protokolle verwendet, die als sicher bekannt sind. |
[since 6.1]
enum class SupportedFeature
Zählt mögliche Funktionen auf, die ein TLS-Backend unterstützt
In QtNetwork haben TLS-bezogene Klassen eine öffentliche API, die von einigen Backends nicht implementiert werden kann, z.B. unterstützt unser SecureTransport Backend kein serverseitiges ALPN. Aufzählungszeichen von SupportedFeature enum zeigen an, dass ein bestimmtes Merkmal unterstützt wird.
Konstante | Wert | Beschreibung |
---|---|---|
QSslSocket::SupportedFeature::CertificateVerification | 0 | Zeigt an, dass QSslCertificate::verify() von dem Backend implementiert ist. |
QSslSocket::SupportedFeature::ClientSideAlpn | 1 | Client-seitiges ALPN (Application Layer Protocol Negotiation). |
QSslSocket::SupportedFeature::ServerSideAlpn | 2 | Server-seitiges ALPN. |
QSslSocket::SupportedFeature::Ocsp | 3 | OCSP-Stapelung (Online Certificate Status Protocol). |
QSslSocket::SupportedFeature::Psk | 4 | Pre-shared Keys. |
QSslSocket::SupportedFeature::SessionTicket | 5 | Sitzungstickets. |
QSslSocket::SupportedFeature::Alerts | 6 | Informationen über gesendete und empfangene Warnmeldungen. |
Diese Aufzählung wurde in Qt 6.1 eingeführt.
© 2025 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.