Класс 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() | |
| 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 |
| 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 | оператор==(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
- Сертификат, который будет представлен peer во время соединения, и соответствующий ему закрытый ключ
- Шифры, разрешённые для шифрования соединения
- Список сертификатов Удостоверяющих центров (Certificate Authorities), которые используются для проверки сертификата peer
Эти настройки применяются только во время процесса установления соединения. Настройка их после того, как соединение установлено, не оказывает никакого влияния.
Состояния, которые поддерживает QSslConfiguration:
- Сертификат, представленный peer во время установления соединения, вместе с цепочкой, ведущей к сертификату Удостоверяющего центра
- Используемый для шифрования этого сеанса шифр
Состояние может быть получено только после начала 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
Описывает состояние переговорного процесса Next Protocol Negotiation (NPN) или Application-Layer Protocol Negotiation (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::оператор=(const QSslConfiguration &other)
Копирует конфигурацию и состояние other. Если other равно null, этот объект также будет равен null.
QSslConfiguration::~QSslConfiguration()
Освобождает все ресурсы, удерживаемые QSslConfiguration.
void QSslConfiguration::addCaCertificate(const QSslCertificate &certificate)
Добавляет certificate в базу данных сертификатов Удостоверяющих центров (CA) этой конфигурации. База данных сертификатов должна быть установлена до начала рукопожатия SSL. База данных сертификатов Удостоверяющих центров используется сокетом во время фазы рукопожатия для проверки сертификата peer.
Примечание: По умолчанию используется система базы данных сертификатов Удостоверяющих центров. Если она недоступна (как часто бывает на 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, и добавляет их в базу данных сертификатов Удостоверяющих центров (CA) этого сокета. path должно быть файлом или шаблоном, сопоставляющим один или несколько файлов, как указано в syntax. Возвращает true если один или несколько сертификатов добавлены в базу данных сертификатов Удостоверяющих центров сокета; в противном случае возвращает false.
База данных сертификатов Удостоверяющих центров используется сокетом во время фазы рукопожатия для проверки сертификата peer.
Для более точного управления используйте addCaCertificate().
Эта функция была добавлена в Qt 5.15.
См. также addCaCertificate() и QSslCertificate::fromPath().
void QSslConfiguration::addCaCertificates(const QList<QSslCertificate> &certificates)
Добавляет certificates в базу данных сертификатов Удостоверяющих центров (CA) этой конфигурации. База данных сертификатов должна быть установлена до начала рукопожатия SSL. База данных сертификатов Удостоверяющих центров используется сокетом во время фазы рукопожатия для проверки сертификата peer.
Примечание: По умолчанию используется система базы данных сертификатов Удостоверяющих центров. Если она недоступна (как часто бывает на iOS), база данных по умолчанию пуста.
Эта функция была добавлена в Qt 5.15.
См. также caCertificates(), setCaCertificates() и addCaCertificate().
QList<QByteArray> QSslConfiguration::allowedNextProtocols() const
Эта функция возвращает разрешённые протоколы, которые могут быть переговорны с сервером через расширение TLS Next Protocol Negotiation (NPN) или Application-Layer Protocol Negotiation (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() или с помощью addCaCertificate() и addCaCertificates().
См. также setCaCertificates(), addCaCertificate() и addCaCertificates().
QList<QSslCipher> QSslConfiguration::ciphers() const
Возвращает текущий криптографический набор шифров для этого соединения. Этот список используется во время фазы рукопожатия для выбора шифра сеанса. Возвращаемый список шифров упорядочен по убыванию предпочтения (т.е., первый шифр в списке — это наиболее предпочтительный шифр). Шифр сеанса будет первым шифром в списке, который также поддерживается удалённым узлом.
По умолчанию фаза рукопожатия может выбрать любой из шифров, поддерживаемых SSL-библиотеками этой системы, которые могут различаться в зависимости от системы. Список шифров, поддерживаемых SSL-библиотеками этой системы, возвращается функцией QSslSocket::supportedCiphers(). Вы можете ограничить список шифров, используемых для выбора шифра сеанса для этого сокета, вызвав setCiphers() с подмножеством поддерживаемых шифров. Вы можете вернуться к использованию всего набора, вызвав setCiphers() со списком, возвращаемым QSslSocket::supportedCiphers().
Примечание: В настоящее время это не поддерживается в бэкенде Schannel.
См. также setCiphers() и QSslSocket::supportedCiphers().
[static] QSslConfiguration QSslConfiguration::defaultConfiguration()
Возвращает стандартную конфигурацию SSL, которая должна использоваться в новых SSL-соединениях.
Стандартная конфигурация SSL состоит из:
- отсутствия локального сертификата и закрытого ключа
- протокола SecureProtocols
- стандартного списка сертификатов CA системы
- списка шифров, равного списку поддерживаемых шифров SSL библиотек системы, которые используют 128 бит или больше
См. также QSslSocket::supportedCiphers() и setDefaultConfiguration().
[static] QSslConfiguration QSslConfiguration::defaultDtlsConfiguration()
Возвращает стандартную конфигурацию DTLS, которая должна использоваться в новых DTLS-соединениях.
Стандартная конфигурация DTLS состоит из:
- отсутствия локального сертификата и закрытого ключа
- протокола DtlsV1_2OrLater
- стандартного списка сертификатов CA системы
- списка шифров, равного списку поддерживаемых шифров TLS 1.2 библиотек системы, использующих 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 для следующего протокола (NPN) или согласования протоколов на уровне приложений (ALPN) было включено. Для включения расширения NPN/ALPN необходимо явно вызвать setAllowedNextProtocols() перед подключением к серверу.
Если протокол не удалось согласовать или расширение не было включено, эта функция возвращает QByteArray с нулевым значением.
Эта функция была добавлена в Qt 5.3.
См. также setAllowedNextProtocols() и nextProtocolNegotiationStatus().
QSslConfiguration::NextProtocolNegotiationStatus QSslConfiguration::nextProtocolNegotiationStatus() const
Эта функция возвращает статус согласования протокола (NPN) или согласования протокола на уровне приложений (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(), и QSslSocket::newSessionTicketReceived().
int QSslConfiguration::sessionTicketLifeTimeHint() const
Если QSsl::SslOptionDisableSessionPersistence был выключен, эта функция возвращает подсказку времени жизни билета сеанса, отправленного сервером (которая может быть 0). Если сервер не отправил билет сеанса (например, при возобновлении сеанса или когда сервер его не поддерживает) или QSsl::SslOptionDisableSessionPersistence не был выключен, эта функция возвращает -1.
Эта функция была добавлена в Qt 5.2.
См. также sessionTicket(), QSsl::SslOptionDisableSessionPersistence, setSslOption(), и QSslSocket::newSessionTicketReceived().
void QSslConfiguration::setAllowedNextProtocols(QList<QByteArray> protocols)
Эта функция устанавливает разрешённые протоколы, которые должны быть согласованы с сервером через расширение TLS для следующего протокола (NPN) или протокола прикладного уровня (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().
END_OF_DOCUMENT_MARKERvoid 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() и QSslSocket::supportedCiphers().
[static] void QSslConfiguration::setDefaultConfiguration(const QSslConfiguration &configuration)
Устанавливает конфигурацию SSL по умолчанию, которая будет использоваться в новых подключениях SSL, в configuration. Существующие подключения не затрагиваются этим вызовом.
См. также QSslSocket::supportedCiphers() и defaultConfiguration().
[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)
Эта функция включает проверку куки 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() и QSslSocket::newSessionTicketReceived().
void QSslConfiguration::setSslOption(QSsl::SslOption option, bool on)
Включает или отключает параметр совместимости SSL option. Если on равно true, параметр option включается. Если on равно false, параметр option отключается.
См. также testSslOption().
QList<QSslCipher> QSslConfiguration::supportedCiphers()
Возвращает список криптографических шифров, поддерживаемых этой системой. Этот список устанавливается SSL-библиотеками системы и может различаться в разных системах.
Эта функция была добавлена в Qt 5.5.
См. также ciphers() и setCiphers().
QVector<QSslEllipticCurve> QSslConfiguration::supportedEllipticCurves()
Возвращает список эллиптических кривых, поддерживаемых этой системой. Этот список устанавливается SSL-библиотеками системы и может различаться в разных системах.
Эта функция была добавлена в Qt 5.5.
См. также ellipticCurves() и setEllipticCurves().
void QSslConfiguration::swap(QSslConfiguration &other)
Меняет местами экземпляры SSL-конфигурации с other. Эта функция очень быстрая и никогда не завершается неудачей.
Эта функция была добавлена в Qt 5.0.
QList<QSslCertificate> QSslConfiguration::systemCaCertificates()
Эта функция предоставляет базу данных сертификатов УЦ, предоставленную операционной системой. База данных сертификатов УЦ, возвращаемая этой функцией, используется для инициализации базы данных, возвращаемой caCertificates() в стандартной QSslConfiguration.
Эта функция была добавлена в Qt 5.5.
См. также caCertificates(), setCaCertificates(), defaultConfiguration(), addCaCertificate() и addCaCertificates().
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 во время переговор протокола Next Protocol.
const char [] QSslConfiguration::NextProtocolSpdy3_0
Эта переменная содержит значение, используемое для переговоров SPDY 3.0 во время переговор протокола Next Protocol.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qsslconfiguration.html