Пространство имён QSsl
Пространство имён QSsl объявляет перечисления, общие для всех классов SSL в Qt Network. Подробнее...
| Заголовок: | #include <QSsl> |
| qmake: | QT += network |
| С момента: | Qt 4.3 |
Это пространство имён было введено в Qt 4.3.
Типы
| перечисление | Тип записи альтернативного имени { EmailEntry, DnsEntry, IpAddressEntry } |
| перечисление | Формат кодирования { Pem, Der } |
| перечисление | Алгоритм ключа { Rsa, Dsa, Ec, Dh, Opaque } |
| перечисление | Тип ключа { PrivateKey, PublicKey } |
| перечисление | Параметр SSL { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, SslOptionDisableLegacyRenegotiation, …, SslOptionDisableServerCipherPreference } |
| флаги | Параметры SSL |
| перечисление | Протокол SSL { SslV3, SslV2, TlsV1_0, TlsV1_0OrLater, TlsV1, …, SecureProtocols } |
Подробное описание
Документация типов
перечисление QSsl::Тип записи альтернативного имени
Описывает типы ключей для записей альтернативных имен в QSslCertificate.
| Постоянная | Значение | Описание |
|---|---|---|
QSsl::EmailEntry |
0 |
Запись электронной почты; запись содержит адрес электронной почты, для которого сертификат действителен. |
QSsl::DnsEntry |
1 |
Запись имени хоста DNS; запись содержит запись имени хоста, для которого сертификат действителен. Запись может содержать подстановки. |
QSsl::IpAddressEntry |
2 |
Запись IP-адреса; запись содержит запись IP-адреса, для которого сертификат действителен, введена в Qt 5.13. |
Примечание: В Qt 4 это перечисление называлось AlternateNameEntryType. Это имя устарело в Qt 5.
См. также QSslCertificate::subjectAlternativeNames().
перечисление QSsl::Формат кодирования
Описывает поддерживаемые форматы кодирования для сертификатов и ключей.
| Постоянная | Значение | Описание |
|---|---|---|
QSsl::Pem |
0 |
Формат PEM. |
QSsl::Der |
1 |
Формат DER. |
enum QSsl::KeyAlgorithm
Описание различных алгоритмов шифрования ключей, поддерживаемых QSslKey.
| Постоянная | Значение | Описание |
|---|---|---|
QSsl::Rsa |
1 |
Алгоритм RSA. |
QSsl::Dsa |
2 |
Алгоритм DSA. |
QSsl::Ec |
3 |
Алгоритм Эллиптических кривых. |
QSsl::Dh |
4 |
Алгоритм Диффи-Хеллмана. |
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; не поддерживается QSslSocket. |
QSsl::SslV2 |
1 |
SSLv2; не поддерживается QSslSocket. |
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::DtlsV1_0 |
11 |
DTLSv1.0 |
QSsl::DtlsV1_0OrLater |
12 |
DTLSv1.0 и более поздние версии. |
QSsl::DtlsV1_2 |
13 |
DTLSv1.2 |
QSsl::DtlsV1_2OrLater |
14 |
DTLSv1.2 и более поздние версии. |
QSsl::TlsV1_3 |
15 |
TLSv1.3. (Начиная с Qt 5.12) |
QSsl::TlsV1_3OrLater |
16 |
TLSv1.3 и более поздние версии. (Начиная с Qt 5.12) |
QSsl::UnknownProtocol |
-1 |
Протокол шифра не может быть определен. |
QSsl::AnyProtocol |
5 |
Любой поддерживаемый протокол. Это значение используется только QSslSocket. |
QSsl::TlsV1SslV3 |
6 |
То же, что TlsV1_0. Этот перечислитель устарел, используйте TlsV1_0 вместо него. |
QSsl::SecureProtocols |
AnyProtocol + 2 |
Параметр по умолчанию, использующий протоколы, известные как безопасные. |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qssl.html