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 { 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 에서 대체 이름 항목의 키 유형을 설명합니다.
Constant | 값 | 설명 |
---|---|---|
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 에서 일부 클래스는 백엔드 전용 구현을 가지고 있으므로 구현되지 않은 상태로 둘 수 있습니다. 이 열거형의 열거자는 백엔드에서 작동하는 구현이 있는 클래스를 나타냅니다.
Constant | 값 | 설명 |
---|---|---|
QSslSocket::ImplementedClass::Key | 0 | 클래스 QSslKey. |
QSslSocket::ImplementedClass::Certificate | 1 | 클래스 QSslCertificate. |
QSslSocket::ImplementedClass::Socket | 2 | 클래스 QSslSocket. |
QSslSocket::ImplementedClass::DiffieHellman | 3 | 클래스 QSslDiffieHellmanParameters. |
QSslSocket::ImplementedClass::EllipticCurve | 4 | Class QSslEllipticCurve. |
QSslSocket::ImplementedClass::Dtls | 5 | Class QDtls. |
QSslSocket::ImplementedClass::DtlsCookie | 6 | 클래스 QDtlsClientVerifier. |
이 열거형은 Qt 6.1에서 도입되었습니다.
enum QSsl::KeyAlgorithm
QSslKey 에서 지원하는 다양한 주요 알고리즘에 대해 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QSsl::Rsa | 1 | RSA 알고리즘입니다. |
QSsl::Dsa | 2 | DSA 알고리즘입니다. |
QSsl::Ec | 3 | 타원 곡선 알고리즘입니다. |
QSsl::Dh | 4 | 디피-헬만 알고리즘. |
QSsl::Opaque | 0 | QSslKey 에서 '블랙박스'로 취급해야 하는 키입니다. |
불투명 키 기능을 사용하면 응용 프로그램에서 현재 Qt가 기본적으로 제공하지 않는 PKCS#11과 같은 기능에 대한 지원을 추가할 수 있습니다.
enum QSsl::KeyType
QSslKey 에서 지원하는 두 가지 유형의 키에 대해 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QSsl::PrivateKey | 0 | 개인 키입니다. |
QSsl::PublicKey | 1 | 공개 키입니다. |
열거형 QSsl::SslOption
플래그 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 | 세션 ID 핸드셰이크 속성을 통한 SSL 세션 공유를 비활성화합니다. |
QSsl::SslOptionDisableSessionPersistence | 0x40 | QSslConfiguration::sessionTicket()에서 반환된 ASN.1 형식으로 SSL 세션을 저장하지 않도록 설정합니다. 이 기능을 사용 설정하면 사용된 세션 티켓당 약 1K의 메모리 오버헤드가 추가됩니다. |
QSsl::SslOptionDisableServerCipherPreference | 0x80 | 클라이언트가 전송한 순서 암호가 아닌 서버 기본 설정에 따라 선택한 암호를 선택하지 않도록 설정합니다. 이 옵션은 서버 소켓에만 관련되며 OpenSSL 백엔드에서만 적용됩니다. |
많은 수의 서버에서 문제가 발생할 수 있으므로 기본적으로 SslOptionDisableEmptyFragments가 켜져 있습니다. 보안 위험을 초래하므로 SslOptionDisableLegacyRenegotiation도 켜져 있습니다. 범죄에 의해 공개되는 공격을 방지하기 위해 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 | 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]
enum class SupportedFeature
TLS 백엔드가 지원하는 가능한 기능을 열거합니다.
QtNetwork 에서 TLS 관련 클래스에는 일부 백엔드에서 구현되지 않은 채로 남겨질 수 있는 공용 API가 있습니다(예: SecureTransport 백엔드는 서버 측 ALPN을 지원하지 않음). SupportedFeature 열거형의 열거자는 특정 기능이 지원됨을 나타냅니다.
Constant | 값 | 설명 |
---|---|---|
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에 도입되었습니다.
© 2025 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.