Auf dieser Seite

QSslPreSharedKeyAuthenticator Class

Die Klasse „QSslPreSharedKeyAuthenticator“ stellt Authentifizierungsdaten für Verschlüsselungssuiten mit vorab geteilten Schlüsseln (PSK) bereit. Mehr...

Header: #include <QSslPreSharedKeyAuthenticator>
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 Funktionen

QSslPreSharedKeyAuthenticator()
QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)
~QSslPreSharedKeyAuthenticator()
QByteArray identity() const
QByteArray identityHint() const
int maximumIdentityLength() const
int maximumPreSharedKeyLength() const
QByteArray preSharedKey() const
void setIdentity(const QByteArray &identity)
void setPreSharedKey(const QByteArray &preSharedKey)
void swap(QSslPreSharedKeyAuthenticator &other)
QSslPreSharedKeyAuthenticator &operator=(QSslPreSharedKeyAuthenticator &&authenticator)
QSslPreSharedKeyAuthenticator &operator=(const QSslPreSharedKeyAuthenticator &authenticator)
bool operator!=(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)
bool operator==(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)

Ausführliche Beschreibung

Die Klasse „QSslPreSharedKeyAuthenticator“ wird von einem SSL-Socket verwendet, um die erforderlichen Authentifizierungsdaten in einer PSK-Verschlüsselungssuite (Pre-Shared Key) bereitzustellen.

Bei einem PSK-Handshake muss der Client einen Schlüssel ableiten, der mit dem auf dem Server festgelegten Schlüssel übereinstimmen muss. Der genaue Algorithmus zur Ableitung des Schlüssels hängt von der Anwendung ab; zu diesem Zweck kann der Server jedoch einen Identitätshinweis an den Client senden. Dieser Hinweis wird dann vom Client in Kombination mit anderen Informationen (beispielsweise einer Passphrase) zur Erzeugung des gemeinsamen Schlüssels verwendet.

Der `QSslPreSharedKeyAuthenticator` stellt Client-Anwendungen Mittel zur Durchführung des PSK-Handshakes zur Verfügung. Die Client-Anwendung muss einen Slot an das Signal ` QSslSocket::preSharedKeyAuthenticationRequired()` anbinden:

    connect(socket, &QSslSocket::preSharedKeyAuthenticationRequired,
            this, &AuthManager::handlePreSharedKeyAuthentication);

Das Signal überträgt ein `QSslPreSharedKeyAuthenticator`-Objekt, das den vom Server an den Client gesendeten Identitätshinweis enthält und mit der entsprechenden Client-Identität sowie dem abgeleiteten Schlüssel gefüllt werden muss:

    void AuthManager::handlePreSharedKeyAuthentication(QSslPreSharedKeyAuthenticator *authenticator)
    {
        authenticator->setIdentity("My Qt App");

        const QByteArray key = deriveKey(authenticator->identityHint(), passphrase);
        authenticator->setPreSharedKey(key);
    }

Hinweis: PSK -Verschlüsselungssuiten werden nur unterstützt, wenn OpenSSL 1.0.1 (oder höher) als SSL-Backend verwendet wird.

Hinweis: PSK wird derzeit nur in OpenSSL unterstützt.

Siehe auch QSslSocket.

Dokumentation der Mitgliedsfunktionen

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator()

Erstellt ein Standardobjekt vom Typ „QSslPreSharedKeyAuthenticator“.

Der Identitätshinweis, die Identität und der Schlüssel werden auf leere Byte-Arrays initialisiert; die maximale Länge sowohl für die Identität als auch für den Schlüssel wird auf 0 gesetzt.

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)

Erstellt ein QSslPreSharedKeyAuthenticator-Objekt als Kopie von authenticator.

Siehe auch ` operator=()`.

[noexcept] QSslPreSharedKeyAuthenticator::~QSslPreSharedKeyAuthenticator()

Löscht das „ QSslPreSharedKeyAuthenticator “-Objekt.

QByteArray QSslPreSharedKeyAuthenticator::identity() const

