Spec-Zone.ru › Qt 5.6

Класс QSslPreSharedKeyAuthenticator

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

Заголовок: #include <QSslPreSharedKeyAuthenticator>
qmake: QT += network
С момента: Qt 5.5
  • Список всех членов, включая унаследованные

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

Публичные функции

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

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

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

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

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

Класс 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.

См. также QSslSocket.

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

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator()

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

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

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)

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

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

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(); в этом случае будут отправлены только первые 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.

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

См. также preSharedKey(), maximumPreSharedKeyLength(), и QByteArray::fromHex().

void QSslPreSharedKeyAuthenticator::swap(QSslPreSharedKeyAuthenticator &authenticator)

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

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

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

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

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

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

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/archives/qt-5.6/qsslpresharedkeyauthenticator.html

Spec-Zone.ru

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