Spec-Zone.ru › Qt

Класс QSslConfiguration

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

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

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

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

перечисление СтатусПереговоровОПротоколе { НетПереговоровОПротоколе, ПереговорыОПротоколеЗавершённы, НеПоддерживаетсяПротокол }

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

QSslConfiguration(const QSslConfiguration &other)
QSslConfiguration()
QSslConfiguration & operator=(const QSslConfiguration &other)
~QSslConfiguration()
void addCaCertificate(const QSslCertificate &certificate)
bool addCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = QSslCertificate::PatternSyntax::FixedString)
void addCaCertificates(const QList<QSslCertificate> &certificates)
QList<QByteArray> allowedNextProtocols() const
QMap<QByteArray, QVariant> backendConfiguration() const
QList<QSslCertificate> caCertificates() const
QList<QSslCipher> ciphers() const
QSslDiffieHellmanParameters diffieHellmanParameters() const
bool dtlsCookieVerificationEnabled() const
QList<QSslEllipticCurve> ellipticCurves() const
QSslKey ephemeralServerKey() const
bool handshakeMustInterruptOnError() const
bool isNull() const
QSslCertificate localCertificate() const
QList<QSslCertificate> localCertificateChain() const
bool missingCertificateIsFatal() 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(const 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 setCiphers(const QString &ciphers)
void setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams)
void setDtlsCookieVerificationEnabled(bool enable)
void setEllipticCurves(const QList<QSslEllipticCurve> &curves)
void setHandshakeMustInterruptOnError(bool interrupt)
void setLocalCertificate(const QSslCertificate &certificate)
void setLocalCertificateChain(const QList<QSslCertificate> &localChain)
void setMissingCertificateIsFatal(bool cannotRecover)
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
QSslConfiguration defaultConfiguration()
QSslConfiguration defaultDtlsConfiguration()
void setDefaultConfiguration(const QSslConfiguration &configuration)
void setDefaultDtlsConfiguration(const QSslConfiguration &configuration)
QList<QSslCipher> supportedCiphers()
QList<QSslEllipticCurve> supportedEllipticCurves()
QList<QSslCertificate> systemCaCertificates()

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

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

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

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

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

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

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

Состояние можно получить только после начала 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.

[since 5.15] void QSslConfiguration::addCaCertificate(const QSslCertificate &certificate)

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

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

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

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

[since 5.15] bool QSslConfiguration::addCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = QSslCertificate::PatternSyntax::FixedString)

Ищет все файлы в path с сертификатами, закодированными в указанном формате, и добавляет их в базу данных сертификатов УЦ этого сокета. path должна быть файлом или шаблоном, соответствующим одному или нескольким файлам, как указано в syntax. Возвращает true если один или несколько сертификатов добавлены в базу данных сертификатов УЦ сокета; в противном случае возвращает false.

База данных сертификатов УЦ используется сокетом во время фазы рукопожатия для проверки сертификата узла.

Для более точного управления используйте addCaCertificate().

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

См. также addCaCertificate() и QSslCertificate::fromPath().

[since 5.15] void QSslConfiguration::addCaCertificates(const QList<QSslCertificate> &certificates)

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

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

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

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

[since 5.3] QList<QByteArray> QSslConfiguration::allowedNextProtocols() const

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

Этот метод был добавлен в Qt 5.3.

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

[since 5.11] QMap<QByteArray, QVariant> QSslConfiguration::backendConfiguration() const

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

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

Этот метод был добавлен в Qt 5.11.

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

QList<QSslCertificate> QSslConfiguration::caCertificates() const

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

См. также setCaCertificates(), addCaCertificate() и addCaCertificates().

QList<QSslCipher> QSslConfiguration::ciphers() const

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

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

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

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

[static] QSslConfiguration QSslConfiguration::defaultConfiguration()

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

Конфигурация SSL по умолчанию включает:

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

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

[static] QSslConfiguration QSslConfiguration::defaultDtlsConfiguration()

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

Конфигурация DTLS по умолчанию включает:

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

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

[since 5.8] QSslDiffieHellmanParameters QSslConfiguration::diffieHellmanParameters() const

Извлекает текущий набор параметров Диффи-Хеллмана.

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

Этот метод был добавлен в Qt 5.8.

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

bool QSslConfiguration::dtlsCookieVerificationEnabled() const

Этот метод возвращает true, если проверка cookie DTLS была включена в сокете на стороне сервера.

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

[since 5.5] QList<QSslEllipticCurve> QSslConfiguration::ellipticCurves() const

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

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

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

Этот метод был добавлен в Qt 5.5.

См. также setEllipticCurves.

[since 5.7] QSslKey QSslConfiguration::ephemeralServerKey() const

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

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

Этот метод был добавлен в Qt 5.7.

[since 6.0] bool QSslConfiguration::handshakeMustInterruptOnError() const

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

Примечание: Этот метод всегда возвращает false для всех бэкендов, кроме OpenSSL.

Этот метод был добавлен в Qt 6.0.

См. также setHandshakeMustInterruptOnError(), QSslSocket::handshakeInterruptedOnError() и QSslSocket::continueInterruptedHandshake().

bool QSslConfiguration::isNull() const

Возвращает true если это объект QSslConfiguration типа null.

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

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

