Auf dieser Seite

QSslConfiguration Class

Die Klasse „QSslConfiguration“ enthält die Konfiguration und den Status einer SSL-Verbindung. Mehr...

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

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Typen

enum NextProtocolNegotiationStatus { NextProtocolNegotiationNone, NextProtocolNegotiationNegotiated, NextProtocolNegotiationUnsupported }

Öffentliche Funktionen

QSslConfiguration()
QSslConfiguration(const QSslConfiguration &other)
~QSslConfiguration()
void addCaCertificate(const QSslCertificate &certificate)
void addCaCertificates(const QList<QSslCertificate> &certificates)
bool addCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = QSslCertificate::PatternSyntax::FixedString)
QList<QByteArray> allowedNextProtocols() const
QMap<QByteArray, QVariant> backendConfiguration() const
QList<QSslCertificate> caCertificates() const
QList<QSslCipher> ciphers() const
QSslDiffieHellmanParameters diffieHellmanParameters() const
bool dtlsCookieVerificationEnabled() const
QList<QSslEllipticCurve> ellipticCurves() const
QSslKey ephemeralServerKey() const
(since 6.0) bool handshakeMustInterruptOnError() const
bool isNull() const
QSslCertificate localCertificate() const
QList<QSslCertificate> localCertificateChain() const
(since 6.0) bool missingCertificateIsFatal() const
QByteArray nextNegotiatedProtocol() const
QSslConfiguration::NextProtocolNegotiationStatus nextProtocolNegotiationStatus() const
bool ocspStaplingEnabled() const
QSslCertificate peerCertificate() const
QList<QSslCertificate> peerCertificateChain() const
int peerVerifyDepth() const
QSslSocket::PeerVerifyMode peerVerifyMode() const
QByteArray preSharedKeyIdentityHint() const
QSslKey privateKey() const
QSsl::SslProtocol protocol() const
QSslCipher sessionCipher() const
QSsl::SslProtocol sessionProtocol() const
QByteArray sessionTicket() const
int sessionTicketLifeTimeHint() const
void setAllowedNextProtocols(const QList<QByteArray> &protocols)
void setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = QMap<QByteArray, QVariant>())
void setBackendConfigurationOption(const QByteArray &name, const QVariant &value)
void setCaCertificates(const QList<QSslCertificate> &certificates)
void setCiphers(const QList<QSslCipher> &ciphers)
(since 6.0) void setCiphers(const QString &ciphers)
void setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams)
void setDtlsCookieVerificationEnabled(bool enable)
void setEllipticCurves(const QList<QSslEllipticCurve> &curves)
(since 6.0) void setHandshakeMustInterruptOnError(bool interrupt)
(since 6.12) void setKeyingMaterial(const QList<QSslKeyingMaterial> &keyMaterial)
void setLocalCertificate(const QSslCertificate &certificate)
void setLocalCertificateChain(const QList<QSslCertificate> &localChain)
(since 6.0) void setMissingCertificateIsFatal(bool cannotRecover)
void setOcspStaplingEnabled(bool enabled)
void setPeerVerifyDepth(int depth)
void setPeerVerifyMode(QSslSocket::PeerVerifyMode mode)
void setPreSharedKeyIdentityHint(const QByteArray &hint)
void setPrivateKey(const QSslKey &key)
void setProtocol(QSsl::SslProtocol protocol)
void setSessionTicket(const QByteArray &sessionTicket)
void setSslOption(QSsl::SslOption option, bool on)
void swap(QSslConfiguration &other)
(since 6.12) QList<QSslKeyingMaterial> takeKeyingMaterial()
(since 6.12) std::optional<QSslKeyingMaterial> takeKeyingMaterial(const QSslKeyingMaterial &material)
bool testSslOption(QSsl::SslOption option) const
bool operator!=(const QSslConfiguration &other) const
QSslConfiguration &operator=(const QSslConfiguration &other)
bool operator==(const QSslConfiguration &other) const

Statische öffentliche Mitglieder

const char[] ALPNProtocolHTTP2
const char[] NextProtocolHttp1_1
QSslConfiguration defaultConfiguration()
QSslConfiguration defaultDtlsConfiguration()
void setDefaultConfiguration(const QSslConfiguration &configuration)
void setDefaultDtlsConfiguration(const QSslConfiguration &configuration)
QList<QSslCipher> supportedCiphers()
QList<QSslEllipticCurve> supportedEllipticCurves()
QList<QSslCertificate> systemCaCertificates()

Ausführliche Beschreibung

QSslConfiguration wird von den Qt Network-Klassen verwendet, um Informationen über eine offene SSL-Verbindung weiterzugeben und der Anwendung die Steuerung bestimmter Funktionen dieser Verbindung zu ermöglichen.

Die Einstellungen, die QSslConfiguration derzeit unterstützt, sind:

  • Das zu verwendende SSL/TLS-Protokoll
  • Das Zertifikat, das dem Gegenüber bei der Verbindung vorgelegt werden soll, sowie der dazugehörige private Schlüssel
  • Die zur Verschlüsselung der Verbindung zulässigen Verschlüsselungsalgorithmen
  • Die Liste der Zertifikate von Zertifizierungsstellen, die zur Validierung des Zertifikats des Gegenübers verwendet werden

Diese Einstellungen werden nur während des Verbindungs-Handshakes angewendet. Eine Änderung dieser Einstellungen nach dem Aufbau der Verbindung hat keine Auswirkungen.

Die von QSslConfiguration unterstützten Zustände sind:

  • Das Zertifikat, das der Peer während des Handshakes vorgelegt hat, zusammen mit der Zertifikatskette, die zu einem CA-Zertifikat führt
  • Die zur Verschlüsselung dieser Sitzung verwendete Verschlüsselungsmethode

Der Zustand kann erst ermittelt werden, sobald die SSL-Verbindung beginnt, jedoch nicht unbedingt, bevor sie beendet ist. Einige Einstellungen können sich im Verlauf der SSL-Verbindung ändern, ohne dass ein Neustart erforderlich ist (beispielsweise kann die Verschlüsselungsmethode im Laufe der Zeit geändert werden).

Der Status in QSslConfiguration-Objekten kann nicht geändert werden.

QSslConfiguration kann mit „ QSslSocket “ und der Network-Access-API verwendet werden.

Beachten Sie, dass das Ändern der Einstellungen in „QSslConfiguration“ nicht ausreicht, um die Einstellungen in der zugehörigen SSL-Verbindung zu ändern. Dazu müssen Sie die Methode „setSslConfiguration“ für ein geändertes „QSslConfiguration“-Objekt aufrufen. Das folgende Beispiel veranschaulicht, wie das Protokoll in einem „ QSslSocket “-Objekt auf „TLSv1_2“ geändert wird:

QSslConfiguration config = sslSocket.sslConfiguration();
config.setProtocol(QSsl::TlsV1_2);
sslSocket.setSslConfiguration(config);

