Spec-Zone.ru › Qt 6.0

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

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

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

void QSslConfiguration::addCaCertificate(const QSslCertificate &certificate)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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-библиотек, использующих 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

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

Если параметры Diffie-Hellman не были установлены, объект 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 стаплябление было включено с помощью 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().

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

Возвращает криптографическое шифрование сокета или 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.

END_OF_DOCUMENT_MARKER

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

[since 5.3] void QSslConfiguration::setAllowedNextProtocols(const QList<QByteArray> &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. База данных сертификатов должна быть установлена до начала 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)

Эта функция включает проверку cookie 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().

END_OF_DOCUMENT_MARKER

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 был сконфигурирован и скомпилирован с использованием бэкенда 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. Если 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()

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

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

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

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

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

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

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

Spec-Zone.ru

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