Spec-Zone.ru › Qt 5.14

Класс QSslConfiguration

Класс QSslConfiguration хранит конфигурацию и состояние подключения SSL. Подробнее...

Заголовок: #include <QSslConfiguration>
qmake: QT += network
С момента: Qt 4.4

Этот класс был представлен в Qt 4.4.

  • Список всех членов, включая наследуемые

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

Открытые типы

Перечисление NextProtocolNegotiationStatus { NextProtocolNegotiationNone, NextProtocolNegotiationNegotiated, NextProtocolNegotiationUnsupported }

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

QSslConfiguration(const QSslConfiguration &other)
QSslConfiguration()
QSslConfiguration & operator=(const QSslConfiguration &other)
~QSslConfiguration()
QList<QByteArray> allowedNextProtocols() const
QMap<QByteArray, QVariant> backendConfiguration() const
QList<QSslCertificate> caCertificates() const
QList<QSslCipher> ciphers() const
QSslDiffieHellmanParameters diffieHellmanParameters() const
bool dtlsCookieVerificationEnabled() const
QVector<QSslEllipticCurve> ellipticCurves() const
QSslKey ephemeralServerKey() const
bool isNull() const
QSslCertificate localCertificate() const
QList<QSslCertificate> localCertificateChain() const
QByteArray nextNegotiatedProtocol() const
QSslConfiguration::NextProtocolNegotiationStatus nextProtocolNegotiationStatus() const
bool ocspStaplingEnabled() const
QSslCertificate peerCertificate() const
QList<QSslCertificate> peerCertificateChain() const
int peerVerifyDepth() const
QSslSocket::PeerVerifyMode peerVerifyMode() const
QByteArray preSharedKeyIdentityHint() const
QSslKey privateKey() const
QSsl::SslProtocol protocol() const
QSslCipher sessionCipher() const
QSsl::SslProtocol sessionProtocol() const
QByteArray sessionTicket() const
int sessionTicketLifeTimeHint() const
void setAllowedNextProtocols(QList<QByteArray> protocols)
void setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = QMap<QByteArray, QVariant>())
void setBackendConfigurationOption(const QByteArray &name, const QVariant &value)
void setCaCertificates(const QList<QSslCertificate> &certificates)
void setCiphers(const QList<QSslCipher> &ciphers)
void setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams)
void setDtlsCookieVerificationEnabled(bool enable)
void setEllipticCurves(const QVector<QSslEllipticCurve> &curves)
void setLocalCertificate(const QSslCertificate &certificate)
void setLocalCertificateChain(const QList<QSslCertificate> &localChain)
void setOcspStaplingEnabled(bool enabled)
void setPeerVerifyDepth(int depth)
void setPeerVerifyMode(QSslSocket::PeerVerifyMode mode)
void setPreSharedKeyIdentityHint(const QByteArray &hint)
void setPrivateKey(const QSslKey &key)
void setProtocol(QSsl::SslProtocol protocol)
void setSessionTicket(const QByteArray &sessionTicket)
void setSslOption(QSsl::SslOption option, bool on)
void swap(QSslConfiguration &other)
bool testSslOption(QSsl::SslOption option) const
bool operator!=(const QSslConfiguration &other) const
bool operator==(const QSslConfiguration &other) const

Статические публичные члены

const char [] NextProtocolHttp1_1
const char [] NextProtocolSpdy3_0
QSslConfiguration defaultConfiguration()
QSslConfiguration defaultDtlsConfiguration()
void setDefaultConfiguration(const QSslConfiguration &configuration)
void setDefaultDtlsConfiguration(const QSslConfiguration &configuration)
QList<QSslCipher> supportedCiphers()
QVector<QSslEllipticCurve> supportedEllipticCurves()
QList<QSslCertificate> systemCaCertificates()

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

QSslConfiguration используется классами Qt для сетевых соединений для передачи информации об открытом соединении SSL и для возможности приложения управлять определенными функциями этого соединения.