Siehe auch „ QSsl::SslProtocol“ , „ QSslCertificate “, „ QSslCipher “, „ QSslKey “, „ QSslSocket “, „ QNetworkAccessManager “, „ QSslSocket::sslConfiguration()“ und „ QSslSocket::setSslConfiguration()“.

Dokumentation zu Mitgliedstypen

enum QSslConfiguration::NextProtocolNegotiationStatus

Beschreibt den Status der „Next Protocol Negotiation“ (NPN) oder der „Application-Layer Protocol Negotiation“ (ALPN).

KonstanteWertBeschreibung
QSslConfiguration::NextProtocolNegotiationNone0Es wurde (noch) kein Anwendungsprotokoll ausgehandelt.
QSslConfiguration::NextProtocolNegotiationNegotiated1Ein nächstes Protokoll wurde ausgehandelt (siehe „ nextNegotiatedProtocol “ ()).
QSslConfiguration::NextProtocolNegotiationUnsupported2Client und Server konnten sich nicht auf ein gemeinsames nächstes Anwendungsprotokoll einigen.

Dokumentation der Mitgliedsfunktionen

QSslConfiguration::QSslConfiguration()

Erstellt eine leere SSL-Konfiguration. Diese Konfiguration enthält keine gültigen Einstellungen, und der Status ist leer. Nach dem Aufruf dieses Konstruktors gibt ` isNull()` den Wert „true“ zurück.

Sobald eine der Setter-Methoden aufgerufen wird, gibt ` isNull()` „false“ zurück.

QSslConfiguration::QSslConfiguration(const QSslConfiguration &other)

Kopiert die Konfiguration und den Zustand von other. Ist other null, ist dieses Objekt ebenfalls null.

[noexcept] QSslConfiguration::~QSslConfiguration()

Gibt alle von „ QSslConfiguration “ belegten Ressourcen frei.

void QSslConfiguration::addCaCertificate(const QSslCertificate &certificate)

Fügt „ certificate “ zur CA-Zertifikatsdatenbank dieser Konfiguration hinzu. Die Zertifikatsdatenbank muss vor dem SSL-Handshake eingerichtet werden. Die CA-Zertifikatsdatenbank wird vom Socket während der Handshake-Phase verwendet, um das Zertifikat des Gegenübers zu validieren.

Hinweis: Die Standardkonfiguration verwendet die systemeigene CA-Zertifikatsdatenbank. Ist diese nicht verfügbar (was unter iOS häufig der Fall ist), ist die Standarddatenbank leer.

Siehe auch caCertificates(), setCaCertificates() und addCaCertificates().

void QSslConfiguration::addCaCertificates(const QList<QSslCertificate> &certificates)

Fügt „ certificates “ zur CA-Zertifikatsdatenbank dieser Konfiguration hinzu. Die Zertifikatsdatenbank muss vor dem SSL-Handshake eingerichtet werden. Die CA-Zertifikatsdatenbank wird vom Socket während der Handshake-Phase verwendet, um das Zertifikat des Gegenübers zu validieren.

Hinweis: Die Standardkonfiguration verwendet die systemeigene CA-Zertifikatsdatenbank. Ist diese nicht verfügbar (was unter iOS häufig der Fall ist), ist die Standarddatenbank leer.

Siehe auch caCertificates(), setCaCertificates() und addCaCertificate().

bool QSslConfiguration::addCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = QSslCertificate::PatternSyntax::FixedString)

Durchsucht alle Dateien im Verzeichnis „ path “ nach Zertifikaten, die im angegebenen „ format “ kodiert sind, und fügt diese zur CA-Zertifikatsdatenbank dieses Sockets hinzu. „ path “ muss eine Datei oder ein Muster sein, das mit einer oder mehreren Dateien übereinstimmt, wie unter „ syntax “ angegeben. Gibt „ true “ zurück, wenn ein oder mehrere Zertifikate zur CA-Zertifikatsdatenbank des Sockets hinzugefügt wurden; andernfalls wird „ false “ zurückgegeben.

Die CA-Zertifikatsdatenbank wird vom Socket während der Handshake-Phase verwendet, um das Zertifikat des Gegenübers zu validieren.

Für eine präzisere Steuerung verwenden Sie „ addCaCertificate()“.

Siehe auch addCaCertificate() und QSslCertificate::fromPath().

QList<QByteArray> QSslConfiguration::allowedNextProtocols() const

Diese Funktion gibt die zulässigen Protokolle zurück, die über die TLS-Erweiterung „Next Protocol Negotiation“ (NPN) oder „Application-Layer Protocol Negotiation“ (ALPN) mit dem Server ausgehandelt werden können, wie durch ` setAllowedNextProtocols()` festgelegt.

Siehe auch nextNegotiatedProtocol(), nextProtocolNegotiationStatus(), setAllowedNextProtocols() und QSslConfiguration::NextProtocolHttp1_1.

QMap<QByteArray, QVariant> QSslConfiguration::backendConfiguration() const

Gibt die backend-spezifische Konfiguration zurück.

Es werden nur Optionen zurückgegeben, die mit ` setBackendConfigurationOption()` oder ` setBackendConfiguration()` festgelegt wurden. Die interne Standardkonfiguration des Backends wird nicht zurückgegeben.

Siehe auch setBackendConfigurationOption() und setBackendConfiguration().

QList<QSslCertificate> QSslConfiguration::caCertificates() const

Gibt die CA-Zertifikatsdatenbank dieser Verbindung zurück. Die CA-Zertifikatsdatenbank wird vom Socket während der Handshake-Phase verwendet, um das Zertifikat des Gegenübers zu validieren. Sie kann vor dem Handshake mit ` setCaCertificates()` oder mit ` addCaCertificate()` und ` addCaCertificates()` geändert werden.

Siehe auch setCaCertificates(), addCaCertificate() und addCaCertificates().

QList<QSslCipher> QSslConfiguration::ciphers() const

Gibt die aktuelle kryptografische Verschlüsselungssuite dieser Verbindung zurück. Diese Liste wird während der Handshake-Phase zur Auswahl einer Sitzungsverschlüsselung verwendet. Die zurückgegebene Liste der Verschlüsselungen ist nach absteigender Präferenz sortiert. (D. h., die erste Verschlüsselung in der Liste ist die am meisten bevorzugte.) Die Sitzungsverschlüsselung ist die erste in der Liste, die auch vom Gegenüber unterstützt wird.

