Spec-Zone.ru › Qt

Пространство имён QSsl

Пространство имён QSsl объявляет перечисления, общие для всех классов SSL в Qt Network. Подробнее...

Заголовок: #include <QSsl>
CMake: find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

Типы

перечисление с классами УровеньПредупреждения { Предупреждение, Критический, Неизвестный }
перечисление с классами ТипПредупреждения { Закрытие, НеожиданноеСообщение, НеверныйЗаписьMac, ПереполнениеЗаписи, ОшибкаДекомпрессии, …, НеизвестноеСообщениеОбОшибке }
перечисление ТипЗаписиАльтернативногоИмени { АдресПочты, DNS-запись, IP-адрес }
перечисление ФорматКодирования { Pem, Der }
перечисление с классами РеализованныйКласс { Ключ, Сертификат, Сокет, Диффи-Хеллман, ЭллиптическаяКривая, …, DtlsCookie }
перечисление АлгоритмКлюча { Rsa, Dsa, Ec, Dh, Opaque }
перечисление ТипКлюча { ЗакрытыйКлюч, ОткрытыйКлюч }
перечисление ПараметрSsl { ОтключитьПустыеФрагменты, ОтключитьТокеныСессий, ОтключитьСжатие, ОтключитьУказаниеИмениСервера, ОтключитьУстаревшееПереподключение, …, ОтключитьПредпочтениеШифровСервера }
флаги ПараметрыSsl
перечисление ПротоколSsl { TlsV1_0, TlsV1_0OrLater, TlsV1_1, TlsV1_1OrLater, TlsV1_2, …, БезопасныеПротоколы }
перечисление с классами ПоддерживаемаяФункция { ПроверкаСертификата, КлиентскаяСторонаAlpn, СервернаяСторонаAlpn, Ocsp, Psk, …, Предупреждения }

Подробное описание

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

[since 6.0] перечисление с классами УровеньПредупреждения

Описывает уровень сообщения об ошибке

Это перечисление описывает уровень сообщения об ошибке, которое было отправлено или получено.

Постоянная Значение Описание
QSslSocket::AlertLevel::Warning 0 Сообщение об ошибке, которое не является фатальным
QSslSocket::AlertLevel::Fatal 1 Фатальное сообщение об ошибке, основной компонент обработает такую ошибку должным образом и закроет соединение.
QSslSocket::AlertLevel::Unknown 2 Сообщение об ошибке с неизвестным уровнем серьезности.

Это перечисление было введено или изменено в Qt 6.0.

[since 6.0] перечисление AlertType

Перечисляет возможные коды сообщений об ошибках

См. RFC 8446, раздел 6 для возможных значений и их значений.

Константа Значение Описание
QSslSocket::AlertType::CloseNotify 0 ,
QSslSocket::AlertType::UnexpectedMessage 10
QSslSocket::AlertType::BadRecordMac 20
QSslSocket::AlertType::RecordOverflow 22
QSslSocket::AlertType::DecompressionFailure 30
QSslSocket::AlertType::HandshakeFailure 40
QSslSocket::AlertType::NoCertificate 41
QSslSocket::AlertType::BadCertificate 42
QSslSocket::AlertType::UnsupportedCertificate 43
QSslSocket::AlertType::CertificateRevoked 44
QSslSocket::AlertType::CertificateExpired 45
QSslSocket::AlertType::CertificateUnknown 46
QSslSocket::AlertType::IllegalParameter 47
QSslSocket::AlertType::UnknownCa 48
QSslSocket::AlertType::AccessDenied 49
QSslSocket::AlertType::DecodeError 50
QSslSocket::AlertType::DecryptError 51
QSslSocket::AlertType::ExportRestriction 60
QSslSocket::AlertType::ProtocolVersion 70
QSslSocket::AlertType::InsufficientSecurity 71
QSslSocket::AlertType::InternalError 80
QSslSocket::AlertType::InappropriateFallback 86
QSslSocket::AlertType::UserCancelled 90
QSslSocket::AlertType::NoRenegotiation 100
QSslSocket::AlertType::MissingExtension 109
QSslSocket::AlertType::UnsupportedExtension 110
QSslSocket::AlertType::CertificateUnobtainable 111
QSslSocket::AlertType::UnrecognizedName 112
QSslSocket::AlertType::BadCertificateStatusResponse 113
QSslSocket::AlertType::BadCertificateHashValue 114
QSslSocket::AlertType::UnknownPskIdentity 115
QSslSocket::AlertType::CertificateRequired 116
QSslSocket::AlertType::NoApplicationProtocol 120
QSslSocket::AlertType::UnknownAlertMessage 255

Это перечисление было введено или изменено в Qt 6.0.

перечисление QSsl::AlternativeNameEntryType

Описывает типы ключей для записей альтернативных имен в QSslCertificate.

Константа Значение Описание
QSsl::EmailEntry 0 Запись электронной почты; запись содержит адрес электронной почты, для которого сертификат действителен.
QSsl::DnsEntry 1 Запись имени хоста DNS; запись содержит запись имени хоста, для которого сертификат действителен. Запись может содержать подстановочные знаки.
QSsl::IpAddressEntry 2 Запись IP-адреса; запись содержит запись IP-адреса, для которого сертификат действителен, введена в Qt 5.13.

См. также QSslCertificate::subjectAlternativeNames().

перечисление QSsl::EncodingFormat

Описывает поддерживаемые форматы кодирования для сертификатов и ключей.

Постоянная Значение Описание
QSsl::Pem 0 Формат PEM.
QSsl::Der 1 Формат DER.

[since 6.1] перечисление ImplementedClass

Перечисляет классы, реализованные TLS-бекендом.