Параметры, которые в настоящее время поддерживает QSslConfiguration:

  • Используемый протокол SSL/TLS
  • Представляемый сертификат клиенту во время подключения и связанный с ним закрытый ключ
  • Допускаемые шифры для шифрования соединения
  • Список сертификатов уполномоченных центров сертификации, используемых для проверки сертификата клиента

Эти параметры применяются только во время установления соединения. Изменение их после установления соединения не имеет эффекта.

Состояние, поддерживаемое QSslConfiguration:

  • Сертификат, предоставленный клиентом во время рукопожатия, вместе с цепочкой, ведущей к сертификату CA
  • Используемый шифр для шифрования этого сеанса

Состояние можно получить только после начала SSL-соединения, но не обязательно до его завершения. Некоторые параметры могут измениться в ходе SSL-соединения без необходимости его перезапуска (например, шифр может со временем измениться).

Состояние в объектах QSslConfiguration изменить нельзя.

QSslConfiguration можно использовать с QSslSocket и API сетевого доступа.

Обратите внимание, что изменение параметров в QSslConfiguration недостаточно для изменения параметров в связанном SSL-соединении. Для этого необходимо вызвать setSslConfiguration с изменённым объектом QSslConfiguration. Следующий пример иллюстрирует, как изменить протокол на TLSv1_0 в объекте QSslSocket:

QSslConfiguration config = sslSocket.sslConfiguration();
config.setProtocol(QSsl::TlsV1_0);
sslSocket.setSslConfiguration(config);

См. также QSsl::SslProtocol, QSslCertificate, QSslCipher, QSslKey, QSslSocket, QNetworkAccessManager, QSslSocket::sslConfiguration() и QSslSocket::setSslConfiguration().

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

перечисление QSslConfiguration::NextProtocolNegotiationStatus

Описывает состояние переговор протоколов NPN или ALPN.

Константа Значение Описание
QSslConfiguration::NextProtocolNegotiationNone 0 Протокол приложения еще не согласован.
QSslConfiguration::NextProtocolNegotiationNegotiated 1 Протокол приложения согласован (см. nextNegotiatedProtocol()).
QSslConfiguration::NextProtocolNegotiationUnsupported 2 Клиент и сервер не смогли договориться о общем протоколе приложения.

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

QSslConfiguration::QSslConfiguration(const QSslConfiguration &other)

Копирует конфигурацию и состояние other. Если other равно null, то этот объект тоже будет null.

QSslConfiguration::QSslConfiguration()

Создаёт пустую конфигурацию SSL. Эта конфигурация не содержит действительных параметров, а состояние будет пустым. isNull() вернёт true после вызова этого конструктора.

После вызова любого метода-сеттера isNull() вернёт false.

QSslConfiguration &QSslConfiguration::operator=(const QSslConfiguration &other)

Копирует конфигурацию и состояние other. Если other равно null, то этот объект тоже будет null.

QSslConfiguration::~QSslConfiguration()

Освобождает все ресурсы, используемые QSslConfiguration.

QList<QByteArray> QSslConfiguration::allowedNextProtocols() const

Эта функция возвращает разрешенные протоколы, которые можно договориться с сервером через расширение TLS NPN или ALPN, как задано setAllowedNextProtocols().

Эта функция была добавлена в Qt 5.3.

См. также nextNegotiatedProtocol(), nextProtocolNegotiationStatus(), setAllowedNextProtocols(), QSslConfiguration::NextProtocolSpdy3_0 и QSslConfiguration::NextProtocolHttp1_1.

QMap<QByteArray, QVariant> QSslConfiguration::backendConfiguration() const

Возвращает конфигурацию, специфичную для бэкенда.

Будут возвращены только параметры, установленные setBackendConfigurationOption() или setBackendConfiguration(). Внутренняя стандартная конфигурация бэкенда не сообщается.

Эта функция была добавлена в Qt 5.11.