Standardmäßig kann in der Handshake-Phase jede der von den SSL-Bibliotheken dieses Systems unterstützten Verschlüsselungen ausgewählt werden, was von System zu System variieren kann. Die Liste der von den SSL-Bibliotheken dieses Systems unterstützten Verschlüsselungen wird von ` supportedCiphers()` zurückgegeben. Sie können die Liste der Verschlüsselungsalgorithmen, die für die Auswahl der Sitzungsverschlüsselung für diesen Socket verwendet werden, einschränken, indem Sie ` setCiphers()` mit einer Teilmenge der unterstützten Verschlüsselungsalgorithmen aufrufen. Sie können wieder zur Verwendung des gesamten Satzes zurückkehren, indem Sie ` setCiphers()` mit der von ` supportedCiphers()` zurückgegebenen Liste aufrufen.

Siehe auch setCiphers() und supportedCiphers().

[static] QSslConfiguration QSslConfiguration::defaultConfiguration()

Gibt die Standard-SSL-Konfiguration zurück, die bei neuen SSL-Verbindungen verwendet werden soll.

Die Standard-SSL-Konfiguration besteht aus:

  • kein lokales Zertifikat und kein privater Schlüssel
  • Protokoll SecureProtocols
  • der standardmäßigen CA-Zertifikatsliste des Systems
  • der Verschlüsselungsliste, die der Liste der von den SSL-Bibliotheken unterstützten SSL-Verschlüsselungen mit einer Schlüssellänge von mindestens 128 Bit entspricht

Siehe auch supportedCiphers() und setDefaultConfiguration().

[static] QSslConfiguration QSslConfiguration::defaultDtlsConfiguration()

Gibt die Standard-DTLS-Konfiguration zurück, die bei neuen DTLS-Verbindungen verwendet werden soll.

Die Standard-DTLS-Konfiguration besteht aus:

  • kein lokales Zertifikat und kein privater Schlüssel
  • Protokoll „DtlsV1_2OrLater“
  • der standardmäßigen CA-Zertifikatsliste des Systems
  • der Verschlüsselungsliste, die der Liste der von den SSL-Bibliotheken unterstützten TLS 1.2-Verschlüsselungen entspricht, die 128 oder mehr geheime Bits für die Verschlüsselung verwenden.

Siehe auch setDefaultDtlsConfiguration().

QSslDiffieHellmanParameters QSslConfiguration::diffieHellmanParameters() const

Ruft den aktuellen Satz von Diffie-Hellman-Parametern ab.

Wenn keine Diffie-Hellman-Parameter festgelegt wurden, verwendet das „ QSslConfiguration “-Objekt standardmäßig die 2048-Bit-MODP-Gruppe aus RFC 3526.

Hinweis: Die Standardparameter können sich in zukünftigen Qt-Versionen ändern. Bitte überprüfen Sie die Dokumentation der von Ihnen verwendeten Qt-Version, um zu erfahren, welche Standardwerte diese Version verwendet.

Siehe auch „ setDiffieHellmanParameters()“.

bool QSslConfiguration::dtlsCookieVerificationEnabled() const

Diese Funktion gibt „true“ zurück, wenn die DTLS-Cookie-Überprüfung für einen serverseitigen Socket aktiviert wurde.

Siehe auch „ setDtlsCookieVerificationEnabled()“.

QList<QSslEllipticCurve> QSslConfiguration::ellipticCurves() const

Gibt die aktuelle Liste der elliptischen Kurven dieser Verbindung zurück. Diese Liste wird während der Handshake-Phase zur Auswahl einer elliptischen Kurve verwendet (bei Verwendung einer Verschlüsselung mit elliptischen Kurven). Die zurückgegebene Liste der Kurven ist nach absteigender Präferenz sortiert (d. h., die erste Kurve in der Liste ist die am meisten bevorzugte).

Standardmäßig kann in der Handshake-Phase jede der von den SSL-Bibliotheken dieses Systems unterstützten Kurven ausgewählt werden, was von System zu System variieren kann. Die Liste der von den SSL-Bibliotheken dieses Systems unterstützten Kurven wird von `QSslSocket::supportedEllipticCurves()` zurückgegeben.

Sie können die Liste der Kurven, die für die Auswahl der Sitzungsverschlüsselung für diesen Socket verwendet werden, einschränken, indem Sie ` setEllipticCurves()` mit einer Teilmenge der unterstützten Verschlüsselungen aufrufen. Sie können wieder zur Verwendung des gesamten Satzes zurückkehren, indem Sie ` setEllipticCurves()` mit der von `QSslSocket::supportedEllipticCurves()` zurückgegebenen Liste aufrufen.

Siehe auch ` setEllipticCurves`.

QSslKey QSslConfiguration::ephemeralServerKey() const

Gibt den temporären Serverschlüssel zurück, der für Verschlüsselungsalgorithmen mit Forward Secrecy verwendet wird, z. B. DHE-RSA-AES128-SHA.

Der temporäre Schlüssel ist nur verfügbar, wenn der Client-Modus verwendet wird, d. h. „ QSslSocket::SslClientMode “. Im Server-Modus oder bei Verwendung eines Verschlüsselungsalgorithmus ohne Forward Secrecy wird ein Nullschlüssel zurückgegeben. Der temporäre Server-Schlüssel wird vor dem Auslösen des Signals „encrypted()“ gesetzt.

[since 6.0] bool QSslConfiguration::handshakeMustInterruptOnError() const

Gibt „true“ zurück, wenn ein Verifizierungs-Callback die Funktion „ QSslSocket::handshakeInterruptedOnError()“ vorzeitig aufruft, noch bevor der Handshake abgeschlossen ist.

Hinweis: Diese Funktion gibt für alle Backends außer OpenSSL immer „false“ zurück.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch ` setHandshakeMustInterruptOnError()`, ` QSslSocket::handshakeInterruptedOnError()` und ` QSslSocket::continueInterruptedHandshake()`.

bool QSslConfiguration::isNull() const

Gibt „ true “ zurück, wenn es sich um ein Null-Objekt vom Typ „ QSslConfiguration “ handelt.

Ein ` QSslConfiguration `-Objekt ist null, wenn es mit der Standardkonstruktion initialisiert wurde und keine Setter-Methoden aufgerufen wurden.

Siehe auch „ setProtocol()“, „ setLocalCertificate()“, „ setPrivateKey()“, „ setCiphers()“ und „ setCaCertificates()“.

QSslCertificate QSslConfiguration::localCertificate() const

Gibt das Zertifikat zurück, das dem Gegenüber während des SSL-Handshake-Prozesses vorgelegt werden soll.

Siehe auch „ setLocalCertificate()“.

QList<QSslCertificate> QSslConfiguration::localCertificateChain() const

Gibt die Zertifikatskette zurück, die dem Gegenüber während des SSL-Handshake-Prozesses vorgelegt werden soll.

Siehe auch setLocalCertificateChain() und localCertificate().

[since 6.0] bool QSslConfiguration::missingCertificateIsFatal() const

Gibt „true“ zurück, wenn Fehler mit dem Code „ QSslError::NoPeerCertificate “ nicht ignoriert werden können.

