Sur cette page

QSslPreSharedKeyAuthenticator Class

La classe `QSslPreSharedKeyAuthenticator` fournit des données d'authentification pour les suites de chiffrement à clé pré-partagée (PSK). En savoir plus...

En-tête : #include <QSslPreSharedKeyAuthenticator>
CMake : find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake : QT += network

Remarque : toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

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)

Description détaillée

La classe QSslPreSharedKeyAuthenticator est utilisée par une socket SSL pour fournir les données d’authentification requises dans une suite de chiffrement à clé pré-partagée (PSK).

Lors d’une négociation PSK, le client doit dériver une clé qui doit correspondre à celle définie sur le serveur. L’algorithme exact de dérivation de la clé dépend de l’application ; toutefois, à cette fin, le serveur peut envoyer un indice d’identité au client. Cet indice, combiné à d’autres informations (par exemple une phrase de passe), est ensuite utilisé par le client pour construire la clé partagée.

L’objet `QSslPreSharedKeyAuthenticator` fournit aux applications clientes les moyens de mener à bien la négociation PSK. L’application cliente doit associer un slot au signal ` QSslSocket::preSharedKeyAuthenticationRequired()` :

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

Ce signal transporte un objet QSslPreSharedKeyAuthenticator contenant l’indice d’identité que le serveur a envoyé au client, et qui doit être renseigné avec l’identité client correspondante et la clé dérivée :

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

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

Remarque : les suites de chiffrementPSK ne sont prises en charge que lorsque OpenSSL 1.0.1 (ou une version ultérieure) est utilisé comme backend SSL.

Remarque : le PSK n’est actuellement pris en charge que dans OpenSSL.

Voir également QSslSocket.

Documentation des fonctions membres

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator()

Crée un objet QSslPreSharedKeyAuthenticator par défaut.

L'indicateur d'identité, l'identité et la clé seront initialisés à des tableaux d'octets vides ; la longueur maximale de l'identité et de la clé sera initialisée à 0.

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)

Crée un objet `QSslPreSharedKeyAuthenticator` en tant que copie de ` authenticator`.

Voir également operator=().

[noexcept] QSslPreSharedKeyAuthenticator::~QSslPreSharedKeyAuthenticator()

Supprime l'objet « QSslPreSharedKeyAuthenticator ».

QByteArray QSslPreSharedKeyAuthenticator::identity() const

Renvoie l'identité du client PSK.

Voir également setIdentity().

QByteArray QSslPreSharedKeyAuthenticator::identityHint() const

Renvoie l'indication d'identité PSK telle qu'elle est fournie par le serveur. L'interprétation de cette indication est laissée à la charge de l'application.

int QSslPreSharedKeyAuthenticator::maximumIdentityLength() const

Renvoie la longueur maximale, en octets, de l'identité du client PSK.

Remarque : il est possible de définir une identité dont la longueur est supérieure à maximumIdentityLength() ; dans ce cas, seuls les premiers maximumIdentityLength() octets seront effectivement envoyés au serveur.

Voir également ` setIdentity()`.

int QSslPreSharedKeyAuthenticator::maximumPreSharedKeyLength() const

Renvoie la longueur maximale, en octets, de la clé pré-partagée.

Remarque : il est possible de définir une clé dont la longueur est supérieure à la valeur de `maximumPreSharedKeyLength()` ; dans ce cas, seuls les premiers `maximumPreSharedKeyLength()` octets seront effectivement envoyés au serveur.

Voir également ` setPreSharedKey()`.

QByteArray QSslPreSharedKeyAuthenticator::preSharedKey() const

Renvoie la clé pré-partagée.

Voir aussi setPreSharedKey().

void QSslPreSharedKeyAuthenticator::setIdentity(const QByteArray &identity)

Définit l'identité du client PSK (à communiquer au serveur) sur identity.

Remarque : il est possible de définir une identité dont la longueur est supérieure à maximumIdentityLength(); dans ce cas, seuls les premiers maximumIdentityLength() octets seront effectivement envoyés au serveur.

Voir également identity() et maximumIdentityLength().

void QSslPreSharedKeyAuthenticator::setPreSharedKey(const QByteArray &preSharedKey)

Définit la clé pré-partagée sur preSharedKey.

Remarque : il est possible de définir une clé dont la longueur est supérieure à maximumPreSharedKeyLength(); dans ce cas, seuls les premiers maximumPreSharedKeyLength() octets seront effectivement envoyés au serveur.

Voir également preSharedKey(), maximumPreSharedKeyLength() et QByteArray::fromHex().

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

Remplace cet authentificateur par other. Cette opération est très rapide et ne pose jamais de problème.

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

La fonction « move » attribue l'objet QSslPreSharedKeyAuthenticator authenticator à cet objet et renvoie une référence à l'instance déplacée.

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

Attribue l'objet « QSslPreSharedKeyAuthenticator » authenticator à cet objet, puis renvoie une référence à cette copie.

Éléments non membres associés

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

Renvoie « true » si l'objet d'authentification lhs n'est pas égal à rhs; « false » dans le cas contraire.

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

Renvoie « true » si l'objet d'authentification lhs est égal à rhs; « false » dans le cas contraire.

Deux objets d'authentification sont égaux si et seulement s'ils possèdent le même indice d'identité, la même identité, la même clé pré-partagée, la même longueur maximale pour l'identité et la même longueur maximale pour la clé pré-partagée.

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