См. также setBackendConfigurationOption() и setBackendConfiguration().

QList<QSslCertificate> QSslConfiguration::caCertificates() const

Возвращает базу данных сертификатов CA для этого подключения. База данных сертификатов CA используется сокетом на стадии рукопожатия для проверки сертификата клиента. Она может быть изменена перед началом рукопожатия с помощью setCaCertificates(), или с помощью QSslSocket's addCaCertificate() и addCaCertificates().

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

QList<QSslCipher> QSslConfiguration::ciphers() const

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

По умолчанию, на стадии рукопожатия может быть выбран любой шифр, поддерживаемый библиотеками SSL системы, который может отличаться от системы к системе. Список шифров, поддерживаемых библиотеками SSL этой системы, возвращается QSslSocket::supportedCiphers(). Вы можете ограничить список шифров, используемых для выбора шифра сессии для этого сокета, вызвав setCiphers() с подмножеством поддерживаемых шифров. Вы можете вернуться к использованию всего набора, вызвав setCiphers() со списком, возвращаемым QSslSocket::supportedCiphers().

Примечание: В настоящее время это не поддерживается в бэкенде Schannel.

См. также setCiphers() и QSslSocket::supportedCiphers().

QSslConfiguration QSslConfiguration::defaultConfiguration()

Возвращает стандартную конфигурацию SSL, используемую при создании новых SSL-соединений.

Стандартная конфигурация SSL состоит из:

  • нет локального сертификата и закрытого ключа
  • протокол SecureProtocols
  • стандартный список сертификатов CA системы
  • список шифров, равный списку шифров SSL, поддерживаемых библиотеками SSL системы, которые имеют 128 бит или больше

См. также QSslSocket::supportedCiphers() и setDefaultConfiguration().

[static] QSslConfiguration QSslConfiguration::defaultDtlsConfiguration()

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

Конфигурация DTLS по умолчанию состоит из:

  • отсутствия локального сертификата и закрытого ключа
  • протокола DtlsV1_2OrLater
  • списка сертификатов доверенных центров сертификации системы по умолчанию
  • списка шифров, равного списку шифров TLS 1.2, поддерживаемых SSL-библиотеками, которые используют 128 или более битов секрета для шифра.

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

QSslDiffieHellmanParameters QSslConfiguration::diffieHellmanParameters() const

Возвращает текущий набор параметров Diffie-Hellman.

Если параметры Diffie-Hellman не заданы, объект QSslConfiguration использует по умолчанию 1024-битовую группу MODP из RFC 2409.

Данная функция была добавлена в Qt 5.8.

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

bool QSslConfiguration::dtlsCookieVerificationEnabled() const

Данная функция возвращает true, если проверка куки DTLS была включена на сокете стороны сервера.

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

QVector<QSslEllipticCurve> QSslConfiguration::ellipticCurves() const

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

По умолчанию, фаза рукопожатия может выбрать любую из кривых, поддерживаемых SSL-библиотеками этой системы, которые могут различаться в зависимости от системы. Список кривых, поддерживаемых SSL-библиотеками этой системы, возвращается функцией QSslSocket::supportedEllipticCurves().

Вы можете ограничить список кривых, используемых для выбора шифра сессии для этого сокета, вызвав setEllipticCurves() с подмножеством поддерживаемых шифров. Вы можете вернуться к использованию всего набора, вызвав setEllipticCurves() со списком, возвращаемым QSslSocket::supportedEllipticCurves().

Данная функция была добавлена в Qt 5.5.

См. также setEllipticCurves.

QSslKey QSslConfiguration::ephemeralServerKey() const

Возвращает временный ключ сервера, используемый для алгоритмов шифрования с защитой по секрету, например, DHE-RSA-AES128-SHA.

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

Данная функция была добавлена в Qt 5.7.

bool QSslConfiguration::isNull() const

Возвращает true, если это нулевой объект QSslConfiguration.