Hinweis: Gibt für alle TLS-Backends außer OpenSSLimmer „false“ zurück.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch ` QSslSocket::ignoreSslErrors()` und ` setMissingCertificateIsFatal()`.

QByteArray QSslConfiguration::nextNegotiatedProtocol() const

Diese Funktion gibt das mit dem Server ausgehandelte Protokoll zurück, sofern die TLS-Erweiterung „Next Protocol Negotiation“ (NPN) oder „Application-Layer Protocol Negotiation“ (ALPN) aktiviert war. Damit die NPN/ALPN-Erweiterung aktiviert wird, muss vor dem Verbindungsaufbau zum Server explizit die Funktion ` setAllowedNextProtocols()` aufgerufen werden.

Wenn kein Protokoll ausgehandelt werden konnte oder die Erweiterung nicht aktiviert war, gibt diese Funktion ein ` QByteArray ` zurück, das den Wert `null` hat.

Siehe auch „ setAllowedNextProtocols()“ und „ nextProtocolNegotiationStatus()“.

QSslConfiguration::NextProtocolNegotiationStatus QSslConfiguration::nextProtocolNegotiationStatus() const

Diese Funktion gibt den Status der „Next Protocol Negotiation“ (NPN) oder der „Application-Layer Protocol Negotiation“ (ALPN) zurück. Wenn die Funktion nicht über setAllowedNextProtocols() aktiviert wurde, gibt diese Funktion „ NextProtocolNegotiationNone “ zurück. Der Status wird vor dem Auslösen des Signals „encrypted()“ gesetzt.

Siehe auch „ setAllowedNextProtocols()“, „ allowedNextProtocols()“, „ nextNegotiatedProtocol()“ und „ QSslConfiguration::NextProtocolNegotiationStatus “.

bool QSslConfiguration::ocspStaplingEnabled() const

Gibt „true“ zurück, wenn OCSP-Stapling über setOCSPStaplingEnabled() aktiviert wurde, andernfalls „false“ (was der Standardwert ist).

Siehe auch ` setOcspStaplingEnabled()`.

QSslCertificate QSslConfiguration::peerCertificate() const

Gibt das digitale Zertifikat des Gegenübers (d. h. das direkte Zertifikat des Hosts, mit dem eine Verbindung besteht) zurück oder ein Null-Zertifikat, falls das Gegenüber kein Zertifikat zugewiesen hat.

Das Peer-Zertifikat wird während der Handshake-Phase automatisch überprüft, daher wird diese Funktion normalerweise verwendet, um das Zertifikat zur Anzeige oder für Verbindungsdiagnosezwecke abzurufen. Es enthält Informationen über den Peer, darunter dessen Hostnamen, den Zertifikatsaussteller und den öffentlichen Schlüssel des Peers.

Da das Peer-Zertifikat während der Handshake-Phase festgelegt wird, ist es sicher, über einen Slot, der mit dem Signal „ QSslSocket::sslErrors()“, dem Signal „ QNetworkReply::sslErrors()“ oder dem Signal „ QSslSocket::encrypted()“ verbunden ist, auf das Peer-Zertifikat zuzugreifen.

Wird ein Null-Zertifikat zurückgegeben, kann dies bedeuten, dass der SSL-Handshake fehlgeschlagen ist, dass der Host, mit dem Sie verbunden sind, kein Zertifikat besitzt oder dass keine Verbindung besteht.

Wenn Sie die vollständige Zertifikatskette des Gegenübers überprüfen möchten, verwenden Sie „ peerCertificateChain()“, um alle Zertifikate auf einmal abzurufen.

Siehe auch peerCertificateChain(), QSslSocket::sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::sslErrors() und QNetworkReply::ignoreSslErrors().

QList<QSslCertificate> QSslConfiguration::peerCertificateChain() const

Gibt die Kette der digitalen Zertifikate des Peers zurück, beginnend mit dem unmittelbaren Zertifikat des Peers und endend mit dem Zertifikat der Zertifizierungsstelle.

Peer-Zertifikate werden während der Handshake-Phase automatisch überprüft. Diese Funktion wird normalerweise verwendet, um Zertifikate zur Anzeige abzurufen oder zur Durchführung von Verbindungsdiagnosen. Zertifikate enthalten Informationen über den Peer und die Zertifikatsaussteller, darunter Hostname, Namen der Aussteller und öffentliche Schlüssel der Aussteller.

Da das Peer-Zertifikat während der Handshake-Phase festgelegt wird, ist es sicher, über einen Slot, der mit dem Signal „ QSslSocket::sslErrors()“, „ QNetworkReply::sslErrors()“ oder „ QSslSocket::encrypted()“ verbunden ist, auf das Peer-Zertifikat zuzugreifen.

Wird eine leere Liste zurückgegeben, kann dies bedeuten, dass der SSL-Handshake fehlgeschlagen ist, dass der Host, mit dem Sie verbunden sind, kein Zertifikat besitzt oder dass keine Verbindung besteht.

Wenn Sie nur das unmittelbare Zertifikat des Gegenübers abrufen möchten, verwenden Sie „ peerCertificate()“.

Siehe auch „ peerCertificate()“, „ QSslSocket::sslErrors()“, „ QSslSocket::ignoreSslErrors()“, „ QNetworkReply::sslErrors()“ und „ QNetworkReply::ignoreSslErrors()“.

int QSslConfiguration::peerVerifyDepth() const

Gibt die maximale Anzahl von Zertifikaten in der Zertifikatskette des Peers zurück, die während der SSL-Handshake-Phase überprüft werden sollen, oder 0 (Standardwert), wenn keine maximale Tiefe festgelegt wurde, was bedeutet, dass die gesamte Zertifikatskette überprüft werden soll.

Die Zertifikate werden in der Reihenfolge ihrer Ausstellung geprüft, beginnend mit dem eigenen Zertifikat des Peers, gefolgt vom Zertifikat seines Ausstellers und so weiter.

Siehe auch setPeerVerifyDepth() und peerVerifyMode().

QSslSocket::PeerVerifyMode QSslConfiguration::peerVerifyMode() const

Gibt den Verifizierungsmodus zurück. Dieser Modus legt fest, ob „ QSslSocket “ ein Zertifikat vom Gegenüber anfordern soll (d. h., ob der Client ein Zertifikat vom Server anfordert oder der Server ein Zertifikat vom Client) und ob verlangt werden soll, dass dieses Zertifikat gültig ist.

Der Standardmodus ist „AutoVerifyPeer“, der „ QSslSocket “ anweist, für Clients „VerifyPeer“ und für Server „QueryPeer“ zu verwenden.

Siehe auch „ setPeerVerifyMode()“.

QByteArray QSslConfiguration::preSharedKeyIdentityHint() const

Gibt den Identitätshinweis zurück.

Siehe auch ` setPreSharedKeyIdentityHint()`.

QSslKey QSslConfiguration::privateKey() const

