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

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 }

Detaillierte Beschreibung

Typ-Dokumentation

[since 6.0] enum class AlertLevel

Beschreibt die Stufe einer Warnmeldung

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

KonstanteWertBeschreibung
QSslSocket::AlertLevel::Warning0Nicht fatale Warnmeldung
QSslSocket::AlertLevel::Fatal1Schwerwiegende Warnmeldung, das zugrundeliegende Backend wird eine solche Warnmeldung ordnungsgemäß behandeln und die Verbindung schließen.
QSslSocket::AlertLevel::Unknown2Eine 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.

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 Aufzählung wurde in Qt 6.0 eingeführt.

enum QSsl::AlternativeNameEntryType

Beschreibt die Schlüsselarten für alternative Namenseinträge in QSslCertificate.

KonstanteWertBeschreibung
QSsl::EmailEntry0Ein Email-Eintrag; der Eintrag enthält eine Email-Adresse, für die das Zertifikat gültig ist.
QSsl::DnsEntry1Ein DNS-Hostnameneintrag; der Eintrag enthält einen Hostnameneintrag, für den das Zertifikat gültig ist. Der Eintrag kann Wildcards enthalten.
QSsl::IpAddressEntry2Ein 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.

KonstanteWertBeschreibung
QSsl::Pem0Das PEM-Format.
QSsl::Der1Das 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.

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 Aufzählung wurde in Qt 6.1 eingeführt.

enum QSsl::KeyAlgorithm

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

KonstanteWertBeschreibung
QSsl::Rsa1Der RSA-Algorithmus.
QSsl::Dsa2Der DSA-Algorithmus.
QSsl::Ec3Der Elliptische-Kurven-Algorithmus.
QSsl::Dh4Der Diffie-Hellman-Algorithmus.
QSsl::Opaque0Ein 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.

KonstanteWertBeschreibung
QSsl::PrivateKey0Ein privater Schlüssel.
QSsl::PublicKey1Ein ö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.

KonstanteWertBeschreibung
QSsl::SslOptionDisableEmptyFragments0x01Deaktiviert 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::SslOptionDisableSessionTickets0x02Deaktiviert die SSL-Sitzungsticket-Erweiterung. Dies kann zu einem langsameren Verbindungsaufbau führen, allerdings sind einige Server nicht mit dieser Erweiterung kompatibel.
QSsl::SslOptionDisableCompression0x04Deaktiviert 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::SslOptionDisableServerNameIndication0x08Deaktiviert 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::SslOptionDisableLegacyRenegotiation0x10Deaktiviert 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::SslOptionDisableSessionSharing0x20Deaktiviert die gemeinsame Nutzung von SSL-Sitzungen über das Sitzungs-ID-Handshake-Attribut.
QSsl::SslOptionDisableSessionPersistence0x40Deaktiviert 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::SslOptionDisableServerCipherPreference0x80Deaktiviert 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.

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_312TLSv1.3 (seit Qt 5.12)
QSsl::TlsV1_3OrLater13TLSv1.3 und spätere Versionen. (Seit Qt 5.12)
QSsl::UnknownProtocol-1Das Protokoll der Verschlüsselung kann nicht bestimmt werden.
QSsl::AnyProtocol3Jedes unterstützte Protokoll. Dieser Wert wird nur von QSslSocket verwendet.
QSsl::SecureProtocols4Die 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.

KonstanteWertBeschreibung
QSslSocket::SupportedFeature::CertificateVerification0Zeigt an, dass QSslCertificate::verify() von dem Backend implementiert ist.
QSslSocket::SupportedFeature::ClientSideAlpn1Client-seitiges ALPN (Application Layer Protocol Negotiation).
QSslSocket::SupportedFeature::ServerSideAlpn2Server-seitiges ALPN.
QSslSocket::SupportedFeature::Ocsp3OCSP-Stapelung (Online Certificate Status Protocol).
QSslSocket::SupportedFeature::Psk4Pre-shared Keys.
QSslSocket::SupportedFeature::SessionTicket5Sitzungstickets.
QSslSocket::SupportedFeature::Alerts6Informationen ü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.