Класс QSslConfiguration
Класс QSslConfiguration хранит конфигурацию и состояние подключения SSL. Подробнее...
| Заголовок: | #include <QSslConfiguration> |
| qmake: | QT += network |
| С момента: | Qt 4.4 |
Этот класс был добавлен в Qt 4.4.
Примечание: Все функции в этом классе являются повторно входящими.
Открытые типы
| Перечисление | NextProtocolNegotiationStatus { NextProtocolNegotiationNone, NextProtocolNegotiationNegotiated, NextProtocolNegotiationUnsupported } |
Открытые функции
| QSslConfiguration(const QSslConfiguration &other) | |
| QSslConfiguration() | |
| QSslConfiguration & | operator=(const QSslConfiguration &other) |
| ~QSslConfiguration() | |
| QList<QByteArray> | allowedNextProtocols() const |
| QMap<QByteArray, QVariant> | backendConfiguration() const |
| QList<QSslCertificate> | caCertificates() const |
| QList<QSslCipher> | ciphers() const |
| QSslDiffieHellmanParameters | diffieHellmanParameters() const |
| bool | dtlsCookieVerificationEnabled() const |
| QVector<QSslEllipticCurve> | ellipticCurves() const |
| QSslKey | ephemeralServerKey() const |
| bool | isNull() const |
| QSslCertificate | localCertificate() const |
| QList<QSslCertificate> | localCertificateChain() const |
| QByteArray | nextNegotiatedProtocol() const |
| QSslConfiguration::NextProtocolNegotiationStatus | nextProtocolNegotiationStatus() const |
| bool | ocspStaplingEnabled() const |
| QSslCertificate | peerCertificate() const |
| QList<QSslCertificate> | peerCertificateChain() const |
| int | peerVerifyDepth() const |
| QSslSocket::PeerVerifyMode | peerVerifyMode() const |
| QByteArray | preSharedKeyIdentityHint() const |
| QSslKey | privateKey() const |
| QSsl::SslProtocol | protocol() const |
| QSslCipher | sessionCipher() const |
| QSsl::SslProtocol | sessionProtocol() const |
| QByteArray | sessionTicket() const |
| int | sessionTicketLifeTimeHint() const |
| void | setAllowedNextProtocols(QList<QByteArray> protocols) |
| void | setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = QMap<QByteArray, QVariant>()) |
| void | setBackendConfigurationOption(const QByteArray &name, const QVariant &value) |
| void | setCaCertificates(const QList<QSslCertificate> &certificates) |
| void | setCiphers(const QList<QSslCipher> &ciphers) |
| void | setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams) |
| void | setDtlsCookieVerificationEnabled(bool enable) |
| void | setEllipticCurves(const QVector<QSslEllipticCurve> &curves) |
| void | setLocalCertificate(const QSslCertificate &certificate) |
| void | setLocalCertificateChain(const QList<QSslCertificate> &localChain) |
| void | setOcspStaplingEnabled(bool enabled) |
| void | setPeerVerifyDepth(int depth) |
| void | setPeerVerifyMode(QSslSocket::PeerVerifyMode mode) |
| void | setPreSharedKeyIdentityHint(const QByteArray &hint) |
| void | setPrivateKey(const QSslKey &key) |
| void | setProtocol(QSsl::SslProtocol protocol) |
| void | setSessionTicket(const QByteArray &sessionTicket) |
| void | setSslOption(QSsl::SslOption option, bool on) |
| void | swap(QSslConfiguration &other) |
| bool | testSslOption(QSsl::SslOption option) const |
| bool | operator!=(const QSslConfiguration &other) const |
| bool | operator==(const QSslConfiguration &other) const |
Статические публичные члены
| const char [] | NextProtocolHttp1_1 |
| const char [] | NextProtocolSpdy3_0 |
| QSslConfiguration | defaultConfiguration() |
| QSslConfiguration | defaultDtlsConfiguration() |
| void | setDefaultConfiguration(const QSslConfiguration &configuration) |
| void | setDefaultDtlsConfiguration(const QSslConfiguration &configuration) |
| QList<QSslCipher> | supportedCiphers() |
| QVector<QSslEllipticCurve> | supportedEllipticCurves() |
| QList<QSslCertificate> | systemCaCertificates() |
Подробное описание
QSslConfiguration используется классами Qt для сетевого взаимодействия для передачи информации об открытом соединении SSL и для предоставления приложениям возможности управлять определёнными его характеристиками.
Настройки, поддерживаемые QSslConfiguration:
- Используемый протокол SSL/TLS
- Представляемый сертификат для клиента во время подключения и соответствующий ему закрытый ключ
- Допустимые шифры для шифрования соединения
- Список сертификатов Удостоверяющих центров, используемых для проверки сертификата клиента
Эти настройки применяются только во время установления соединения. Установка их после установления соединения не оказывает никакого влияния.
Состояние, поддерживаемое QSslConfiguration:
- Представленный клиентом сертификат во время рукопожатия вместе с цепочкой, ведущей к сертификату УЦ
- Используемый для шифрования этого сеанса шифр
Состояние может быть получено только после начала 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 пусто, этот объект тоже будет пустым.
QSslConfiguration::QSslConfiguration()
Создаёт пустую конфигурацию SSL. Эта конфигурация не содержит действительных настроек, а состояние будет пустым. isNull() вернёт true после вызова этого конструктора.
После вызова любого метода-установщика isNull() вернёт false.
QSslConfiguration &QSslConfiguration::operator=(const QSslConfiguration &other)
Копирует конфигурацию и состояние other. Если other пусто, этот объект тоже будет пустым.
QSslConfiguration::~QSslConfiguration()
Освобождает все ресурсы, удерживаемые QSslConfiguration.
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
Возвращает базу данных сертификатов УЦ для этого соединения. База данных сертификатов УЦ используется сокетом на фазе рукопожатия для проверки сертификата удалённого узла. Она может быть изменена до фазы рукопожатия с помощью setCaCertificates() или с помощью QSslSocket's addCaCertificate() и addCaCertificates().
См. также setCaCertificates().
QList<QSslCipher> QSslConfiguration::ciphers() const
Возвращает текущий набор криптографических шифров для этого соединения. Этот список используется на фазе рукопожатия для выбора шифра сеанса. Возвращаемый список шифров упорядочен по убыванию приоритета. (т.е., первый шифр в списке — самый предпочтительный). Шифр сеанса будет первым в списке, который также поддерживается удалённым узлом.
По умолчанию фаза рукопожатия может выбрать любой из шифров, поддерживаемых SSL-библиотеками этой системы, которые могут различаться в зависимости от системы. Список шифров, поддерживаемых SSL-библиотеками этой системы, возвращается QSslSocket::supportedCiphers(). Вы можете ограничить список шифров, используемых для выбора шифра сеанса для этого сокета, вызвав setCiphers() с подмножеством поддерживаемых шифров. Вы можете вернуться к использованию всего набора, вызвав setCiphers() со списком, возвращённым QSslSocket::supportedCiphers().
Примечание: Это в настоящее время не поддерживается в бэкенде Schannel.
См. также setCiphers() и QSslSocket::supportedCiphers().
QSslConfiguration QSslConfiguration::defaultConfiguration()
Возвращает стандартную конфигурацию SSL, используемую для новых SSL-соединений.
Стандартная конфигурация SSL состоит из:
- отсутствия локального сертификата и закрытого ключа
- протокола SecureProtocols
- стандартного списка сертификатов УЦ системы
- списка шифров, равного списку поддерживаемых SSL-библиотек шифров SSL, которые имеют 128 бит или более
См. также QSslSocket::supportedCiphers() и setDefaultConfiguration().
[static] QSslConfiguration QSslConfiguration::defaultDtlsConfiguration()
Возвращает стандартную конфигурацию DTLS, используемую при установлении новых соединений DTLS.
Стандартная конфигурация DTLS включает:
- отсутствие локального сертификата и закрытого ключа
- протокол DtlsV1_2OrLater
- стандартный список сертификатов доверенных центров выдачи сертификатов системы
- список шифров, равный списку шифров TLS 1.2, поддерживаемых SSL-библиотеками, которые используют 128 или более битов секрета для шифра.
См. также setDefaultDtlsConfiguration().
QSslDiffieHellmanParameters QSslConfiguration::diffieHellmanParameters() const
Возвращает текущий набор параметров Diffie-Hellman.
Если параметры Diffie-Hellman не были заданы, объект QSslConfiguration по умолчанию использует 1024-битовую группу MODP из RFC 2409.
Функция была добавлена в Qt 5.8.
См. также setDiffieHellmanParameters().
bool QSslConfiguration::dtlsCookieVerificationEnabled() const
Данная функция возвращает true, если проверка куки DTLS была включена для сокета на стороне сервера.
См. также setDtlsCookieVerificationEnabled().
QVector<QSslEllipticCurve> QSslConfiguration::ellipticCurves() const
Возвращает текущий список эллиптических кривых для данного соединения. Этот список используется на стадии установления соединения для выбора эллиптической кривой (при использовании шифра с эллиптической кривой). Возвращаемый список кривых упорядочен по убыванию приоритета (т.е., первая кривая в списке имеет наивысший приоритет).
По умолчанию, на стадии установления соединения может быть выбрана любая кривая, поддерживаемая SSL-библиотеками системы, которая может отличаться от системы к системе. Список кривых, поддерживаемых SSL-библиотеками системы, возвращается методом QSslSocket::supportedEllipticCurves().
Вы можете ограничить список кривых, используемых для выбора шифра сессии для данного сокета, вызвав setEllipticCurves() с подмножеством поддерживаемых шифров. Вы можете вернуть использование всего набора, вызвав setEllipticCurves() со списком, возвращенным QSslSocket::supportedEllipticCurves().
Функция была добавлена в Qt 5.5.
См. также setEllipticCurves.
QSslKey QSslConfiguration::ephemeralServerKey() const
Возвращает временный ключ сервера, используемый для алгоритмов шифрования с прямым секретом, например, DHE-RSA-AES128-SHA.
Временный ключ доступен только в режиме клиента, т.е. QSslSocket::SslClientMode. В режиме сервера или при использовании алгоритма шифрования без прямого секрета возвращается нулевой ключ. Временный ключ сервера будет установлен перед выводом сигнала encrypted().
Функция была добавлена в Qt 5.7.
bool QSslConfiguration::isNull() const
Возвращает true если это нулевой объект QSslConfiguration.
Объект QSslConfiguration является нулевым, если он был создан по умолчанию и не были вызваны методы установки.
См. также setProtocol(), setLocalCertificate(), setPrivateKey(), setCiphers() и setCaCertificates().
QSslCertificate QSslConfiguration::localCertificate() const
Возвращает сертификат, который будет представлен партнёру во время процесса рукопожатия SSL.
См. также setLocalCertificate().
QList<QSslCertificate> QSslConfiguration::localCertificateChain() const
Возвращает цепочку сертификатов, которая будет представлена партнеру во время процесса рукопожатия SSL.
Функция была добавлена в Qt 5.1.
См. также setLocalCertificateChain() и localCertificate().
QByteArray QSslConfiguration::nextNegotiatedProtocol() const
Эта функция возвращает протокол, согласованный с сервером, если расширение TLS Next Protocol Negotiation (NPN) или Application-Layer Protocol Negotiation (ALPN) было включено. Для включения расширения NPN/ALPN необходимо явно вызвать setAllowedNextProtocols() до подключения к серверу.
Если протокол не удалось согласовать или расширение не было включено, эта функция возвращает QByteArray, равный null.
Функция была добавлена в Qt 5.3.
См. также setAllowedNextProtocols() и nextProtocolNegotiationStatus().
QSslConfiguration::NextProtocolNegotiationStatus QSslConfiguration::nextProtocolNegotiationStatus() const
Эта функция возвращает статус Next Protocol Negotiation (NPN) или Application-Layer Protocol Negotiation (ALPN). Если функция не была включена с помощью setAllowedNextProtocols(), эта функция возвращает NextProtocolNegotiationNone. Статус будет установлен перед выводом сигнала encrypted().
Функция была добавлена в Qt 5.3.
См. также setAllowedNextProtocols(), allowedNextProtocols(), nextNegotiatedProtocol() и QSslConfiguration::NextProtocolNegotiationStatus.
bool QSslConfiguration::ocspStaplingEnabled() const
Возвращает true, если OCSP стаплин был включен с помощью setOCSPStaplingEnabled(), иначе false (что является значением по умолчанию).
Функция была добавлена в Qt 5.13.
См. также setOcspStaplingEnabled().
QSslCertificate QSslConfiguration::peerCertificate() const
Возвращает цифровой сертификат партнёра (т.е., непосредственный сертификат хоста, к которому вы подключены), или нулевой сертификат, если партнёр не предоставил сертификат.
Сертификат партнёра автоматически проверяется на стадии установления соединения, поэтому эта функция обычно используется для извлечения сертификата для отображения или для диагностики соединения. Он содержит информацию о партнёре, включая имя хоста, центр сертификации, выпустивший сертификат, и открытый ключ партнёра.
Поскольку сертификат партнёра устанавливается во время процесса рукопожатия, обращение к сертификату партнёра безопасно из слота, подключенного к сигналу QSslSocket::sslErrors(), QNetworkReply::sslErrors() или сигналу QSslSocket::encrypted().
Возврат нулевого сертификата может означать сбой процесса рукопожатия SSL, отсутствие сертификата у хоста, к которому вы подключены, или отсутствие соединения.
Если требуется проверить полную цепочку сертификатов партнёра, используйте peerCertificateChain() для получения всех сертификатов сразу.
См. также peerCertificateChain(), QSslSocket::sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::sslErrors() и QNetworkReply::ignoreSslErrors().
QList<QSslCertificate> QSslConfiguration::peerCertificateChain() const
Возвращает цепочку цифровых сертификатов партнёра, начиная с непосредственного сертификата партнёра и заканчивая сертификатом центра сертификации.
Сертификаты партнёра проверяются автоматически на стадии установления соединения. Эта функция обычно используется для извлечения сертификатов для отображения или для проведения диагностики соединения. Сертификаты содержат информацию о партнёре и центрах сертификации, выпустивших сертификаты, включая имя хоста, имена центров сертификации и открытые ключи центров сертификации.
Поскольку сертификат партнёра устанавливается во время процесса рукопожатия, обращение к сертификату партнёра безопасно из слота, подключенного к сигналу QSslSocket::sslErrors(), QNetworkReply::sslErrors() или сигналу QSslSocket::encrypted().
Возврат пустого списка может означать сбой процесса рукопожатия SSL, отсутствие сертификата у хоста, к которому вы подключены, или отсутствие соединения.
Если требуется получить только непосредственный сертификат партнёра, используйте peerCertificate().
См. также peerCertificate(), QSslSocket::sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::sslErrors() и QNetworkReply::ignoreSslErrors().
int QSslConfiguration::peerVerifyDepth() const
Возвращает максимальное количество сертификатов в цепочке сертификатов удаленного узла, которые необходимо проверить во время фазы рукопожатия SSL, или 0 (по умолчанию), если максимальная глубина не была установлена, что указывает на необходимость проверки всей цепочки сертификатов.
Сертификаты проверяются в порядке выдачи, начиная с сертификата самого удалённого узла, затем сертификата его издателя и так далее.
См. также setPeerVerifyDepth() и peerVerifyMode().
QSslSocket::PeerVerifyMode QSslConfiguration::peerVerifyMode() const
Возвращает режим проверки. Этот режим определяет, должен ли QSslSocket запросить сертификат от удалённого узла (т.е. клиент запрашивает сертификат от сервера, или сервер запрашивает сертификат от клиента), и должен ли он потребовать, чтобы этот сертификат был действительным.
Режим по умолчанию — AutoVerifyPeer, который сообщает QSslSocket использовать VerifyPeer для клиентов и QueryPeer для серверов.
См. также setPeerVerifyMode().
QByteArray QSslConfiguration::preSharedKeyIdentityHint() const
Возвращает подсказку идентификатора.
Эта функция была добавлена в Qt 5.8.
См. также setPreSharedKeyIdentityHint().
QSslKey QSslConfiguration::privateKey() const
Возвращает SSL ключ, назначенный этому соединению, или пустой ключ, если ключ ещё не назначен.
См. также setPrivateKey() и localCertificate().
QSsl::SslProtocol QSslConfiguration::protocol() const
Возвращает настройку протокола для этой SSL конфигурации.
См. также setProtocol().
QSslCipher QSslConfiguration::sessionCipher() const
Возвращает криптографическое шифрование сокета, или пустое шифрование, если соединение не зашифровано. Шифрование сокета для сеанса устанавливается во время фазы рукопожатия. Шифрование используется для шифрования и дешифрования данных, передаваемых через сокет.
Инфраструктура SSL также предоставляет функции для установки упорядоченного списка шифров, из которых фаза рукопожатия в конечном итоге выберет сеансовое шифрование. Этот упорядоченный список должен быть создан до начала фазы рукопожатия.
См. также ciphers(), setCiphers() и QSslSocket::supportedCiphers().
QSsl::SslProtocol QSslConfiguration::sessionProtocol() const
Возвращает SSL/TLS протокол сокета или UnknownProtocol, если соединение не зашифровано. Протокол сокета для сеанса устанавливается во время фазы рукопожатия.
Эта функция была добавлена в Qt 5.4.
См. также protocol() и setProtocol().
QByteArray QSslConfiguration::sessionTicket() const
Если QSsl::SslOptionDisableSessionPersistence был выключен, эта функция возвращает сеансовый билет, используемый в SSL рукопожатии в формате ASN.1, подходящий, например, для сохранения на диске. Если сеансовый билет не использовался или QSsl::SslOptionDisableSessionPersistence не был выключен, эта функция возвращает пустой QByteArray.
Примечание: При сохранении сеансового билета на диск или аналогичным образом, будьте осторожны, чтобы не раскрыть сеанс потенциальному злоумышленнику, поскольку знание сеанса позволяет подслушивать данные, зашифрованные с параметрами сеанса.
Эта функция была добавлена в Qt 5.2.
См. также setSessionTicket(), QSsl::SslOptionDisableSessionPersistence и setSslOption().
int QSslConfiguration::sessionTicketLifeTimeHint() const
Если QSsl::SslOptionDisableSessionPersistence был выключен, эта функция возвращает подсказку времени жизни сеансового билета, отправленную сервером (которая может быть 0). Если сервер не отправил сеансовый билет (например, при возобновлении сеанса или когда сервер его не поддерживает) или QSsl::SslOptionDisableSessionPersistence не был выключен, эта функция возвращает -1.
Эта функция была добавлена в Qt 5.2.
См. также sessionTicket(), QSsl::SslOptionDisableSessionPersistence и setSslOption().
void QSslConfiguration::setAllowedNextProtocols(QList<QByteArray> protocols)
Эта функция устанавливает разрешённые protocols для переговоров с сервером через расширение TLS Next Protocol Negotiation (NPN) или Application-Layer Protocol Negotiation (ALPN); каждый элемент в protocols должен определять один разрешённый протокол. Функция должна быть вызвана явно перед подключением, чтобы отправить расширение NPN/ALPN в SSL рукопожатии. Успех или неудачу переговоров можно узнать, обратившись к nextProtocolNegotiationStatus().
Эта функция была добавлена в Qt 5.3.
См. также nextNegotiatedProtocol(), nextProtocolNegotiationStatus(), allowedNextProtocols(), QSslConfiguration::NextProtocolSpdy3_0 и QSslConfiguration::NextProtocolHttp1_1.
void QSslConfiguration::setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = QMap<QByteArray, QVariant>())
Устанавливает или очищает конфигурацию, специфичную для бэкенда.
Без параметра backendConfiguration эта функция очистит конфигурацию, специфичную для бэкенда. Более подробная информация о поддерживаемых опциях доступна в документации к setBackendConfigurationOption().
Эта функция была добавлена в Qt 5.11.
См. также backendConfiguration() и setBackendConfigurationOption().
void QSslConfiguration::setBackendConfigurationOption(const QByteArray &name, const QVariant &value)
Устанавливает опцию name в конфигурации, специфичной для бэкенда, на значение value.
Опции, поддерживаемые бэкендом OpenSSL (>= 1.0.2), доступны в документации поддерживаемых команд файла конфигурации. Ожидаемый тип для параметра value — QByteArray для всех опций. Примеры показывают, как использовать некоторые из опций.
Примечание: Конфигурация, специфичная для бэкенда, будет применена после общей конфигурации. Использование конфигурации, специфичной для бэкенда, для повторного задания общей опции конфигурации перезапишет общую опцию конфигурации.
Эта функция была добавлена в Qt 5.11.
См. также backendConfiguration() и setBackendConfiguration().
void QSslConfiguration::setCaCertificates(const QList<QSslCertificate> &certificates)
Устанавливает базу данных сертификатов CA данного сокета на certificates. База данных сертификатов CA должна быть установлена до начала SSL рукопожатия. База данных сертификатов CA используется сокетом во время фазы рукопожатия для проверки сертификата удалённого узла.
Примечание: Конфигурация по умолчанию использует системную базу данных сертификатов CA. Если она недоступна (как это часто бывает на iOS), база данных по умолчанию пуста.
См. также caCertificates().
void QSslConfiguration::setCiphers(const QList<QSslCipher> &ciphers)
Устанавливает криптографический набор шифров для этого сокета на ciphers, который должен содержать подмножество шифров в списке, возвращаемом supportedCiphers().
Ограничение набора шифров должно быть выполнено до фазы рукопожатия, где выбирается сеансовый шифр.
Примечание: В настоящее время это не поддерживается в бэкенде Schannel.
См. также ciphers() и QSslSocket::supportedCiphers().
[static] void QSslConfiguration::setDefaultConfiguration(const QSslConfiguration &configuration)
Устанавливает конфигурацию SSL по умолчанию, которая будет использоваться в новых SSL соединениях, как configuration. Существующие соединения не затрагиваются этим вызовом.
См. также QSslSocket::supportedCiphers() и defaultConfiguration().
[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().
void QSslConfiguration::setSslOption(QSsl::SslOption option, bool on)
Включает или выключает опцию совместимости SSL. Если on имеет значение true, опция включается. Если on имеет значение false, опция выключается.
См. также testSslOption().
[static] QList<QSslCipher> QSslConfiguration::supportedCiphers()
Возвращает список криптографических шифров, поддерживаемых этой системой. Этот список устанавливается системными библиотеками SSL и может различаться в зависимости от системы.
Эта функция была добавлена в Qt 5.5.
См. также ciphers() и setCiphers().
[static] QVector<QSslEllipticCurve> QSslConfiguration::supportedEllipticCurves()
Возвращает список эллиптических кривых, поддерживаемых этой системой. Этот список устанавливается системными библиотеками SSL и может различаться в зависимости от системы.
Эта функция была добавлена в Qt 5.5.
См. также ellipticCurves() и setEllipticCurves().
void QSslConfiguration::swap(QSslConfiguration &other)
Меняет местами эту конфигурацию SSL с other. Эта функция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 5.0.
[static] QList<QSslCertificate> QSslConfiguration::systemCaCertificates()
Эта функция предоставляет базу данных сертификатов УЦ, предоставленную операционной системой. База данных сертификатов УЦ, возвращаемая этой функцией, используется для инициализации базы данных, возвращаемой функцией caCertificates() в стандартной конфигурации QSslConfiguration.
Эта функция была добавлена в Qt 5.5.
См. также caCertificates(), setCaCertificates() и defaultConfiguration().
bool QSslConfiguration::testSslOption(QSsl::SslOption option) const
Возвращает true значение, если указанный параметр совместимости SSL option включён.
Эта функция была добавлена в Qt 4.8.
См. также setSslOption().
bool QSslConfiguration::operator!=(const QSslConfiguration &other) const
Возвращает true значение, если этот объект QSslConfiguration отличается от other. Два объекта QSslConfiguration считаются разными, если любой параметр или состояние отличаются.
См. также operator==().
bool QSslConfiguration::operator==(const QSslConfiguration &other) const
Возвращает true значение, если этот объект QSslConfiguration равен other.
Два объекта QSslConfiguration считаются равными, если у них точно такие же настройки и состояние.
См. также operator!=().
Документация по переменным-членам
const char [] QSslConfiguration::NextProtocolHttp1_1
Эта переменная хранит значение, используемое для переговоров по протоколу HTTP 1.1 во время переговоров по протоколу 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.13/qsslconfiguration.html