Gibt den dieser Verbindung zugewiesenen „ SSL key “ zurück oder einen Null-Schlüssel, falls noch keiner zugewiesen wurde.

Siehe auch „ setPrivateKey()“ und „ localCertificate()“.

QSsl::SslProtocol QSslConfiguration::protocol() const

Gibt die Protokolleinstellung für diese SSL-Konfiguration zurück.

Siehe auch ` setProtocol()`.

QSslCipher QSslConfiguration::sessionCipher() const

Gibt die kryptografische Verschlüsselungs cipher des Sockets zurück oder eine Null-Verschlüsselung, falls die Verbindung nicht verschlüsselt ist. Die Verschlüsselung des Sockets für die Sitzung wird während der Handshake-Phase festgelegt. Die Verschlüsselung wird zum Ver- und Entschlüsseln der über den Socket übertragenen Daten verwendet.

Die SSL-Infrastruktur stellt außerdem Funktionen zur Verfügung, mit denen eine geordnete Liste von Verschlüsselungsalgorithmen festgelegt werden kann, aus der die Handshake-Phase schließlich den Sitzungsalgorithmus auswählt. Diese geordnete Liste muss bereits vorhanden sein, bevor die Handshake-Phase beginnt.

Siehe auch ciphers(), setCiphers() und supportedCiphers().

QSsl::SslProtocol QSslConfiguration::sessionProtocol() const

Gibt das SSL/TLS-Protokoll des Sockets zurück oder „UnknownProtocol“, wenn die Verbindung nicht verschlüsselt ist. Das Protokoll des Sockets für die Sitzung wird während der Handshake-Phase festgelegt.

Siehe auch protocol() und setProtocol().

QByteArray QSslConfiguration::sessionTicket() const

Wenn „ QSsl::SslOptionDisableSessionPersistence “ deaktiviert wurde, gibt diese Funktion das beim SSL-Handshake verwendete Session-Ticket im ASN.1-Format zurück, das sich beispielsweise zur Speicherung auf Festplatte eignet. Wenn kein Session-Ticket verwendet wurde oder „ QSsl::SslOptionDisableSessionPersistence “ nicht deaktiviert wurde, gibt diese Funktion ein leeres „ QByteArray “ zurück.

Hinweis: Achten Siebeim Speichern des Session-Tickets auf Festplatte oder Ähnlichem darauf, die Sitzung nicht einem potenziellen Angreifer preiszugeben, da die Kenntnis der Sitzung das Abhören von Daten ermöglicht, die mit den Sitzungsparametern verschlüsselt wurden.

Siehe auch setSessionTicket(), QSsl::SslOptionDisableSessionPersistence, setSslOption() und QSslSocket::newSessionTicketReceived().

int QSslConfiguration::sessionTicketLifeTimeHint() const

Wenn „ QSsl::SslOptionDisableSessionPersistence “ deaktiviert war, gibt diese Funktion den vom Server gesendeten Hinweis zur Lebensdauer des Session-Tickets zurück (der möglicherweise 0 ist). Wenn der Server kein Session-Ticket gesendet hat (z. B. bei der Wiederaufnahme einer Sitzung oder wenn der Server dies nicht unterstützt) oder „ QSsl::SslOptionDisableSessionPersistence “ nicht deaktiviert war, gibt diese Funktion -1 zurück.

Siehe auch sessionTicket(), QSsl::SslOptionDisableSessionPersistence, setSslOption() und QSslSocket::newSessionTicketReceived().

void QSslConfiguration::setAllowedNextProtocols(const QList<QByteArray> &protocols)

Diese Funktion legt die zulässigen „ protocols “ fest, die über die TLS-Erweiterungen „Next Protocol Negotiation“ (NPN) oder „Application-Layer Protocol Negotiation“ (ALPN) mit dem Server ausgehandelt werden sollen; jedes Element in „ protocols “ muss ein zulässiges Protokoll definieren. Die Funktion muss vor dem Verbindungsaufbau explizit aufgerufen werden, um die NPN/ALPN-Erweiterung im SSL-Handshake zu senden. Ob die Aushandlung erfolgreich war, kann über ` nextProtocolNegotiationStatus()` abgefragt werden.

Siehe auch nextNegotiatedProtocol(), nextProtocolNegotiationStatus(), allowedNextProtocols() und QSslConfiguration::NextProtocolHttp1_1.

void QSslConfiguration::setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = QMap<QByteArray, QVariant>())

Setzt oder löscht die backend-spezifische Konfiguration.

Ohne den Parameter „ backendConfiguration “ löscht diese Funktion die backend-spezifische Konfiguration. Weitere Informationen zu den unterstützten Optionen finden Sie in der Dokumentation zu setBackendConfigurationOption().

Siehe auch backendConfiguration() und setBackendConfigurationOption().

void QSslConfiguration::setBackendConfigurationOption(const QByteArray &name, const QVariant &value)

Setzt die Option „ name “ in der backend-spezifischen Konfiguration auf „ value “.

Die vom OpenSSL-Backend (>= 1.0.2) unterstützten Optionen sind in der Dokumentation zu den unterstützten Befehlen in der Konfigurationsdatei aufgeführt. Der erwartete Typ für den Parameter „ value “ ist für alle Optionen ein „ QByteArray “. Die Beispiele zeigen, wie einige der Optionen verwendet werden.

Hinweis: Die backend-spezifische Konfiguration wird nach der allgemeinen Konfiguration angewendet. Wird eine allgemeine Konfigurationsoption über die backend-spezifische Konfiguration erneut festgelegt, wird die allgemeine Konfigurationsoption überschrieben.

Siehe auch ` backendConfiguration()` und ` setBackendConfiguration()`.

void QSslConfiguration::setCaCertificates(const QList<QSslCertificate> &certificates)

Legt die CA-Zertifikatsdatenbank dieses Sockets auf „ certificates “ fest. Die Zertifikatsdatenbank muss vor dem SSL-Handshake eingerichtet werden. Die CA-Zertifikatsdatenbank wird vom Socket während der Handshake-Phase verwendet, um das Zertifikat des Gegenübers zu validieren.

Hinweis: In der Standardkonfiguration wird die systemeigene CA-Zertifikatsdatenbank verwendet. Ist diese nicht verfügbar (wie es unter iOS häufig der Fall ist), ist die Standarddatenbank leer.

Siehe auch caCertificates(), addCaCertificates() und addCaCertificate().

void QSslConfiguration::setCiphers(const QList<QSslCipher> &ciphers)

Legt die kryptografische Verschlüsselungssuite für diesen Socket auf „ ciphers “ fest, die eine Teilmenge der Verschlüsselungsalgorithmen aus der von ` supportedCiphers()` zurückgegebenen Liste enthalten muss.

Die Einschränkung der Verschlüsselungssuite muss vor der Handshake-Phase erfolgen, in der die Sitzungsverschlüsselung ausgewählt wird.