Объект QSslConfiguration является нулевым, если он был создан по умолчанию и не были вызваны методы установщиков.

См. также setProtocol(), setLocalCertificate(), setPrivateKey(), setCiphers() и setCaCertificates().

QSslCertificate QSslConfiguration::localCertificate() const

Возвращает сертификат, который будет представлен партнеру во время процесса SSL-рукопожатия.

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

QList<QSslCertificate> QSslConfiguration::localCertificateChain() const

Возвращает цепочку сертификатов, которая будет представлена партнеру во время процесса SSL-рукопожатия.

Данная функция была добавлена в Qt 5.1.

См. также setLocalCertificateChain() и localCertificate().

QByteArray QSslConfiguration::nextNegotiatedProtocol() const

Данная функция возвращает протокол, согласованный с сервером, если расширение TLS Next Protocol Negotiation (NPN) или Application-Layer Protocol Negotiation (ALPN) было включено. Для включения расширения NPN/ALPN необходимо явно вызвать setAllowedNextProtocols() перед подключением к серверу.

Если протокол не удалось согласовать или расширение не было включено, эта функция возвращает QByteArray, равную null.

Данная функция была добавлена в Qt 5.3.

См. также setAllowedNextProtocols() и nextProtocolNegotiationStatus().

QSslConfiguration::NextProtocolNegotiationStatus QSslConfiguration::nextProtocolNegotiationStatus() const

Данная функция возвращает статус Next Protocol Negotiation (NPN) или Application-Layer Protocol Negotiation (ALPN). Если функция не была включена через setAllowedNextProtocols(), эта функция возвращает NextProtocolNegotiationNone. Статус будет установлен перед выводом сигнала encrypted().

Данная функция была добавлена в Qt 5.3.

См. также setAllowedNextProtocols(), allowedNextProtocols(), nextNegotiatedProtocol() и QSslConfiguration::NextProtocolNegotiationStatus.

bool QSslConfiguration::ocspStaplingEnabled() const

Возвращает true, если OCSP стаплин был включен с помощью setOCSPStaplingEnabled(), в противном случае false (по умолчанию).

Данная функция была добавлена в Qt 5.13.

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

QSslCertificate QSslConfiguration::peerCertificate() const

Возвращает цифровой сертификат клиента (т.е. непосредственный сертификат хоста, к которому вы подключены), или нулевой сертификат, если клиент не предоставил сертификат.

Сертификат клиента автоматически проверяется на фазе рукопожатия, поэтому эта функция обычно используется для извлечения сертификата для отображения или диагностики соединения. Он содержит информацию о клиенте, включая его имя хоста, издателя сертификата и открытый ключ клиента.

Так как сертификат клиента устанавливается на фазе рукопожатия, доступ к сертификату клиента из слота, подключенного к сигналу QSslSocket::sslErrors(), QNetworkReply::sslErrors() или сигналу QSslSocket::encrypted(), безопасен.

Возвращение нулевого сертификата может означать, что SSL-рукопожатие не удалось, или хост, к которому вы подключены, не имеет сертификата, или нет подключения.

Если вы хотите проверить полную цепочку сертификатов клиента, используйте peerCertificateChain() для получения их всех сразу.

См. также peerCertificateChain(), QSslSocket::sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::sslErrors() и QNetworkReply::ignoreSslErrors().

QList<QSslCertificate> QSslConfiguration::peerCertificateChain() const

Возвращает цепочку цифровых сертификатов клиента, начиная с непосредственного сертификата клиента и заканчивая сертификатом удостоверяющего центра.

Сертификаты клиента автоматически проверяются во время фазы рукопожатия. Эта функция обычно используется для извлечения сертификатов для отображения или диагностики соединения. Сертификаты содержат информацию о клиенте и издателях сертификатов, включая имя хоста, имена издателей и открытые ключи издателей.