QSslCertificate QSslConfiguration::localCertificate() const

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

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

[since 5.1] QList<QSslCertificate> QSslConfiguration::localCertificateChain() const

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

Этот метод был добавлен в Qt 5.1.

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

[since 6.0] bool QSslConfiguration::missingCertificateIsFatal() const

Возвращает true, если ошибки с кодом QSslError::NoPeerCertificate нельзя игнорировать.

Примечание: Всегда возвращает false для всех бэкендов TLS, кроме OpenSSL.

Этот метод был добавлен в Qt 6.0.

См. также QSslSocket::ignoreSslErrors() и setMissingCertificateIsFatal().

[since 5.3] QByteArray QSslConfiguration::nextNegotiatedProtocol() const

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

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

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

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

[since 5.3] 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.

[since 5.13] bool QSslConfiguration::ocspStaplingEnabled() const

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

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

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

QSslCertificate QSslConfiguration::peerCertificate() const

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

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

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

Возвращение null-сертификата может означать сбой 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().

[since 5.8] QByteArray QSslConfiguration::preSharedKeyIdentityHint() const

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

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

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

QSslKey QSslConfiguration::privateKey() const

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

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

QSsl::SslProtocol QSslConfiguration::protocol() const

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

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

QSslCipher QSslConfiguration::sessionCipher() const

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

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

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

[since 5.4] QSsl::SslProtocol QSslConfiguration::sessionProtocol() const

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

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

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

[since 5.2] QByteArray QSslConfiguration::sessionTicket() const

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

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

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

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

[since 5.2] int QSslConfiguration::sessionTicketLifeTimeHint() const

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

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

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

[since 5.3] void QSslConfiguration::setAllowedNextProtocols(const 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::NextProtocolHttp1_1.

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

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

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

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

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

[since 5.11] 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(), addCaCertificates() и addCaCertificate().

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

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

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

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

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

[since 6.0] void QSslConfiguration::setCiphers(const QString &ciphers)

Устанавливает криптографический набор шифров для этой конфигурации на ciphers, которое представляет собой список шифров, разделённых двоеточием. Шифры перечислены в порядке приоритета, начиная с наиболее предпочтительного шифра. Например:

QSslConfiguration tlsConfig = QSslConfiguration::defaultConfiguration();
tlsConfig.setCiphers(QStringLiteral("DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA"));

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

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

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

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

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

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

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

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

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

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

[since 5.8] 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)

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

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

[since 5.5] void QSslConfiguration::setEllipticCurves(const QList<QSslEllipticCurve> &curves)

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

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

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

См. также ellipticCurves.

[since 6.0] void QSslConfiguration::setHandshakeMustInterruptOnError(bool interrupt)

Если interrupt равно true и этот параметр поддерживается базовым бэкендом, ошибки, обнаруженные при проверке сертификата, будут сообщаться немедленно путём выдачи сигнала QSslSocket::handshakeInterruptedOnError(). Это позволяет остановить незаконченное рукопожатие и отправить надлежащее сообщение об ошибке партнёру. В данном случае от приложения не требуется никаких специальных действий. QSslSocket закроет соединение после отправки сообщения об ошибке. Если приложение после проверки ошибки хочет продолжить рукопожатие, необходимо вызвать QSslSocket::continueInterruptedHandshake() из своей функции-слота. Подключение сигнал-слот должно быть прямым.

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

Примечание: Даже если рукопожатие было продолжено, эти ошибки будут сообщены при отправке сигнала QSslSocket::sslErrors() (и, следовательно, должны быть проигнорированы в соответствующем слоте функции).

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

См. также handshakeMustInterruptOnError(), QSslSocket::handshakeInterruptedOnError() и QSslSocket::continueInterruptedHandshake().

void QSslConfiguration::setLocalCertificate(const QSslCertificate &certificate)

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

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

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

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

[since 5.1] void QSslConfiguration::setLocalCertificateChain(const QList<QSslCertificate> &localChain)

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

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

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

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

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

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

[since 6.0] void QSslConfiguration::setMissingCertificateIsFatal(bool cannotRecover)

Если cannotRecover равно true, и используемый режим проверки — QSslSocket::VerifyPeer или QSslSocket::AutoVerifyPeer (для сокета на стороне клиента), отсутствующий сертификат узла-партнера будет рассматриваться как невосстановимая ошибка, которую нельзя игнорировать. Правильное сообщение об ошибке будет отправлено узлу-партнеру перед закрытием соединения.

Примечание: Доступно только при конфигурации и сборке Qt с использованием back-end OpenSSL.

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

См. также QSslSocket::ignoreSslErrors(), QSslSocket::PeerVerifyMode и missingCertificateIsFatal().

[since 5.13] 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().

[since 5.8] 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().

[since 5.2] void QSslConfiguration::setSessionTicket(const QByteArray &sessionTicket)

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

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

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

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

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

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

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

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

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

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

[static, since 5.5] QList<QSslEllipticCurve> QSslConfiguration::supportedEllipticCurves()

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

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

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

[since 5.0] void QSslConfiguration::swap(QSslConfiguration &other)

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

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

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

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

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

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

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

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

См. также 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 во время переговоров о протоколах.

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

Spec-Zone.ru

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