QSsl Namespace
QSsl 네임스페이스는 ` Qt Network`에 있는 모든 SSL 클래스에 공통적으로 사용되는 열거형을 선언합니다. 더 보기...
| 헤더: | #include <QSsl> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- QSsl은 네트워크 프로그래밍 API의 일부입니다.
유형
(since 6.0) enum class | AlertLevel { Warning, Fatal, Unknown } |
(since 6.0) enum class | AlertType { CloseNotify, UnexpectedMessage, BadRecordMac, RecordOverflow, DecompressionFailure, …, UnknownAlertMessage } |
| enum | AlternativeNameEntryType { EmailEntry, DnsEntry, IpAddressEntry } |
| enum | EncodingFormat { Pem, Der } |
(since 6.1) enum class | ImplementedClass { Key, Certificate, Socket, DiffieHellman, EllipticCurve, …, DtlsCookie } |
| enum | KeyAlgorithm { MlDsa, Rsa, Dsa, Ec, Dh, Opaque } |
| enum | KeyType { PrivateKey, PublicKey } |
| enum | SslOption { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, SslOptionDisableLegacyRenegotiation, …, SslOptionDisableServerCipherPreference } |
| flags | SslOptions |
| enum | SslProtocol { TlsV1_0, TlsV1_0OrLater, TlsV1_1, TlsV1_1OrLater, TlsV1_2, …, SecureProtocols } |
(since 6.1) enum class | SupportedFeature { CertificateVerification, ClientSideAlpn, ServerSideAlpn, Ocsp, Psk, …, Alerts } |
유형 설명
[since 6.0] enum class AlertLevel
경고 메시지의 수준을 설명합니다
이 열거형은 전송되거나 수신된 경고 메시지의 수준을 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QSslSocket::AlertLevel::Warning | 0 | 비치명적 경보 메시지 |
QSslSocket::AlertLevel::Fatal | 1 | 치명적인 경보 메시지. 기본 백엔드가 이러한 경보를 적절히 처리하고 연결을 종료합니다. |
QSslSocket::AlertLevel::Unknown | 2 | 심각도 수준이 알 수 없는 경고. |
이 열거형은 Qt 6.0에서 도입되었습니다.
[since 6.0] enum class 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에서 도입되었습니다.
enum QSsl::AlternativeNameEntryType
QSslCertificate 의 대체 이름 항목에 사용되는 키 유형을 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QSsl::EmailEntry | 0 | 이메일 항목입니다. 이 항목에는 인증서가 유효한 이메일 주소가 포함됩니다. |
QSsl::DnsEntry | 1 | DNS 호스트 이름 항목: 이 항목에는 인증서가 유효한 호스트 이름이 포함됩니다. 이 항목에는 와일드카드가 포함될 수 있습니다. |
QSsl::IpAddressEntry | 2 | IP 주소 항목; 이 항목에는 인증서가 유효한 IP 주소가 포함되어 있으며, Qt 5.13에서 도입되었습니다. |
QSslCertificate::subjectAlternativeNames()도 참조하십시오 .
enum QSsl::EncodingFormat
인증서 및 키에 대해 지원되는 인코딩 형식을 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QSsl::Pem | 0 | PEM 형식. |
QSsl::Der | 1 | DER 형식. |
[since 6.1] enum class 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에서 도입되었습니다.
enum QSsl::KeyAlgorithm
QSslKey 에서 지원하는 다양한 키 알고리즘에 대해 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QSsl::MlDsa | 5 | ML-DSA 알고리즘입니다. |
QSsl::Rsa | 1 | RSA 알고리즘입니다. |
QSsl::Dsa | 2 | DSA 알고리즘. |
QSsl::Ec | 3 | 타원 곡선 알고리즘. |
QSsl::Dh | 4 | 디피-헬만(Diffie-Hellman) 알고리즘. |
QSsl::Opaque | 0 | QSslKey 에서 '블랙박스'로 취급해야 하는 키. |
불투명 키 기능을 통해 애플리케이션은 Qt가 현재 기본적으로 제공하지 않는 PKCS#11과 같은 기능을 지원할 수 있습니다.
enum QSsl::KeyType
QSslKey 가 지원하는 두 가지 키 유형에 대해 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QSsl::PrivateKey | 0 | 개인 키입니다. |
QSsl::PublicKey | 1 | 공개 키입니다. |
enum QSsl::SslOption
flags QSsl::SslOptions
SSL 동작의 세부 사항을 제어하는 데 사용할 수 있는 옵션을 설명합니다. 이러한 옵션은 일반적으로 버그가 있는 서버를 우회하기 위해 기능을 비활성화하는 데 사용됩니다.
| 상수 | 값 | 설명 |
|---|---|---|
QSsl::SslOptionDisableEmptyFragments | 0x01 | 블록 암호를 사용할 때 데이터에 빈 프래그먼트를 삽입하는 기능을 비활성화합니다. 이 옵션을 활성화하면 BEAST 공격과 같은 일부 공격을 방지할 수 있지만, 일부 서버와는 호환되지 않습니다. |
QSsl::SslOptionDisableSessionTickets | 0x02 | SSL 세션 티켓 확장을 비활성화합니다. 이로 인해 연결 설정 속도가 느려질 수 있지만, 일부 서버는 이 확장과 호환되지 않습니다. |
QSsl::SslOptionDisableCompression | 0x04 | SSL 압축 확장을 비활성화합니다. 이 기능을 활성화하면 SSL을 통해 전송되는 데이터를 압축할 수 있지만, 일부 서버는 이 확장과 호환되지 않습니다. |
QSsl::SslOptionDisableServerNameIndication | 0x08 | SSL 서버 이름 표시(SSL Server Name Indication) 확장을 비활성화합니다. 이 옵션을 활성화하면 서버에 액세스 중인 가상 호스트를 알려주어, 서버가 올바른 인증서로 응답할 수 있게 합니다. |
QSsl::SslOptionDisableLegacyRenegotiation | 0x10 | 연결 매개변수를 재협상하기 위한 구식이고 안전하지 않은 메커니즘을 비활성화합니다. 이 옵션을 활성화하면 레거시 서버와의 연결이 가능해질 수 있지만, 공격자가 SSL 세션에 평문을 주입할 가능성이 생깁니다. |
QSsl::SslOptionDisableSessionSharing | 0x20 | 세션 ID 핸드셰이크 속성을 통한 SSL 세션 공유를 비활성화합니다. |
QSsl::SslOptionDisableSessionPersistence | 0x40 | QSslConfiguration::sessionTicket() 함수가 반환하는 대로 SSL 세션을 ASN.1 형식으로 저장하는 기능을 비활성화합니다. 이 기능을 활성화하면 사용 중인 세션 티켓 하나당 약 1K의 메모리 오버헤드가 발생합니다. |
QSsl::SslOptionDisableServerCipherPreference | 0x80 | 클라이언트가 전송한 암호 순서가 아닌 서버의 기본 설정에 따라 암호를 선택하는 기능을 비활성화합니다. 이 옵션은 서버 소켓에만 적용되며, OpenSSL 백엔드에서만 지원됩니다. |
기본적으로 SslOptionDisableEmptyFragments는 많은 서버에서 문제를 일으키므로 활성화되어 있습니다. 또한 SslOptionDisableLegacyRenegotiation은 보안 위험을 초래하므로 활성화되어 있습니다. CRIME을 통해 알려진 공격을 방지하기 위해 SslOptionDisableCompression이 활성화되어 있습니다. 메모리 사용량을 최적화하기 위해 SslOptionDisableSessionPersistence가 활성화되어 있습니다. 그 외의 옵션은 비활성화되어 있습니다.
참고: 위 옵션의 사용가능 여부는 사용 중인 SSL 백엔드의 버전에 따라 다릅니다.
SslOptions 유형은 QFlags<SslOption>에 대한 typedef입니다. 이 유형은 SslOption 값들의 OR 조합을 저장합니다.
enum 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 (since Qt 5.12) | 12 | TLSv1.3. |
QSsl::TlsV1_3OrLater (since Qt 5.12) | 13 | TLSv1.3 및 이후 버전. |
QSsl::UnknownProtocol | -1 | 암호화 프로토콜을 확인할 수 없습니다. |
QSsl::AnyProtocol | 3 | 지원되는 모든 프로토콜. 이 값은 QSslSocket 에서만 사용됩니다. |
QSsl::SecureProtocols | 4 | 기본 옵션으로, 보안이 확인된 프로토콜을 사용합니다. |
[since 6.1] enum class 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에서 도입되었습니다.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.