Так как сертификат клиента устанавливается во время фазы рукопожатия, доступ к сертификату клиента из слота, подключенного к сигналу QSslSocket::sslErrors(), QNetworkReply::sslErrors() или сигналу QSslSocket::encrypted(), безопасен.

Возвращение пустого списка может означать, что SSL-рукопожатие не удалось, или хост, к которому вы подключены, не имеет сертификата, или нет подключения.

Если вам нужен только непосредственный сертификат клиента, используйте peerCertificate().

См. также peerCertificate(), QSslSocket::sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::sslErrors() и QNetworkReply::ignoreSslErrors().

int QSslConfiguration::peerVerifyDepth() const

Возвращает максимальное количество сертификатов в цепочке сертификатов клиента, которые должны быть проверены во время фазы SSL-рукопожатия, или 0 (по умолчанию), если максимальная глубина не задана, что указывает на то, что вся цепочка сертификатов должна быть проверена.

Сертификаты проверяются в порядке выдачи, начиная с собственного сертификата узла, затем сертификата его издателя и так далее.

См. также setPeerVerifyDepth() и peerVerifyMode().

QSslSocket::PeerVerifyMode QSslConfiguration::peerVerifyMode() const

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

По умолчанию используется режим AutoVerifyPeer, который сообщает QSslSocket использовать VerifyPeer для клиентов и QueryPeer для серверов.

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

QByteArray QSslConfiguration::preSharedKeyIdentityHint() const

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

Эта функция была добавлена в Qt 5.8.

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

QSslKey QSslConfiguration::privateKey() const

Возвращает ключ SSL, назначенный этому подключению, или нулевой ключ, если он ещё не назначен.

См. также setPrivateKey() и localCertificate().

QSsl::SslProtocol QSslConfiguration::protocol() const

Возвращает настройку протокола для этой SSL-конфигурации.

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

QSslCipher QSslConfiguration::sessionCipher() const

Возвращает криптографическое шифрование сокета или нулевое шифрование, если подключение не зашифровано. Шифрование сокета для сеанса устанавливается во время фазы рукопожатия. Шифрование используется для шифрования и дешифрования данных, передаваемых через сокет.

Инфраструктура SSL также предоставляет функции для установки упорядоченного списка шифров, из которого фаза рукопожатия в конечном итоге выберет шифрование сеанса. Этот упорядоченный список должен быть создан до начала фазы рукопожатия.

См. также ciphers(), setCiphers() и QSslSocket::supportedCiphers().

QSsl::SslProtocol QSslConfiguration::sessionProtocol() const

Возвращает протокол SSL/TLS сокета или UnknownProtocol, если подключение не зашифровано. Протокол сокета для сеанса устанавливается во время фазы рукопожатия.

Эта функция была добавлена в Qt 5.4.

См. также protocol() и setProtocol().

QByteArray QSslConfiguration::sessionTicket() const

Если QSsl::SslOptionDisableSessionPersistence был выключен, эта функция возвращает билет сеанса, используемый в SSL-рукопожатии в формате ASN.1, подходящий, например, для сохранения на диске. Если билет сеанса не использовался или QSsl::SslOptionDisableSessionPersistence был включён, эта функция возвращает пустой QByteArray.

Примечание: При сохранении билета сеанса на диск или аналогично, будьте осторожны, чтобы не раскрыть сеанс потенциальному злоумышленнику, так как знание сеанса позволяет перехватывать данные, зашифрованные параметрами сеанса.

Эта функция была добавлена в Qt 5.2.

См. также setSessionTicket(), QSsl::SslOptionDisableSessionPersistence и setSslOption().

int QSslConfiguration::sessionTicketLifeTimeHint() const

Если QSsl::SslOptionDisableSessionPersistence был выключен, эта функция возвращает подсказку времени жизни билета сеанса, отправленную сервером (которая может быть 0). Если сервер не отправил билет сеанса (например, при возобновлении сеанса или если сервер его не поддерживает) или QSsl::SslOptionDisableSessionPersistence был включён, эта функция возвращает -1.