В QtNetwork некоторые классы имеют реализацию, специфичную для бэкенда, и поэтому могут быть не реализованы. Перечислители в этом перечислении указывают, какой класс имеет рабочую реализацию в бэкенде.

Постоянная Значение Описание
QSslSocket::ImplementedClass::Key 0 Класс QSslKey.
QSslSocket::ImplementedClass::Certificate 1 Класс QSslCertificate.
QSslSocket::ImplementedClass::Socket 2 Класс QSslSocket.
QSslSocket::ImplementedClass::DiffieHellman 3 Класс QSslDiffieHellmanParameters.
QSslSocket::ImplementedClass::EllipticCurve 4 Класс QSslEllipticCurve.
QSslSocket::ImplementedClass::Dtls 5 Класс QDtls.
QSslSocket::ImplementedClass::DtlsCookie 6 Класс QDtlsClientVerifier.

Это перечисление было введено или изменено в Qt 6.1.

перечисление QSsl::KeyAlgorithm

Описывает различные алгоритмы ключей, поддерживаемые QSslKey.

Постоянная Значение Описание
QSsl::Rsa 1 Алгоритм RSA.
QSsl::Dsa 2 Алгоритм DSA.
QSsl::Ec 3 Алгоритм эллиптических кривых.
QSsl::Dh 4 Алгоритм Диффи-Хеллмана.
QSsl::Opaque 0 Ключ, который должен обрабатываться QSslKey как «черный ящик».

Возможность неявного ключа позволяет приложениям добавить поддержку таких функций, как PKCS#11, которые Qt в настоящее время не предлагает напрямую.

перечисление QSsl::KeyType

Описывает два типа ключей, поддерживаемых QSslKey.

Постоянная Значение Описание
QSsl::PrivateKey 0 Закрытый ключ.
QSsl::PublicKey 1 Открытый ключ.

Перечисление QSsl::SslOptionфлаги QSsl::SslOptions

Описывает параметры, которые можно использовать для управления подробностями поведения SSL. Эти параметры обычно используются для отключения функций, чтобы обойти ошибки серверов.

Постоянная Значение Описание
QSsl::SslOptionDisableEmptyFragments 0x01 Отключает вставку пустых фрагментов в данные при использовании блочных шифров. При включении это предотвращает некоторые атаки (например, атаку BEAST), однако это несовместимо с некоторыми серверами.
QSsl::SslOptionDisableSessionTickets 0x02 Отключает расширение SSL session ticket. Это может привести к замедлению установления соединения, однако некоторые серверы несовместимы с этим расширением.
QSsl::SslOptionDisableCompression 0x04 Отключает расширение сжатия SSL. При включении это позволяет сжимать данные, передаваемые через SSL, однако некоторые серверы несовместимы с этим расширением.
QSsl::SslOptionDisableServerNameIndication 0x08 Отключает расширение SSL server name indication. При включении это сообщает серверу о виртуальном хосте, к которому осуществляется доступ, позволяя ему ответить с правильным сертификатом.
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.

Перечисление QSsl::SslProtocol

Описывает протокол шифра.

Постоянная Значение Описание
QSsl::TlsV1_0 0 TLSv1.0
QSsl::TlsV1_0OrLater 5 TLSv1.0 и более поздние версии.
QSsl::TlsV1_1 1 TLSv1.1.
QSsl::TlsV1_1OrLater 6 TLSv1.1 и более поздние версии.
QSsl::TlsV1_2 2 TLSv1.2.
QSsl::TlsV1_2OrLater 7 TLSv1.2 и более поздние версии.
QSsl::DtlsV1_0 8 DTLSv1.0
QSsl::DtlsV1_0OrLater 9 DTLSv1.0 и более поздние версии.
QSsl::DtlsV1_2 10 DTLSv1.2
QSsl::DtlsV1_2OrLater 11 DTLSv1.2 и более поздние версии.
QSsl::TlsV1_3 12 TLSv1.3. (Начиная с Qt 5.12)
QSsl::TlsV1_3OrLater 13 TLSv1.3 и более поздние версии. (Начиная с Qt 5.12)
QSsl::UnknownProtocol -1 Протокол шифра определить невозможно.
QSsl::AnyProtocol 3 Любой поддерживаемый протокол. Это значение используется только QSslSocket.
QSsl::SecureProtocols 4 Значение по умолчанию, использующее протоколы, известные как безопасные.

[since 6.1] перечисление SupportedFeature

Перечисляет возможные функции, которые поддерживает бэкэнд TLS

В QtNetwork классы, связанные с TLS, имеют публичный API, который может быть не реализован некоторыми бэкэндами, например, наш бэкэнд SecureTransport не поддерживает ALPN на стороне сервера. Перечислители из перечисления SupportedFeature указывают, что конкретная функция поддерживается.

Константа Значение Описание
QSslSocket::SupportedFeature::CertificateVerification 0 Указывает, что QSslCertificate::verify() реализовано бэкендом.
QSslSocket::SupportedFeature::ClientSideAlpn 1 ALPN (Протокол согласования протоколов прикладного уровня) на стороне клиента.
QSslSocket::SupportedFeature::ServerSideAlpn 2 ALPN на стороне сервера.
QSslSocket::SupportedFeature::Ocsp 3 OCSP-стапляж (Протокол статуса сертификата онлайн).
QSslSocket::SupportedFeature::Psk 4 Предварительно согласованные ключи.
QSslSocket::SupportedFeature::SessionTicket 5 Жетоны сеанса.
QSslSocket::SupportedFeature::Alerts 6 Информация об отправленных и полученных сообщениях об ошибках.

Этот перечисление был введён или изменён в Qt 6.1.

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

Spec-Zone.ru

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