Пространство имён QSsl
Пространство имён QSsl объявляет перечисления, общие для всех классов SSL в сети Qt. Подробнее...
| Заголовок: | #include <QSsl> |
| qmake: | QT += network |
| С момента: | Qt 4.3 |
Типы
| перечисление | AlternativeNameEntryType { EmailEntry, DnsEntry } |
| перечисление | EncodingFormat { Pem, Der } |
| перечисление | KeyAlgorithm { Rsa, Dsa, Ec, Opaque } |
| перечисление | KeyType { PrivateKey, PublicKey } |
| перечисление | SslOption { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, ..., SslOptionDisableServerCipherPreference } |
| флаги | SslOptions |
| перечисление | SslProtocol { SslV3, SslV2, TlsV1_0, TlsV1_0OrLater, ..., SecureProtocols } |
Подробное описание
Пространство имён QSsl объявляет перечисления, общие для всех классов SSL в сети Qt.
Документация по типам
перечисление QSsl::AlternativeNameEntryType
Описывает типы ключей для записей альтернативных имён в QSslCertificate.
| Постоянная | Значение | Описание |
|---|---|---|
QSsl::EmailEntry |
0 |
Запись электронной почты; запись содержит адрес электронной почты, для которого сертификат действителен. |
QSsl::DnsEntry |
1 |
Запись имени хоста DNS; запись содержит запись имени хоста, для которого сертификат действителен. Запись может содержать подстановки. |
Примечание: В Qt 4 это перечисление называлось AlternateNameEntryType. Это имя устарело в Qt 5.
См. также QSslCertificate::subjectAlternativeNames().
перечисление QSsl::EncodingFormat
Описывает поддерживаемые форматы кодирования для сертификатов и ключей.
| Константа | Значение | Описание |
|---|---|---|
QSsl::Pem |
0 |
Формат PEM. |
QSsl::Der |
1 |
Формат DER. |
enum QSsl::KeyAlgorithm
Описание различных алгоритмов ключей, поддерживаемых QSslKey.
| Константа | Значение | Описание |
|---|---|---|
QSsl::Rsa |
1 |
Алгоритм RSA. |
QSsl::Dsa |
2 |
Алгоритм DSA. |
QSsl::Ec |
3 |
Алгоритм эллиптических кривых. |
QSsl::Opaque |
0 |
Ключ, который должен обрабатываться как «черный ящик» QSslKey. |
Функциональность неявного ключа позволяет приложениям добавлять поддержку таких функций, как PKCS#11, которых Qt в настоящее время не предоставляет напрямую.
enum QSsl::KeyType
Описание двух типов ключей, поддерживаемых QSslKey.
| Константа | Значение | Описание |
|---|---|---|
QSsl::PrivateKey |
0 |
Закрытый ключ. |
QSsl::PublicKey |
1 |
Открытый ключ. |
enum QSsl::SslOptionflags QSsl::SslOptions
Описание параметров, которые могут быть использованы для управления деталями поведения SSL. Эти параметры обычно используются для отключения функций для решения проблем с глючными серверами.
| Константа | Значение | Описание |
|---|---|---|
QSsl::SslOptionDisableEmptyFragments |
0x01 |
Отключает вставку пустых фрагментов в данные при использовании блочных шифров. При включении это предотвращает некоторые атаки (например, атаку BEAST), однако это несовместимо с некоторыми серверами. |
QSsl::SslOptionDisableSessionTickets |
0x02 |
Отключает расширение билета сеанса SSL. Это может привести к более медленному установлению соединения, однако некоторые серверы несовместимы с расширением. |
QSsl::SslOptionDisableCompression |
0x04 |
Отключает расширение сжатия SSL. При включении это позволяет сжимать данные, передаваемые по SSL, однако некоторые серверы несовместимы с этим расширением. |
QSsl::SslOptionDisableServerNameIndication |
0x08 |
Отключает расширение указания имени сервера SSL. При включении это сообщает серверу о виртуальном хосте, к которому осуществляется доступ, позволяя ему ответить соответствующим сертификатом. |
QSsl::SslOptionDisableLegacyRenegotiation |
0x10 |
Отключает более старый небезопасный механизм переустановки параметров соединения. При включении этот параметр может позволить подключения к устаревшим серверам, но он вводит возможность, что злоумышленник может вставить незашифрованный текст в сеанс SSL. |
QSsl::SslOptionDisableSessionSharing |
0x20 |
Отключает совместное использование сеанса SSL через атрибут рукопожатия идентификатора сеанса. |
QSsl::SslOptionDisableSessionPersistence |
0x40 |
Отключает хранение сеанса SSL в формате ASN.1, возвращаемом QSslConfiguration::sessionTicket(). Включение этой функции добавляет объем памяти примерно 1 КБ на каждый используемый билет сеанса. |
QSsl::SslOptionDisableServerCipherPreference |
0x80 |
Отключает выбор шифра, выбранного на основе предпочтений сервера, а не порядка шифров, отправленных клиентом. Этот параметр относится только к сокетам сервера и соблюдается только бэкендом OpenSSL. |
По умолчанию SslOptionDisableEmptyFragments включен, так как это вызывает проблемы со многими серверами. SslOptionDisableLegacyRenegotiation также включен, так как он представляет собой риск для безопасности. SslOptionDisableCompression включен для предотвращения атаки, опубликованной в CRIME. SslOptionDisableSessionPersistence включен для оптимизации использования памяти. Другие параметры выключены.
Примечание: Доступность вышеперечисленных параметров зависит от версии используемого бэкенда SSL.
Тип SslOptions — это псевдоним для QFlags<SslOption>. Он хранит логическое ИЛИ сочетание значений SslOption.
enum QSsl::SslProtocol
Описание протокола шифра.
| Постоянная | Значение | Описание |
|---|---|---|
QSsl::SslV3 |
0 |
SSLv3. При использовании бэкенда WinRT этот параметр также включит TLSv1.0 |
QSsl::SslV2 |
1 |
SSLv2. Обратите внимание, что поддержка SSLv2 была удалена в OpenSSL 1.1. |
QSsl::TlsV1_0 |
2 |
TLSv1.0 |
QSsl::TlsV1_0OrLater |
8 |
TLSv1.0 и более поздние версии. Этот параметр недоступен при использовании бэкенда WinRT из-за ограничений платформы. |
QSsl::TlsV1 |
TlsV1_0 |
Устаревший, означает то же, что и TlsV1_0 |
QSsl::TlsV1_1 |
3 |
TLSv1.1. При использовании бэкенда WinRT этот параметр также включит TLSv1.0. |
QSsl::TlsV1_1OrLater |
9 |
TLSv1.1 и более поздние версии. Этот параметр недоступен при использовании бэкенда WinRT из-за ограничений платформы. |
QSsl::TlsV1_2 |
4 |
TLSv1.2. При использовании бэкенда WinRT этот параметр также включит TLSv1.0 и TLSv1.1. |
QSsl::TlsV1_2OrLater |
10 |
TLSv1.2 и более поздние версии. Этот параметр недоступен при использовании бэкенда WinRT из-за ограничений платформы. |
QSsl::UnknownProtocol |
-1 |
Протокол шифра определить невозможно. |
QSsl::AnyProtocol |
5 |
Сокет понимает SSLv2, SSLv3, TLSv1.0 и все поддерживаемые более поздние версии TLS. Это значение используется только классом QSslSocket. |
QSsl::TlsV1SslV3 |
6 |
На стороне клиента это отправит TLS 1.0 Client Hello, что позволит использовать соединения TLSv1_0 и SSLv3. На стороне сервера это позволит использовать соединения как SSLv3, так и TLSv1_0. |
QSsl::SecureProtocols |
7 |
Параметр по умолчанию, использующий известные безопасные протоколы; в настоящее время ведет себя аналогично TlsV1Ssl3, но отказывается от подключений SSLv3, которые не обновляются до TLS. |
Примечание: большинство серверов понимают как SSL, так и TLS, но рекомендуется использовать только TLS по соображениям безопасности. Однако SSL и TLS несовместимы друг с другом: если у вас возникают неожиданные сбои рукопожатия, проверьте, что вы выбрали правильное значение для вашего протокола.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qssl.html