Эта функция была добавлена в Qt 5.2.

См. также sessionTicket(), QSsl::SslOptionDisableSessionPersistence и setSslOption().

void QSslConfiguration::setAllowedNextProtocols(QList<QByteArray> protocols)

Эта функция устанавливает разрешённые protocols, которые должны быть согласованы с сервером через расширение TLS Next Protocol Negotiation (NPN) или Application-Layer Protocol Negotiation (ALPN); каждый элемент в protocols должен определять один разрешённый протокол. Функция должна быть вызвана явно перед подключением для отправки расширения NPN/ALPN в SSL-рукопожатии. Успех согласования можно проверить с помощью nextProtocolNegotiationStatus().

Эта функция была добавлена в Qt 5.3.

См. также nextNegotiatedProtocol(), nextProtocolNegotiationStatus(), allowedNextProtocols(), QSslConfiguration::NextProtocolSpdy3_0 и QSslConfiguration::NextProtocolHttp1_1.

void QSslConfiguration::setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = QMap<QByteArray, QVariant>())

Устанавливает или очищает конфигурацию, специфичную для бэкенда.

Без параметра backendConfiguration эта функция очистит конфигурацию, специфичную для бэкенда. Более подробную информацию о поддерживаемых параметрах можно найти в документации по setBackendConfigurationOption().

Эта функция была добавлена в Qt 5.11.

См. также backendConfiguration() и setBackendConfigurationOption().

void QSslConfiguration::setBackendConfigurationOption(const QByteArray &name, const QVariant &value)

Устанавливает параметр name в конфигурации, специфичной для бэкенда, на значение value.

Параметры, поддерживаемые бэкендом OpenSSL (>= 1.0.2), доступны в документации поддерживаемых команд файла конфигурации. Ожидаемый тип для параметра value — QByteArray для всех параметров. Примеры показывают, как использовать некоторые параметры.

Примечание: Конфигурация, специфичная для бэкенда, будет применена после общей конфигурации. Использование конфигурации, специфичной для бэкенда, для повторной установки параметра общей конфигурации перезапишет параметр общей конфигурации.

Эта функция была добавлена в Qt 5.11.

См. также backendConfiguration() и setBackendConfiguration().

void QSslConfiguration::setCaCertificates(const QList<QSslCertificate> &certificates)

Устанавливает базу данных сертификатов CA этого сокета на certificates. База данных сертификатов CA должна быть установлена до SSL-рукопожатия. База данных сертификатов CA используется сокетом во время фазы рукопожатия для проверки сертификата узла.

Примечание: По умолчанию используется системная база данных сертификатов CA. Если она недоступна (как часто бывает на iOS), база данных по умолчанию пуста.

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

void QSslConfiguration::setCiphers(const QList<QSslCipher> &ciphers)

Устанавливает криптографический набор шифров для этого сокета на ciphers, который должен содержать подмножество шифров в списке, возвращаемом supportedCiphers().

Ограничение набора шифров должно быть выполнено до фазы рукопожатия, где выбирается шифрование сеанса.

Примечание: В настоящее время это не поддерживается в бэкенде Schannel.

См. также ciphers() и QSslSocket::supportedCiphers().

[static] void QSslConfiguration::setDefaultConfiguration(const QSslConfiguration &configuration)

Устанавливает конфигурацию SSL по умолчанию, используемую при новых SSL-соединениях, на configuration. Существующие подключения не затрагиваются этим вызовом.

См. также QSslSocket::supportedCiphers() и defaultConfiguration().

END_OF_DOCUMENT_MARKER

[static] void QSslConfiguration::setDefaultDtlsConfiguration(const QSslConfiguration &configuration)

Устанавливает конфигурацию по умолчанию DTLS, которая будет использоваться при новых подключениях DTLS, в configuration. Существующие подключения не затронуты этим вызовом.

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

void QSslConfiguration::setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams)

