Spec-Zone.ru › Qt 6.1

Класс QSslPreSharedKeyAuthenticator

Класс QSslPreSharedKeyAuthenticator предоставляет данные аутентификации для шифровальных наборов с предварительно общим ключом (PSK). Подробнее...

Заголовок: #include <QSslPreSharedKeyAuthenticator>
CMake: find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
С момента: Qt 5.5
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются многопоточными.

Открытые функции

QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)
QSslPreSharedKeyAuthenticator()
QSslPreSharedKeyAuthenticator & operator=(QSslPreSharedKeyAuthenticator &&authenticator)
QSslPreSharedKeyAuthenticator & operator=(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 &authenticator)

Связанные нечлены

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

Подробное описание

Класс QSslPreSharedKeyAuthenticator используется сокетом SSL для предоставления необходимых данных аутентификации в шифровальном наборе с предварительно общим ключом (PSK).

В рукопожатии PSK клиент должен вывести ключ, который должен совпадать с ключом, установленным на сервере. Точный алгоритм вывода ключа зависит от приложения; однако для этой цели сервер может отправить подсказку идентификатора клиенту. Эта подсказка в сочетании с другой информацией (например, парольной фразой) используется клиентом для построения общего ключа.

QSslPreSharedKeyAuthenticator предоставляет средства приложениям-клиентам для завершения рукопожатия PSK. Приложение-клиент должно подключить слот к сигналу QSslSocket::preSharedKeyAuthenticationRequired():

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

Сигнал переносит объект QSslPreSharedKeyAuthenticator, содержащий подсказку идентификатора, отправленную сервером клиенту, и который должен быть заполнен соответствующим идентификатором клиента и выведенным ключом:

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

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

Примечание: Шифровальные наборы PSK поддерживаются только при использовании OpenSSL 1.0.1 (или более поздней версии) в качестве бэкенда SSL.

Примечание: PSK в настоящее время поддерживается только в OpenSSL.

См. также QSslSocket.

Документация по функциям-членам

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)

Создает объект QSslPreSharedKeyAuthenticator как копию authenticator.

См. также operator=().

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator()

Создает объект QSslPreSharedKeyAuthenticator по умолчанию.

Подсказка идентификатора, идентификатор и ключ будут инициализированы пустыми массивами байтов; максимальная длина как для идентификатора, так и для ключа будет инициализирована значением 0.

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

Перемещает присваивает объект QSslPreSharedKeyAuthenticator authenticator в этот объект и возвращает ссылку на перемещенный экземпляр.

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

Присваивает объект QSslPreSharedKeyAuthenticator authenticator этому объекту и возвращает ссылку на копию.

QSslPreSharedKeyAuthenticator::~QSslPreSharedKeyAuthenticator()

Уничтожает объект QSslPreSharedKeyAuthenticator.

QByteArray QSslPreSharedKeyAuthenticator::identity() const

Возвращает идентификатор клиента PSK.

См. также setIdentity().

QByteArray QSslPreSharedKeyAuthenticator::identityHint() const

Возвращает подсказку идентификатора PSK, предоставленную сервером. Интерпретация этой подсказки остается на усмотрение приложения.

int QSslPreSharedKeyAuthenticator::maximumIdentityLength() const

Возвращает максимальную длину, в байтах, идентификатора клиента PSK.

Примечание: можно установить идентификатор, длина которого больше, чем maximumIdentityLength(); в этом случае будут отправлены только первые maximumIdentityLength() байты на сервер.

См. также setIdentity().

int QSslPreSharedKeyAuthenticator::maximumPreSharedKeyLength() const

Возвращает максимальную длину, в байтах, предварительно общего ключа.

Примечание: можно установить ключ, длина которого больше, чем максимальная длина предварительно общего ключа; в этом случае на сервер будут отправлены только первые maximumPreSharedKeyLength() байты.

См. также setPreSharedKey().

QByteArray QSslPreSharedKeyAuthenticator::preSharedKey() const

Возвращает предварительно общий ключ.

См. также setPreSharedKey().

void QSslPreSharedKeyAuthenticator::setIdentity(const QByteArray &identity)

Устанавливает идентификатор клиента PSK (который будет сообщен серверу) в identity.

Примечание: можно установить идентификатор, длина которого больше, чем maximumIdentityLength(); в этом случае на сервер будут отправлены только первые maximumIdentityLength() байты.

См. также identity() и maximumIdentityLength().

void QSslPreSharedKeyAuthenticator::setPreSharedKey(const QByteArray &preSharedKey)

Устанавливает предварительно общий ключ в preSharedKey.

Примечание: возможно задать ключ, длина которого превышает максимальную длину предварительно согласованного ключа; в этом случае только первые максимальная длина предварительно согласованного ключа() байта будут фактически отправлены на сервер.

См. также предопределенный ключ, максимальная длина предварительно согласованного ключа() и QByteArray::fromHex().

void QSslPreSharedKeyAuthenticator::swap(QSslPreSharedKeyAuthenticator &authenticator)

Меняет местами объект QSslPreSharedKeyAuthenticator authenticator с этим объектом. Эта операция очень быстрая и никогда не завершается ошибкой.

Связанные нечлены

[since 5.5] bool operator!=(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)

Возвращает true если объект аутентификатора lhs не равен rhs; false в противном случае.

Эта функция была представлена в Qt 5.5.

[since 5.5] bool operator==(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)

Возвращает true если объект аутентификатора lhs равен rhs; false в противном случае.

Два объекта аутентификатора равны тогда и только тогда, когда у них одинаковый идентификатор, идентификатор, предварительно согласованный ключ, максимальная длина для идентификатора и максимальная длина для предварительно согласованного ключа.

Эта функция была представлена в Qt 5.5.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qsslpresharedkeyauthenticator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API