Siehe auch ciphers() und supportedCiphers().

[since 6.0] void QSslConfiguration::setCiphers(const QString &ciphers)

Legt die kryptografische Verschlüsselungssuite für diese Konfiguration auf „ ciphers “ fest, wobei es sich um eine durch Doppelpunkte getrennte Liste von Namen von Verschlüsselungssuiten handelt. Die Verschlüsselungsalgorithmen sind in der Reihenfolge ihrer Präferenz aufgeführt, beginnend mit dem am meisten bevorzugten Algorithmus. Jeder Verschlüsselungsname in „ ciphers “ muss der Name einer Verschlüsselung aus der Liste sein, die von „ supportedCiphers()“ zurückgegeben wird. Die Einschränkung der Verschlüsselungssuite muss vor der Handshake-Phase erfolgen, in der die Sitzungsverschlüsselung ausgewählt wird.

Hinweis: Beim Schannel-Backend wird die Reihenfolge der Verschlüsselungen ignoriert, und Schannel wählt während des Handshakes die sicherste aus.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ ciphers()“.

[static] void QSslConfiguration::setDefaultConfiguration(const QSslConfiguration &configuration)

Legt die Standard-SSL-Konfiguration für neue SSL-Verbindungen auf „ configuration “ fest. Bestehende Verbindungen sind von diesem Aufruf nicht betroffen.

Siehe auch supportedCiphers() und defaultConfiguration().

[static] void QSslConfiguration::setDefaultDtlsConfiguration(const QSslConfiguration &configuration)

Legt die Standard-DTLS-Konfiguration für neue DTLS-Verbindungen auf „ configuration “ fest. Bestehende Verbindungen sind von diesem Aufruf nicht betroffen.

Siehe auch defaultDtlsConfiguration().

void QSslConfiguration::setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams)

Legt einen benutzerdefinierten Satz von Diffie-Hellman-Parametern fest, die von diesem Socket verwendet werden sollen, wenn er als Server für dhparams fungiert.

Wenn keine Diffie-Hellman-Parameter festgelegt wurden, verwendet das QSslConfiguration -Objekt standardmäßig die 2048-Bit-MODP-Gruppe aus RFC 3526.

Seit Version 6.7 können Sie einen leeren Diffie-Hellman-Parameter angeben, um die automatische Auswahl zu nutzen (siehe SSL_CTX_set_dh_auto von OpenSSL), sofern das TLS-Backend dies unterstützt.

Hinweis: Die Standardparameter können sich in zukünftigen Qt-Versionen ändern. Bitte überprüfen Sie die Dokumentation der von Ihnen verwendeten Qt-Version, um zu erfahren, welche Standardwerte diese Version verwendet.

Siehe auch diffieHellmanParameters().

void QSslConfiguration::setDtlsCookieVerificationEnabled(bool enable)

Diese Funktion aktiviert die DTLS-Cookie-Überprüfung, wenn „ enable “ auf „true“ gesetzt ist.

Siehe auch dtlsCookieVerificationEnabled().

void QSslConfiguration::setEllipticCurves(const QList<QSslEllipticCurve> &curves)

Setzt die Liste der von diesem Socket zu verwendenden elliptischen Kurven auf „ curves “, die eine Teilmenge der Kurven aus der von „ supportedEllipticCurves()“ zurückgegebenen Liste enthalten muss.

Die Einschränkung der elliptischen Kurven muss vor der Handshake-Phase erfolgen, in der die Sitzungsverschlüsselung ausgewählt wird.

Siehe auch ellipticCurves.

[since 6.0] void QSslConfiguration::setHandshakeMustInterruptOnError(bool interrupt)

Wenn „ interrupt “ auf „true“ gesetzt ist und das zugrunde liegende Backend diese Option unterstützt, werden Fehler, die bei der Zertifikatsüberprüfung festgestellt werden, sofort durch Auslösen von „ QSslSocket::handshakeInterruptedOnError()“ gemeldet. Dies ermöglicht es, den noch nicht abgeschlossenen Handshake abzubrechen und eine entsprechende Warnmeldung an den Gegenpart zu senden. In diesem Fall sind keine besonderen Maßnahmen seitens der Anwendung erforderlich. „ QSslSocket “ schließt die Verbindung nach dem Senden der Warnmeldung. Wenn die Anwendung nach der Überprüfung des Fehlers den Handshake fortsetzen möchte, muss sie „ QSslSocket::continueInterruptedHandshake()“ aus ihrer Slot-Funktion aufrufen. Die Signal-Slot-Verbindung muss direkt sein.

Hinweis: Wenn die Unterbrechung des Handshakes aktiviert ist, werden Fehler, die andernfalls von ` QSslSocket::peerVerifyError()` gemeldet würden, stattdessen nur von ` QSslSocket::handshakeInterruptedOnError()` gemeldet.

Hinweis: Selbst wenn der Handshake fortgesetzt wurde, werden diese Fehler beim Auslösen des Signals ` QSslSocket::sslErrors()` gemeldet (und müssen daher im entsprechenden Funktions-Slot ignoriert werden).

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ handshakeMustInterruptOnError()“, „ QSslSocket::handshakeInterruptedOnError()“ und „ QSslSocket::continueInterruptedHandshake()“.

[since 6.12] void QSslConfiguration::setKeyingMaterial(const QList<QSslKeyingMaterial> &keyMaterial)

Legt die Konfiguration des Schlüsselmaterials für diese SSL-Verbindung auf „ keyMaterial “ fest.

Dadurch wird der TLS-Exporter-Mechanismus aktiviert, der es der Anwendung ermöglicht, zusätzliches kryptografisches Material aus der ausgehandelten TLS-Sitzung abzuleiten. Der Exporter ist in RFC 5705 und RFC 8446 definiert.

Die Konfiguration muss vor Beginn des TLS-Handshakes festgelegt werden. Der Aufruf dieser Funktion bei einer bereits verschlüsselten Verbindung hat keine Auswirkung.

Jeder Eintrag „ QSslKeyingMaterial “ gibt die Exporter-Bezeichnung, einen optionalen Kontextwert und die Länge des abzuleitenden Schlüsselmaterials an. Nach einem erfolgreichen Handshake kann das angeforderte Schlüsselmaterial aus der SSL-Verbindung abgerufen werden.

Das exportierte Schlüsselmaterial ist für die jeweilige TLS-Sitzung eindeutig und kann sicher zur Ableitung von Schlüsseln für Protokolle auf Anwendungsebene verwendet werden, die eine kryptografische Bindung an den zugrunde liegenden TLS-Kanal erfordern.

Hinweis: Diese Funktion ist backend-spezifisch und erfordert derzeit OpenSSL-Unterstützung.

Warnung: Anwendungen sind dafür verantwortlich, eindeutige und kollisionsresistente Exporter-Labels zu definieren. Die Wiederverwendung von Labels oder Kontexten für unterschiedliche Zwecke kann zu subtilen Sicherheitslücken führen.