Устанавливает настраиваемый набор параметров Diffie-Hellman, которые будут использоваться этим сокетом при работе в качестве сервера, в dhparams.

Если параметры Diffie-Hellman не были установлены, объект QSslConfiguration по умолчанию использует 1024-битовую группу MODP из RFC 2409.

Эта функция была добавлена в Qt 5.8.

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

void QSslConfiguration::setDtlsCookieVerificationEnabled(bool enable)

Эта функция включает проверку cookie DTLS, когда enable равно true.

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

void QSslConfiguration::setEllipticCurves(const QVector<QSslEllipticCurve> &curves)

Устанавливает список эллиптических кривых, которые будут использоваться этим сокетом, в curves, который должен содержать подмножество кривых в списке, возвращаемом supportedEllipticCurves().

Ограничение эллиптических кривых должно быть выполнено до фазы рукопожатия, где выбирается шифр сессии.

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

См. также ellipticCurves.

void QSslConfiguration::setLocalCertificate(const QSslCertificate &certificate)

Устанавливает сертификат, который будет представлен партнеру во время рукопожатия SSL, в certificate.

Установка сертификата после установления соединения не оказывает никакого эффекта.

Сертификат — это средство идентификации, используемое в процессе SSL. Локальный сертификат используется удалённым концом для проверки личности локального пользователя по списку его центров сертификации. В большинстве случаев, таких как веб-браузинг по HTTP, только серверы идентифицируются клиентам, поэтому клиент не отправляет сертификат.

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

void QSslConfiguration::setLocalCertificateChain(const QList<QSslCertificate> &localChain)

Устанавливает цепочку сертификатов, которая будет представлена партнеру во время рукопожатия SSL, в localChain.

Установка цепочки сертификатов после установления соединения не оказывает никакого эффекта.

Сертификат — это средство идентификации, используемое в процессе SSL. Локальный сертификат используется удалённым концом для проверки личности локального пользователя по списку его центров сертификации. В большинстве случаев, таких как веб-браузинг по HTTP, только серверы идентифицируются клиентам, поэтому клиент не отправляет сертификат.

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

Эта функция была добавлена в Qt 5.1.

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

void QSslConfiguration::setOcspStaplingEnabled(bool enabled)

Если enabled равно true, клиент QSslSocket отправит запрос статуса сертификата своему партнёру при инициировании рукопожатия. Во время рукопожатия QSslSocket проверит ответ сервера. Это значение должно быть установлено до начала рукопожатия.

Эта функция была добавлена в Qt 5.13.

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

void QSslConfiguration::setPeerVerifyDepth(int depth)

Устанавливает максимальное количество сертификатов в цепочке сертификатов партнёра, которые будут проверены во время фазы рукопожатия SSL, в depth. Установка глубины 0 означает, что максимальная глубина не задана, что указывает на то, что должна быть проверена вся цепочка сертификатов.

Сертификаты проверяются в порядке выдачи, начиная с собственного сертификата партнёра, затем сертификата его эмитента и так далее.

См. также peerVerifyDepth() и setPeerVerifyMode().

void QSslConfiguration::setPeerVerifyMode(QSslSocket::PeerVerifyMode mode)

Устанавливает режим проверки в mode. Этот режим определяет, должен ли QSslSocket запрашивать сертификат от партнёра (т.е., клиент запрашивает сертификат у сервера, или сервер запрашивает сертификат у клиента), и требуется ли, чтобы этот сертификат был действительным.

Режим по умолчанию — AutoVerifyPeer, который сообщает QSslSocket использовать VerifyPeer для клиентов и QueryPeer для серверов.

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

void QSslConfiguration::setPreSharedKeyIdentityHint(const QByteArray &hint)

Устанавливает подсказку идентичности для аутентификации предварительно обмена ключами в hint. Это повлияет на следующее инициированное рукопожатие; вызов этой функции для уже зашифрованного сокета не повлияет на подсказку идентичности сокета.

