QSslPreSharedKeyAuthenticator Class
Die Klasse QSslPreSharedKeyAuthenticator liefert Authentifizierungsdaten für Pre-Shared-Keys (PSK)-Chiffren. Mehr...
Kopfzeile: | #include <QSslPreSharedKeyAuthenticator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QSslPreSharedKeyAuthenticator ist Teil von Network Programming API und Implicitly Shared Classes.
Hinweis: Alle Funktionen in 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) |
Verwandte Nicht-Mitglieder
bool | operator!=(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs) |
bool | operator==(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs) |
Detaillierte Beschreibung
Die Klasse QSslPreSharedKeyAuthenticator wird von einem SSL-Socket verwendet, um die erforderlichen Authentifizierungsdaten in einer Pre-Shared-Key (PSK)-Ciphersuite 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 zusammen mit anderen Informationen (z. B. einer Passphrase) vom Client verwendet, um den gemeinsamen Schlüssel zu erstellen.
Der QSslPreSharedKeyAuthenticator stellt den Client-Anwendungen Mittel zur Verfügung, um den PSK-Handshake abzuschließen. Die Client-Anwendung muss einen Slot mit dem Signal QSslSocket::preSharedKeyAuthenticationRequired() verbinden:
connect(socket, &QSslSocket::preSharedKeyAuthenticationRequired, this, &AuthManager::handlePreSharedKeyAuthentication);
Das Signal enthält ein QSslPreSharedKeyAuthenticator-Objekt, das den Identitätshinweis enthält, den der Server an den Client gesendet hat, und das mit der entsprechenden Client-Identität und 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-Ciphersuites 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()
Konstruiert ein Standard QSslPreSharedKeyAuthenticator Objekt.
Der Identitäts-Hinweis, die Identität und der Schlüssel werden als leere Byte-Arrays initialisiert; die maximale Länge für die Identität und den Schlüssel wird auf 0 initialisiert.
QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)
Konstruiert ein QSslPreSharedKeyAuthenticator-Objekt als Kopie von authenticator.
Siehe auch operator=().
[noexcept]
QSslPreSharedKeyAuthenticator::~QSslPreSharedKeyAuthenticator()
Zerstört das Objekt QSslPreSharedKeyAuthenticator.
QByteArray QSslPreSharedKeyAuthenticator::identity() const
Gibt die PSK-Client-Identität zurück.
Siehe auch setIdentity().
QByteArray QSslPreSharedKeyAuthenticator::identityHint() const
Gibt den PSK-Identitätshinweis zurück, wie er vom Server bereitgestellt wurde. Die Interpretation dieses Hinweises ist der Anwendung überlassen.
int QSslPreSharedKeyAuthenticator::maximumIdentityLength() const
Gibt die maximale Länge der PSK-Client-Identität in Bytes zurück.
Hinweis: Es ist möglich, eine Identität zu setzen, deren Länge größer ist als maximumIdentityLength(); in diesem Fall werden nur die ersten maximumIdentityLength()-Bytes tatsächlich an den Server gesendet.
Siehe auch setIdentity().
int QSslPreSharedKeyAuthenticator::maximumPreSharedKeyLength() const
Gibt die maximale Länge des PreShared Key in Bytes zurück.
Hinweis: Es ist möglich, einen Schlüssel zu setzen, dessen Länge größer ist als die maximalePreSharedKeyLength(); in diesem Fall werden nur die ersten Bytes der maximalenPreSharedKeyLength() tatsächlich an den Server gesendet.
Siehe auch setPreSharedKey().
QByteArray QSslPreSharedKeyAuthenticator::preSharedKey() const
Gibt den gemeinsamen Schlüssel zurück.
Siehe auch setPreSharedKey().
void QSslPreSharedKeyAuthenticator::setIdentity(const QByteArray &identity)
Setzt die PSK-Client-Identität (die dem Server mitgeteilt werden soll) auf identity.
Hinweis: Es ist möglich, eine Identität einzustellen, deren Länge größer ist als maximumIdentityLength(); in diesem Fall werden nur die ersten maximumIdentityLength() Bytes tatsächlich an den Server gesendet.
Siehe auch identity() und maximumIdentityLength().
void QSslPreSharedKeyAuthenticator::setPreSharedKey(const QByteArray &preSharedKey)
Setzt den Pre-Shared Key auf preSharedKey.
Hinweis: Es ist möglich, einen Schlüssel festzulegen, dessen Länge größer ist als maximumPreSharedKeyLength(); in diesem Fall werden nur die ersten maximumPreSharedKeyLength() Bytes tatsächlich an den Server gesendet.
Siehe auch preSharedKey(), maximumPreSharedKeyLength(), und QByteArray::fromHex().
[noexcept]
void QSslPreSharedKeyAuthenticator::swap(QSslPreSharedKeyAuthenticator &other)
Tauscht diesen Authentifikator mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
[noexcept]
QSslPreSharedKeyAuthenticator &QSslPreSharedKeyAuthenticator::operator=(QSslPreSharedKeyAuthenticator &&authenticator)
Move - weist das Objekt QSslPreSharedKeyAuthenticator authenticator diesem Objekt zu und gibt einen Verweis auf die verschobene Instanz zurück.
QSslPreSharedKeyAuthenticator &QSslPreSharedKeyAuthenticator::operator=(const QSslPreSharedKeyAuthenticator &authenticator)
Weist das Objekt QSslPreSharedKeyAuthenticator authenticator diesem Objekt zu und gibt einen Verweis auf die Kopie zurück.
Verwandte Nicht-Mitglieder
bool operator!=(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)
Gibt true
zurück, wenn das Authentifikator-Objekt lhs nicht gleich rhs ist; andernfalls false
.
bool operator==(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)
Gibt true
zurück, wenn das Authentifikator-Objekt lhs gleich rhs ist; andernfalls false
.
Zwei Authenticator-Objekte sind nur dann gleich, wenn sie den gleichen Identitätshinweis, die gleiche Identität, den gleichen Pre-Shared Key, die gleiche maximale Länge für die Identität und die gleiche maximale Länge für den Pre-Shared Key haben.
© 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.