Diese Funktion wurde in Qt 6.12 eingeführt.

Siehe auch ` takeKeyingMaterial()`.

void QSslConfiguration::setLocalCertificate(const QSslCertificate &certificate)

Legt fest, dass dem Gegenüber während des SSL-Handshakes das Zertifikat „ certificate “ vorgelegt wird.

Das Festlegen des Zertifikats nach dem Aufbau der Verbindung hat keine Auswirkung.

Ein Zertifikat ist das im SSL-Prozess verwendete Identifikationsmittel. Das lokale Zertifikat wird von der Gegenstelle verwendet, um die Identität des lokalen Benutzers anhand ihrer Liste von Zertifizierungsstellen zu überprüfen. In den meisten Fällen, wie beispielsweise beim Surfen im HTTP-Web, identifizieren sich nur Server gegenüber den Clients, sodass der Client kein Zertifikat sendet.

Siehe auch localCertificate().

void QSslConfiguration::setLocalCertificateChain(const QList<QSslCertificate> &localChain)

Legt fest, dass die Zertifikatskette, die dem Gegenüber während des SSL-Handshakes vorgelegt wird, „ localChain “ lautet.

Das Festlegen der Zertifikatskette nach dem Aufbau der Verbindung hat keine Auswirkungen.

Ein Zertifikat ist das im SSL-Prozess verwendete Identifikationsmittel. Das lokale Zertifikat wird von der Gegenstelle verwendet, um die Identität des lokalen Benutzers anhand ihrer Liste von Zertifizierungsstellen zu überprüfen. In den meisten Fällen, beispielsweise beim Surfen im HTTP-Web, identifizieren sich nur Server gegenüber den Clients, sodass der Client kein Zertifikat sendet.

Im Gegensatz zu ` QSslConfiguration::setLocalCertificate()` können Sie mit dieser Methode beliebige Zwischenzertifikate angeben, die zur Validierung Ihres Zertifikats erforderlich sind. Der erste Eintrag in der Liste muss das Endzertifikat sein.

Siehe auch ` localCertificateChain()`.

[since 6.0] void QSslConfiguration::setMissingCertificateIsFatal(bool cannotRecover)

Wenn „ cannotRecover “ auf „true“ gesetzt ist und der verwendete Verifizierungsmodus „ QSslSocket::VerifyPeer “ oder „ QSslSocket::AutoVerifyPeer “ (für einen clientseitigen Socket) ist, wird das fehlende Zertifikat des Gegenübers als nicht behebbarer Fehler behandelt, der nicht ignoriert werden kann. Vor dem Schließen der Verbindung wird eine entsprechende Warnmeldung an den Gegenüber gesendet.

Hinweis: Nur verfügbar, wenn Qt mit dem OpenSSL-Backend konfiguriert und kompiliert wurde.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch QSslSocket::ignoreSslErrors(), QSslSocket::PeerVerifyMode und missingCertificateIsFatal().

void QSslConfiguration::setOcspStaplingEnabled(bool enabled)

Wenn „ enabled “ auf „true“ gesetzt ist, sendet der Client „ QSslSocket “ bei der Einleitung eines Handshakes eine Zertifikatsstatusabfrage an seinen Gegenpart. Während des Handshakes überprüft „ QSslSocket “ die Antwort des Servers. Dieser Wert muss vor Beginn des Handshakes festgelegt werden.

Siehe auch ocspStaplingEnabled().

void QSslConfiguration::setPeerVerifyDepth(int depth)

Legt die maximale Anzahl der Zertifikate in der Zertifikatskette des Peers fest, die während der SSL-Handshake-Phase überprüft werden sollen: depth. Die Einstellung „0“ bedeutet, dass keine maximale Tiefe festgelegt ist, was darauf hinweist, dass die gesamte Zertifikatskette überprüft werden soll.

Die Zertifikate werden in der Reihenfolge ihrer Ausstellung geprüft, beginnend mit dem eigenen Zertifikat des Peers, gefolgt vom Zertifikat seines Ausstellers und so weiter.

Siehe auch peerVerifyDepth() und setPeerVerifyMode().

void QSslConfiguration::setPeerVerifyMode(QSslSocket::PeerVerifyMode mode)

Stellt den Verifizierungsmodus auf „ mode “ ein. Dieser Modus legt fest, ob „ QSslSocket “ ein Zertifikat vom Gegenüber anfordern soll (d. h., ob der Client ein Zertifikat vom Server anfordert oder der Server ein Zertifikat vom Client) und ob verlangt werden soll, dass dieses Zertifikat gültig ist.

Der Standardmodus ist „AutoVerifyPeer“, der „ QSslSocket “ anweist, für Clients „VerifyPeer“ und für Server „QueryPeer“ zu verwenden.

Siehe auch peerVerifyMode().

void QSslConfiguration::setPreSharedKeyIdentityHint(const QByteArray &hint)

Setzt den Identitätshinweis für eine Authentifizierung mit vorab geteiltem Schlüssel auf „ hint “. Dies wirkt sich auf den nächsten initiierten Handshake aus; der Aufruf dieser Funktion bei einem bereits verschlüsselten Socket hat keine Auswirkungen auf den Identitätshinweis des Sockets.

Der Identitätshinweis wird ausschließlich in „ QSslSocket::SslServerMode “ verwendet!

Siehe auch „ preSharedKeyIdentityHint()“.

void QSslConfiguration::setPrivateKey(const QSslKey &key)

Legt den privaten Schlüssel der Verbindung („ key “) auf „ key “ fest. Der private Schlüssel und das lokale Zertifikat („ certificate “) werden von Clients und Servern verwendet, die ihre Identität gegenüber SSL-Partnern nachweisen müssen.

Sowohl der Schlüssel als auch das lokale Zertifikat sind erforderlich, wenn Sie einen SSL-Server-Socket erstellen. Wenn Sie einen SSL-Client-Socket erstellen, sind der Schlüssel und das lokale Zertifikat erforderlich, falls sich Ihr Client gegenüber einem SSL-Server identifizieren muss.

Siehe auch privateKey() und setLocalCertificate().

void QSslConfiguration::setProtocol(QSsl::SslProtocol protocol)

Legt die Protokolleinstellung für diese Konfiguration auf „ protocol “ fest.

Das Festlegen des Protokolls, nachdem die Verbindung bereits hergestellt wurde, hat keine Auswirkung.

Siehe auch protocol().

void QSslConfiguration::setSessionTicket(const QByteArray &sessionTicket)

Legt das Session-Ticket fest, das bei einem SSL-Handshake verwendet werden soll. Damit dies funktioniert, muss „ QSsl::SslOptionDisableSessionPersistence “ deaktiviert sein, und „ sessionTicket “ muss im ASN.1-Format vorliegen, wie es von „ sessionTicket()“ zurückgegeben wird.