Gibt die PSK-Client-ID zurück.

Siehe auch „ setIdentity()“.

QByteArray QSslPreSharedKeyAuthenticator::identityHint() const

Gibt den vom Server bereitgestellten PSK-Identitätshinweis zurück. Die Interpretation dieses Hinweises bleibt der Anwendung überlassen.

int QSslPreSharedKeyAuthenticator::maximumIdentityLength() const

Gibt die maximale Länge der PSK-Client-Identität in Byte zurück.

Hinweis: Es ist möglich, eine Identität festzulegen, deren Länge größer ist als `maximumIdentityLength()`; in diesem Fall werden tatsächlich nur die ersten `maximumIdentityLength()` Bytes an den Server gesendet.

Siehe auch ` setIdentity()`.

int QSslPreSharedKeyAuthenticator::maximumPreSharedKeyLength() const

Gibt die maximale Länge des vorab geteilten Schlüssels in Byte zurück.

Hinweis: Es ist möglich, einen Schlüssel festzulegen, dessen Länge größer ist als `maximumPreSharedKeyLength()`; in diesem Fall werden tatsächlich nur die ersten `maximumPreSharedKeyLength()` Bytes an den Server gesendet.

Siehe auch ` setPreSharedKey()`.

QByteArray QSslPreSharedKeyAuthenticator::preSharedKey() const

Gibt den vorab vereinbarten Schlüssel zurück.

Siehe auch setPreSharedKey().

void QSslPreSharedKeyAuthenticator::setIdentity(const QByteArray &identity)

Legt die PSK-Client-Identität (die dem Server mitgeteilt werden soll) auf „ identity “ fest.

Hinweis: Es ist möglich, eine Identität festzulegen, deren Länge größer als ` maximumIdentityLength()` ist; in diesem Fall werden tatsächlich nur die ersten ` maximumIdentityLength()` Bytes an den Server gesendet.

Siehe auch identity() und maximumIdentityLength().

void QSslPreSharedKeyAuthenticator::setPreSharedKey(const QByteArray &preSharedKey)

Legt den vorab geteilten Schlüssel auf „ preSharedKey “ fest.

Hinweis: Es ist möglich, einen Schlüssel festzulegen, dessen Länge größer ist als maximumPreSharedKeyLength(); in diesem Fall werden tatsächlich nur die ersten maximumPreSharedKeyLength() Bytes an den Server gesendet.

Siehe auch „ preSharedKey()“, „ maximumPreSharedKeyLength()“ und „ QByteArray::fromHex()“.

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

Ersetzt diesen Authentifikator durch other. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

[noexcept] QSslPreSharedKeyAuthenticator &QSslPreSharedKeyAuthenticator::operator=(QSslPreSharedKeyAuthenticator &&authenticator)

„Move“ weist diesem Objekt das Objekt „ QSslPreSharedKeyAuthenticator “ authenticator zu und gibt eine Referenz auf die verschobene Instanz zurück.

QSslPreSharedKeyAuthenticator &QSslPreSharedKeyAuthenticator::operator=(const QSslPreSharedKeyAuthenticator &authenticator)

Weist diesem Objekt das „ QSslPreSharedKeyAuthenticator “-Objekt „ authenticator “ zu und gibt eine Referenz auf die Kopie zurück.

Verwandte Nicht-Mitglieder

bool operator!=(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)

Gibt „ true “ zurück, wenn das Authentifizierungsobjekt „ lhs “ nicht mit „ rhs “ übereinstimmt; andernfalls „ false “.

bool operator==(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)

Gibt „ true “ zurück, wenn das Authentifikatorobjekt „ lhs “ mit „ rhs “ übereinstimmt; andernfalls „ false “.

Zwei Authentifikatorobjekte sind genau dann gleich, wenn sie denselben Identitätshinweis, dieselbe Identität, denselben vorab vereinbarten Schlüssel sowie dieselbe maximale Länge für die Identität und denselben maximalen Wert für die Länge des vorab vereinbarten Schlüssels aufweisen.

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