Подсказка идентичности используется только в QSslSocket::SslServerMode!

Эта функция была добавлена в Qt 5.8.

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

void QSslConfiguration::setPrivateKey(const QSslKey &key)

Устанавливает приватный ключ соединения в key. Приватный ключ и локальный сертификат используются клиентами и серверами, которые должны доказать свою личность партнёрам SSL.

И ключ, и локальный сертификат необходимы, если вы создаёте сокет SSL-сервера. Если вы создаёте сокет SSL-клиента, ключ и локальный сертификат необходимы, если ваш клиент должен идентифицировать себя SSL-серверу.

См. также privateKey() и setLocalCertificate().

void QSslConfiguration::setProtocol(QSsl::SslProtocol protocol)

Устанавливает настройку протокола для этой конфигурации в protocol.

Установка протокола после того, как подключение уже установлено, не оказывает никакого влияния.

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

void QSslConfiguration::setSessionTicket(const QByteArray &sessionTicket)

Устанавливает билет сессии, который будет использоваться в SSL-рукопожатии. QSsl::SslOptionDisableSessionPersistence должен быть выключен для работы, и sessionTicket должен быть в формате ASN.1, как возвращается sessionTicket().

Эта функция была добавлена в Qt 5.2.

См. также sessionTicket(), QSsl::SslOptionDisableSessionPersistence и setSslOption().

void QSslConfiguration::setSslOption(QSsl::SslOption option, bool on)

Включает или отключает опцию совместимости SSL. Если on равно true, опция option включена. Если on равно false, опция option отключена.

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

[static] QList<QSslCipher> QSslConfiguration::supportedCiphers()

Возвращает список криптографических шифров, поддерживаемых этой системой. Этот список устанавливается системными SSL-библиотеками и может отличаться в разных системах.

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

См. также ciphers() и setCiphers().

[static] QVector<QSslEllipticCurve> QSslConfiguration::supportedEllipticCurves()

Возвращает список эллиптических кривых, поддерживаемых этой системой. Этот список устанавливается системными SSL-библиотеками и может отличаться в разных системах.

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

См. также ellipticCurves() и setEllipticCurves().

void QSslConfiguration::swap(QSslConfiguration &other)

Меняет местами этот экземпляр конфигурации SSL с other. Эта функция очень быстрая и никогда не завершается с ошибкой.

Эта функция была добавлена в Qt 5.0.

[static] QList<QSslCertificate> QSslConfiguration::systemCaCertificates()

Эта функция предоставляет базу данных сертификатов УЦ, предоставленных операционной системой. База данных сертификатов УЦ, возвращаемая этой функцией, используется для инициализации базы данных, возвращаемой функцией caCertificates() по умолчанию QSslConfiguration.

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

См. также caCertificates(), setCaCertificates() и defaultConfiguration().

bool QSslConfiguration::testSslOption(QSsl::SslOption option) const

Возвращает true значение, если указанный параметр совместимости SSL, option, включён.

Эта функция была добавлена в Qt 4.8.

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

bool QSslConfiguration::operator!=(const QSslConfiguration &other) const

Возвращает true значение, если этот QSslConfiguration отличается от other. Два объекта QSslConfiguration считаются различными, если какой-либо параметр или состояние отличается.

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

bool QSslConfiguration::operator==(const QSslConfiguration &other) const

Возвращает true значение, если этот объект QSslConfiguration равен other.

Два объекта QSslConfiguration считаются равными, если они имеют точно такие же настройки и состояние.

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

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

const char [] QSslConfiguration::NextProtocolHttp1_1

Эта переменная хранит значение, используемое для переговоров HTTP 1.1 во время переговоров о протоколах.

const char [] QSslConfiguration::NextProtocolSpdy3_0

Эта переменная хранит значение, используемое для переговоров SPDY 3.0 во время переговоров о протоколах.

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

Spec-Zone.ru

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