Siehe auch sessionTicket(), QSsl::SslOptionDisableSessionPersistence, setSslOption() und QSslSocket::newSessionTicketReceived().

void QSslConfiguration::setSslOption(QSsl::SslOption option, bool on)

Aktiviert oder deaktiviert eine SSL-Kompatibilitäts option. Wenn „ on “ auf „true“ gesetzt ist, ist „ option “ aktiviert. Wenn „ on “ auf „false“ gesetzt ist, ist „ option “ deaktiviert.

Siehe auch testSslOption().

[static] QList<QSslCipher> QSslConfiguration::supportedCiphers()

Gibt die Liste der von diesem System unterstützten kryptografischen Verschlüsselungsverfahren zurück. Diese Liste wird von den SSL-Bibliotheken des Systems festgelegt und kann von System zu System variieren.

Siehe auch ciphers() und setCiphers().

[static] QList<QSslEllipticCurve> QSslConfiguration::supportedEllipticCurves()

Gibt die Liste der von diesem System unterstützten elliptischen Kurven zurück. Diese Liste wird von den SSL-Bibliotheken des Systems festgelegt und kann von System zu System variieren.

Siehe auch ellipticCurves() und setEllipticCurves().

[noexcept] void QSslConfiguration::swap(QSslConfiguration &other)

Ersetzt diese SSL-Konfigurationsinstanz durch „ other “. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

[static] QList<QSslCertificate> QSslConfiguration::systemCaCertificates()

Diese Funktion stellt die vom Betriebssystem bereitgestellte CA-Zertifikatsdatenbank zur Verfügung. Die von dieser Funktion zurückgegebene CA-Zertifikatsdatenbank wird verwendet, um die von caCertificates() zurückgegebene Datenbank auf dem Standard- QSslConfiguration zu initialisieren.

Siehe auch caCertificates(), setCaCertificates(), defaultConfiguration(), addCaCertificate() und addCaCertificates().

[since 6.12] QList<QSslKeyingMaterial> QSslConfiguration::takeKeyingMaterial()

Gibt die Konfiguration des Schlüsselmaterials für diese SSL-Verbindung zurück.

Schlüsselmaterial ermöglicht es einer Anwendung, zusätzliches kryptografisches Material aus einer etablierten TLS-Sitzung abzuleiten, wobei der in RFC 5705 und RFC 8446 definierte TLS-Exporter-Mechanismus zum Einsatz kommt.

Jeder Eintrag in der zurückgegebenen Liste beschreibt eine Anforderung für exportiertes Schlüsselmaterial, einschließlich der Exporter-Bezeichnung, des optionalen Kontexts und der gewünschten Länge der exportierten Daten. Das eigentliche Schlüsselmaterial steht erst nach einem erfolgreichen Handshake zur Verfügung.

Exportiertes Schlüsselmaterial ist an die jeweilige TLS-Sitzung gebunden und kryptografisch unabhängig von den für die Verschlüsselung verwendeten Sitzungsschlüsseln. Es kann für anwendungsspezifische Zwecke wie Kanalbindung oder Schlüsselableitung für Protokolle verwendet werden, die auf TLS aufsetzen.

Wurde keine Konfiguration für das Schlüsselmaterial festgelegt, gibt diese Funktion eine leere Liste zurück.

Die Werte werden übergeben und nicht gemeinsam genutzt: Die in dieser Konfiguration verbleibenden Einträge sind wertlose „ clones “, sodass sie weiterhin verwendet werden können, um dasselbe Schlüsselmaterial erneut anzufordern. Nur die zurückgegebenen Einträge enthalten die abgeleiteten Werte.

Hinweis: Die Verfügbarkeit von Schlüsselmaterial hängt vom TLS-Backend ab. Derzeit wird diese Funktion nur bei Verwendung von OpenSSL unterstützt.

Warnung: Exportiertes Schlüsselmaterial muss mit Vorsicht behandelt werden. Eine unsachgemäße Verwendung kann die Sicherheit der TLS-Sitzung oder übergeordneter Protokolle gefährden.

Diese Funktion wurde in Qt 6.12 eingeführt.

Siehe auch ` setKeyingMaterial()`.

[since 6.12] std::optional<QSslKeyingMaterial> QSslConfiguration::takeKeyingMaterial(const QSslKeyingMaterial &material)

Gibt das abgeleitete Schlüsselmaterial für die angegebene Anfrage „ material “ zurück.

Gibt den Eintrag aus der Schlüsselmaterialliste zurück, der hinsichtlich Label, Kontext und angeforderter Größe mit ` material ` übereinstimmt, oder ` std::nullopt `, falls kein passender Eintrag gefunden wurde.

Wird ein passender Eintrag gefunden und ist der TLS-Handshake erfolgreich abgeschlossen, enthält die Methode ` QSslKeyingMaterial::value()` des zurückgegebenen Objekts das abgeleitete Schlüsselmaterial.

Der Wert kann nur einmal abgerufen werden: Der verbleibende Eintrag ist ein wertloses ` clone`, das weiterhin mit material übereinstimmt.

Diese Funktion wurde in Qt 6.12 eingeführt.

Siehe auch ` takeKeyingMaterial()` und ` setKeyingMaterial()`.

bool QSslConfiguration::testSslOption(QSsl::SslOption option) const

Gibt „ true “ zurück, wenn die angegebene SSL-Kompatibilitäts option aktiviert ist.

Siehe auch setSslOption().

bool QSslConfiguration::operator!=(const QSslConfiguration &other) const

Gibt „ true “ zurück, wenn sich „ QSslConfiguration “ von „ other “ unterscheidet. Zwei „ QSslConfiguration “-Objekte gelten als unterschiedlich, wenn sich ein beliebiger Status oder eine beliebige Einstellung unterscheidet.

Siehe auch operator==().

QSslConfiguration &QSslConfiguration::operator=(const QSslConfiguration &other)

Kopiert die Konfiguration und den Zustand von other. Ist other null, ist dieses Objekt ebenfalls null.

bool QSslConfiguration::operator==(const QSslConfiguration &other) const

Gibt „ true “ zurück, wenn dieses „ QSslConfiguration “-Objekt mit „ other “ übereinstimmt.

Zwei „ QSslConfiguration “-Objekte gelten als gleich, wenn sie exakt dieselben Einstellungen und denselben Zustand haben.

Siehe auch operator!=().

Dokumentation zu Member-Variablen

const char[] QSslConfiguration::ALPNProtocolHTTP2

Diese Variable enthält den Wert, der bei der Protokollaushandlung auf Anwendungsebene für die Aushandlung von HTTP/2 verwendet wird.

const char[] QSslConfiguration::NextProtocolHttp1_1

Diese Variable enthält den Wert, der bei der „Next Protocol Negotiation“ für die Aushandlung von HTTP 1.1 verwendet wird.

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