QSslConfiguration Class
QSslConfiguration 클래스는 SSL 연결의 구성 및 상태를 관리합니다. 더 보기...
| 헤더: | #include <QSslConfiguration> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- 상속된 멤버를 포함한 모든 멤버 목록
- QSslConfiguration은 네트워크 프로그래밍 API 및 암시적 공유 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
공개 유형
| enum | NextProtocolNegotiationStatus { NextProtocolNegotiationNone, NextProtocolNegotiationNegotiated, NextProtocolNegotiationUnsupported } |
공개 함수
| QSslConfiguration() | |
| QSslConfiguration(const QSslConfiguration &other) | |
| ~QSslConfiguration() | |
| void | addCaCertificate(const QSslCertificate &certificate) |
| void | addCaCertificates(const QList<QSslCertificate> &certificates) |
| bool | addCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = QSslCertificate::PatternSyntax::FixedString) |
| QList<QByteArray> | allowedNextProtocols() const |
| QMap<QByteArray, QVariant> | backendConfiguration() const |
| QList<QSslCertificate> | caCertificates() const |
| QList<QSslCipher> | ciphers() const |
| QSslDiffieHellmanParameters | diffieHellmanParameters() const |
| bool | dtlsCookieVerificationEnabled() const |
| QList<QSslEllipticCurve> | ellipticCurves() const |
| QSslKey | ephemeralServerKey() const |
(since 6.0) bool | handshakeMustInterruptOnError() const |
| bool | isNull() const |
| QSslCertificate | localCertificate() const |
| QList<QSslCertificate> | localCertificateChain() const |
(since 6.0) bool | missingCertificateIsFatal() const |
| QByteArray | nextNegotiatedProtocol() const |
| QSslConfiguration::NextProtocolNegotiationStatus | nextProtocolNegotiationStatus() const |
| bool | ocspStaplingEnabled() const |
| QSslCertificate | peerCertificate() const |
| QList<QSslCertificate> | peerCertificateChain() const |
| int | peerVerifyDepth() const |
| QSslSocket::PeerVerifyMode | peerVerifyMode() const |
| QByteArray | preSharedKeyIdentityHint() const |
| QSslKey | privateKey() const |
| QSsl::SslProtocol | protocol() const |
| QSslCipher | sessionCipher() const |
| QSsl::SslProtocol | sessionProtocol() const |
| QByteArray | sessionTicket() const |
| int | sessionTicketLifeTimeHint() const |
| void | setAllowedNextProtocols(const QList<QByteArray> &protocols) |
| void | setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = QMap<QByteArray, QVariant>()) |
| void | setBackendConfigurationOption(const QByteArray &name, const QVariant &value) |
| void | setCaCertificates(const QList<QSslCertificate> &certificates) |
| void | setCiphers(const QList<QSslCipher> &ciphers) |
(since 6.0) void | setCiphers(const QString &ciphers) |
| void | setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams) |
| void | setDtlsCookieVerificationEnabled(bool enable) |
| void | setEllipticCurves(const QList<QSslEllipticCurve> &curves) |
(since 6.0) void | setHandshakeMustInterruptOnError(bool interrupt) |
(since 6.12) void | setKeyingMaterial(const QList<QSslKeyingMaterial> &keyMaterial) |
| void | setLocalCertificate(const QSslCertificate &certificate) |
| void | setLocalCertificateChain(const QList<QSslCertificate> &localChain) |
(since 6.0) void | setMissingCertificateIsFatal(bool cannotRecover) |
| void | setOcspStaplingEnabled(bool enabled) |
| void | setPeerVerifyDepth(int depth) |
| void | setPeerVerifyMode(QSslSocket::PeerVerifyMode mode) |
| void | setPreSharedKeyIdentityHint(const QByteArray &hint) |
| void | setPrivateKey(const QSslKey &key) |
| void | setProtocol(QSsl::SslProtocol protocol) |
| void | setSessionTicket(const QByteArray &sessionTicket) |
| void | setSslOption(QSsl::SslOption option, bool on) |
| void | swap(QSslConfiguration &other) |
(since 6.12) QList<QSslKeyingMaterial> | takeKeyingMaterial() |
(since 6.12) std::optional<QSslKeyingMaterial> | takeKeyingMaterial(const QSslKeyingMaterial &material) |
| bool | testSslOption(QSsl::SslOption option) const |
| bool | operator!=(const QSslConfiguration &other) const |
| QSslConfiguration & | operator=(const QSslConfiguration &other) |
| bool | operator==(const QSslConfiguration &other) const |
정적 공용 멤버
| const char[] | ALPNProtocolHTTP2 |
| const char[] | NextProtocolHttp1_1 |
| QSslConfiguration | defaultConfiguration() |
| QSslConfiguration | defaultDtlsConfiguration() |
| void | setDefaultConfiguration(const QSslConfiguration &configuration) |
| void | setDefaultDtlsConfiguration(const QSslConfiguration &configuration) |
| QList<QSslCipher> | supportedCiphers() |
| QList<QSslEllipticCurve> | supportedEllipticCurves() |
| QList<QSslCertificate> | systemCaCertificates() |
상세 설명
QSslConfiguration은 Qt Network 클래스에서 열린 SSL 연결에 대한 정보를 전달하고, 애플리케이션이 해당 연결의 특정 기능을 제어할 수 있도록 하는 데 사용됩니다.
QSslConfiguration이 현재 지원하는 설정은 다음과 같습니다.
- 사용할 SSL/TLS 프로토콜
- 연결 시 상대방에게 제시할 인증서 및 관련 개인 키
- 연결 암호화에 사용이 허용된 암호
- 상대방의 인증서를 검증하는 데 사용되는 인증 기관(CA) 인증서 목록
이러한 설정은 연결 핸드셰이크 중에만 적용됩니다. 연결이 수립된 후에 설정을 변경해도 아무런 효과가 없습니다.
QSslConfiguration이 지원하는 상태는 다음과 같습니다.
- 핸드셰이크 과정에서 피어가 제시한 인증서와 CA 인증서로 이어지는 인증서 체인
- 이 세션을 암호화하는 데 사용된 암호 방식
이 상태는 SSL 연결이 시작된 후에만 확인할 수 있지만, 반드시 연결이 종료되기 전에 확인되어야 하는 것은 아닙니다. 일부 설정은 SSL 연결을 다시 시작할 필요 없이 연결이 진행되는 동안 변경될 수 있습니다(예를 들어, 암호화 알고리즘은 시간이 지남에 따라 변경될 수 있습니다).
QSslConfiguration 객체의 상태는 변경할 수 없습니다.
QSslConfiguration은 ` QSslSocket ` 및 `Network Access API`와 함께 사용할 수 있습니다.
QSslConfiguration의 설정을 변경하는 것만으로는 관련 SSL 연결의 설정을 변경할 수 없다는 점에 유의하십시오. 이를 위해서는 수정된 QSslConfiguration 객체에 대해 setSslConfiguration을 호출해야 합니다. 다음 예제는 QSslSocket 객체에서 프로토콜을 TLSv1_2로 변경하는 방법을 보여줍니다:
QSslConfiguration config = sslSocket.sslConfiguration();
config.setProtocol(QSsl::TlsV1_2);
sslSocket.setSslConfiguration(config);QSsl::SslProtocol, QSslCertificate, QSslCipher, QSslKey, QSslSocket, QNetworkAccessManager, QSslSocket::sslConfiguration() 및 QSslSocket::setSslConfiguration()도 참조하십시오 .
멤버 유형 문서
enum QSslConfiguration::NextProtocolNegotiationStatus
다음 프로토콜 협상(NPN) 또는 애플리케이션 계층 프로토콜 협상(ALPN)의 상태를 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QSslConfiguration::NextProtocolNegotiationNone | 0 | (아직) 애플리케이션 프로토콜이 협상되지 않았습니다. |
QSslConfiguration::NextProtocolNegotiationNegotiated | 1 | 다음 프로토콜이 협상되었습니다( nextNegotiatedProtocol() 참조). |
QSslConfiguration::NextProtocolNegotiationUnsupported | 2 | 클라이언트와 서버가 공통의 다음 애플리케이션 프로토콜에 대해 합의하지 못했습니다. |
멤버 함수 문서
QSslConfiguration::QSslConfiguration()
빈 SSL 구성을 생성합니다. 이 구성에는 유효한 설정이 포함되어 있지 않으며 상태는 비어 있습니다. 이 생성자가 호출된 후 ` isNull()`는 true를 반환합니다.
세터 메서드가 호출되면 isNull()은 false를 반환합니다.
QSslConfiguration::QSslConfiguration(const QSslConfiguration &other)
other 의 구성 및 상태를 복사합니다. other 가 null인 경우, 이 객체도 null이 됩니다.
[noexcept] QSslConfiguration::~QSslConfiguration()
QSslConfiguration 가 보유하고 있는 모든 리소스를 해제합니다.
void QSslConfiguration::addCaCertificate(const QSslCertificate &certificate)
이 구성의 CA 인증서 데이터베이스에 certificate 를 추가합니다. 인증서 데이터베이스는 SSL 핸드셰이크 전에 설정되어야 합니다. CA 인증서 데이터베이스는 핸드셰이크 단계에서 소켓이 상대방의 인증서를 검증하는 데 사용됩니다.
참고: 기본구성에서는 시스템 CA 인증서 데이터베이스를 사용합니다. 해당 데이터베이스를 사용할 수 없는 경우(iOS에서 흔히 발생하는 경우), 기본 데이터베이스는 비어 있습니다.
caCertificates(), setCaCertificates() 및 addCaCertificates()항목도 참조하십시오 .
void QSslConfiguration::addCaCertificates(const QList<QSslCertificate> &certificates)
이 구성의 CA 인증서 데이터베이스에 certificates 를 추가합니다. 인증서 데이터베이스는 SSL 핸드셰이크 전에 설정되어야 합니다. CA 인증서 데이터베이스는 핸드셰이크 단계에서 소켓이 상대방의 인증서를 검증하는 데 사용됩니다.
참고: 기본구성에서는 시스템 CA 인증서 데이터베이스를 사용합니다. 해당 데이터베이스를 사용할 수 없는 경우(iOS에서 흔히 발생하는 경우), 기본 데이터베이스는 비어 있습니다.
caCertificates(), setCaCertificates() 및 addCaCertificate()도 참조하십시오 .
bool QSslConfiguration::addCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = QSslCertificate::PatternSyntax::FixedString)
path 에 있는 모든 파일을 검색하여, 지정된 format 로 인코딩된 인증서를 찾아 이 소켓의 CA 인증서 데이터베이스에 추가합니다. path 는 파일이나, syntax 에 명시된 대로 하나 이상의 파일과 일치하는 패턴이어야 합니다. 하나 이상의 인증서가 소켓의 CA 인증서 데이터베이스에 추가되면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
CA 인증서 데이터베이스는 핸드셰이크 단계에서 소켓이 상대방의 인증서를 검증하는 데 사용됩니다.
보다 정밀한 제어를 위해서는 addCaCertificate()를 사용하십시오.
addCaCertificate() 및 QSslCertificate::fromPath()도 참조하십시오 .
QList<QByteArray> QSslConfiguration::allowedNextProtocols() const
이 함수는 setAllowedNextProtocols()에 의해 설정된 대로, NPN(Next Protocol Negotiation) 또는 ALPN(Application-Layer Protocol Negotiation) TLS 확장을 통해 서버와 협상할 수 있는 허용된 프로토콜을 반환합니다.
nextNegotiatedProtocol(), nextProtocolNegotiationStatus(), setAllowedNextProtocols() 및 QSslConfiguration::NextProtocolHttp1_1도 참조하십시오 .
QMap<QByteArray, QVariant> QSslConfiguration::backendConfiguration() const
백엔드별 구성을 반환합니다.
setBackendConfigurationOption() 또는 setBackendConfiguration()로 설정된 옵션만 반환됩니다. 백엔드의 내부 표준 구성은 보고되지 않습니다.
setBackendConfigurationOption() 및 setBackendConfiguration()도 참조하십시오 .
QList<QSslCertificate> QSslConfiguration::caCertificates() const
이 연결의 CA 인증서 데이터베이스를 반환합니다. CA 인증서 데이터베이스는 핸드셰이크 단계에서 소켓이 상대방의 인증서를 검증하는 데 사용됩니다. 이 데이터베이스는 핸드셰이크 전에 setCaCertificates()을 사용하거나, addCaCertificate() 및 addCaCertificates()을 사용하여 수정할 수 있습니다.
setCaCertificates(), addCaCertificate() 및 addCaCertificates()도 참조하십시오 .
QList<QSslCipher> QSslConfiguration::ciphers() const
이 연결의 현재 암호화 암호 모음을 반환합니다. 이 목록은 핸드셰이크 단계에서 세션 암호를 선택하는 데 사용됩니다. 반환된 암호 목록은 선호도 순서대로 내림차순으로 정렬되어 있습니다. (즉, 목록의 첫 번째 암호가 가장 선호되는 암호입니다.) 세션 암호화 알고리즘은 목록 중 상대방이 지원하는 첫 번째 알고리즘이 됩니다.
기본적으로 핸드셰이크 단계에서는 이 시스템의 SSL 라이브러리가 지원하는 모든 암호 모음 중에서 선택할 수 있으며, 이는 시스템마다 다를 수 있습니다. 이 시스템의 SSL 라이브러리가 지원하는 암호 모음 목록은 ` supportedCiphers()` 함수를 통해 반환됩니다. setCiphers() 함수를 호출하여 지원되는 암호의 일부 집합을 지정함으로써, 이 소켓의 세션 암호 선택에 사용되는 암호 목록을 제한할 수 있습니다. supportedCiphers() 함수가 반환한 목록을 사용하여 setCiphers() 함수를 호출하면 전체 집합을 다시 사용할 수 있습니다.
setCiphers() 및 supportedCiphers()도 참조하십시오 .
[static] QSslConfiguration QSslConfiguration::defaultConfiguration()
새로운 SSL 연결에 사용될 기본 SSL 구성을 반환합니다.
기본 SSL 구성은 다음과 같이 구성됩니다:
- 로컬 인증서 없음 및 개인 키 없음
- 프로토콜 SecureProtocols
- 시스템의 기본 CA 인증서 목록
- SSL 라이브러리가 지원하는 128비트 이상의 SSL 암호 목록과 동일한 암호 목록
supportedCiphers() 및 setDefaultConfiguration()도 참조하십시오 .
[static] QSslConfiguration QSslConfiguration::defaultDtlsConfiguration()
새로운 DTLS 연결에 사용될 기본 DTLS 구성을 반환합니다.
기본 DTLS 구성은 다음과 같이 구성됩니다:
- 로컬 인증서 없음 및 개인 키 없음
- 프로토콜 DtlsV1_2OrLater
- 시스템의 기본 CA 인증서 목록
- 암호화 알고리즘 목록은 SSL 라이브러리가 지원하는 TLS 1.2 암호화 알고리즘 중, 128비트 이상의 비밀 비트를 사용하는 알고리즘 목록과 동일합니다.
setDefaultDtlsConfiguration()도 참조하십시오 .
QSslDiffieHellmanParameters QSslConfiguration::diffieHellmanParameters() const
현재 설정된 디피-헬만 매개변수 세트를 가져옵니다.
디피-헬만 매개변수가 설정되지 않은 경우, ` QSslConfiguration ` 객체는 기본적으로 RFC 3526에 정의된 2048비트 MODP 그룹을 사용합니다.
참고: 기본매개변수는 향후 Qt 버전에서 변경될 수 있습니다. 사용 중인 Qt 버전의 정확한 기본값을 확인하려면 해당 버전의 문서를 참조하십시오.
setDiffieHellmanParameters()도 참조하십시오 .
bool QSslConfiguration::dtlsCookieVerificationEnabled() const
이 함수는 서버 측 소켓에서 DTLS 쿠키 검증이 활성화된 경우 true를 반환합니다.
setDtlsCookieVerificationEnabled()도 참조하십시오 .
QList<QSslEllipticCurve> QSslConfiguration::ellipticCurves() const
이 연결의 현재 타원 곡선 목록을 반환합니다. 이 목록은 핸드셰이크 단계에서 타원 곡선을 선택할 때(타원 곡선 암호를 사용할 경우) 사용됩니다. 반환된 곡선 목록은 선호도 순서대로 내림차순으로 정렬되어 있습니다(즉, 목록의 첫 번째 곡선이 가장 선호되는 곡선입니다).
기본적으로 핸드셰이크 단계에서는 이 시스템의 SSL 라이브러리가 지원하는 곡선 중 아무 것이나 선택할 수 있으며, 이는 시스템마다 다를 수 있습니다. 이 시스템의 SSL 라이브러리가 지원하는 곡선 목록은 QSslSocket::supportedEllipticCurves()를 통해 반환됩니다.
setEllipticCurves()를 호출하여 지원되는 곡선 집합의 일부를 지정함으로써, 이 소켓의 세션 암호 선택에 사용되는 곡선 목록을 제한할 수 있습니다. QSslSocket::supportedEllipticCurves()에서 반환된 목록을 사용하여 setEllipticCurves()를 호출하면 전체 집합을 다시 사용할 수 있습니다.
setEllipticCurves도 참조하십시오 .
QSslKey QSslConfiguration::ephemeralServerKey() const
전방 기밀성(forward secrecy)을 지원하는 암호 알고리즘(예: DHE-RSA-AES128-SHA)에 사용되는 일시적 서버 키를 반환합니다.
일시적 키는 클라이언트 모드( QSslSocket::SslClientMode)에서만 사용할 수 있습니다. 서버 모드로 실행하거나 전방 비밀성이 없는 암호 알고리즘을 사용하는 경우 null 키가 반환됩니다. 일시적 서버 키는 encrypted() 신호가 발송되기 전에 설정됩니다.
[since 6.0] bool QSslConfiguration::handshakeMustInterruptOnError() const
핸드셰이크가 완료되기 전에 검증 콜백이 ` QSslSocket::handshakeInterruptedOnError()`를 조기에 호출할 경우 `true`를 반환합니다.
참고: 이 함수는 OpenSSL을 제외한 모든 백엔드에서 항상 false를 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
setHandshakeMustInterruptOnError(), QSslSocket::handshakeInterruptedOnError(), QSslSocket::continueInterruptedHandshake()도 참조하십시오 .
bool QSslConfiguration::isNull() const
이 객체가 null인 ` QSslConfiguration ` 객체일 경우 ` true `를 반환합니다.
QSslConfiguration 객체는 기본 생성된 후 세터 메서드가 호출되지 않은 경우 null입니다.
setProtocol(), setLocalCertificate(), setPrivateKey(), setCiphers() 및 setCaCertificates()도 참조하십시오 .
QSslCertificate QSslConfiguration::localCertificate() const
SSL 핸드셰이크 과정에서 상대방에게 제시할 인증서를 반환합니다.
setLocalCertificate()도 참조하십시오 .
QList<QSslCertificate> QSslConfiguration::localCertificateChain() const
SSL 핸드셰이크 과정에서 상대방에게 제시할 인증서 체인을 반환합니다.
setLocalCertificateChain() 및 localCertificate()도 참조하십시오 .
[since 6.0] bool QSslConfiguration::missingCertificateIsFatal() const
코드 QSslError::NoPeerCertificate 인 오류를 무시할 수 없는 경우 true를 반환합니다.
참고: OpenSSL을 제외한 모든 TLS 백엔드에 대해서는항상 false를 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
QSslSocket::ignoreSslErrors() 및 setMissingCertificateIsFatal()도 참조하십시오 .
QByteArray QSslConfiguration::nextNegotiatedProtocol() const
이 함수는 NPN(Next Protocol Negotiation) 또는 ALPN(Application-Layer Protocol Negotiation) TLS 확장이 활성화된 경우, 서버와 협상된 프로토콜을 반환합니다. NPN/ALPN 확장을 활성화하려면 서버에 연결하기 전에 setAllowedNextProtocols()을 명시적으로 호출해야 합니다.
프로토콜을 협상할 수 없거나 확장 기능이 활성화되지 않은 경우, 이 함수는 null인 QByteArray 를 반환합니다.
setAllowedNextProtocols() 및 nextProtocolNegotiationStatus()도 참조하십시오 .
QSslConfiguration::NextProtocolNegotiationStatus QSslConfiguration::nextProtocolNegotiationStatus() const
이 함수는 NPN(Next Protocol Negotiation) 또는 ALPN(Application-Layer Protocol Negotiation)의 상태를 반환합니다. setAllowedNextProtocols()을 통해 해당 기능이 활성화되지 않은 경우, 이 함수는 NextProtocolNegotiationNone 를 반환합니다. 상태는 encrypted() 신호가 발송되기 전에 설정됩니다.
setAllowedNextProtocols(), allowedNextProtocols(), nextNegotiatedProtocol() 및 QSslConfiguration::NextProtocolNegotiationStatus도 참조하십시오 .
bool QSslConfiguration::ocspStaplingEnabled() const
setOCSPStaplingEnabled()를 통해 OCSP 스테이플링이 활성화된 경우 true를 반환하고, 그렇지 않은 경우 false(기본값)를 반환합니다.
setOcspStaplingEnabled()도 참조하십시오 .
QSslCertificate QSslConfiguration::peerCertificate() const
상대방의 디지털 인증서(즉, 연결된 호스트의 직접 인증서)를 반환하거나, 상대방이 인증서를 할당하지 않은 경우 null 인증서를 반환합니다.
피어 인증서는 핸드셰이크 단계에서 자동으로 확인되므로, 이 함수는 일반적으로 인증서를 표시하거나 연결 진단 목적으로 인증서를 가져오는 데 사용됩니다. 이 인증서에는 호스트 이름, 인증서 발급자, 피어의 공개 키를 포함한 피어에 대한 정보가 포함되어 있습니다.
피어 인증서는 핸드셰이크 단계에서 설정되므로, QSslSocket::sslErrors() 신호, QNetworkReply::sslErrors() 신호 또는 QSslSocket::encrypted() 신호에 연결된 슬롯에서 피어 인증서에 액세스하는 것은 안전합니다.
null 인증서가 반환되면, SSL 핸드셰이크가 실패했거나, 연결된 호스트에 인증서가 없거나, 연결이 없는 것을 의미할 수 있습니다.
상대방의 전체 인증서 체인을 확인하려면 peerCertificateChain()를 사용하여 한 번에 모두 가져오십시오.
peerCertificateChain(), QSslSocket::sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::sslErrors(), QNetworkReply::ignoreSslErrors()도 참조하십시오 .
QList<QSslCertificate> QSslConfiguration::peerCertificateChain() const
상대방의 직접 인증서부터 시작하여 CA의 인증서로 끝나는 상대방의 디지털 인증서 체인을 반환합니다.
피어 인증서는 핸드셰이크 단계에서 자동으로 확인됩니다. 이 함수는 일반적으로 인증서를 가져와 표시하거나 연결 진단을 수행하는 데 사용됩니다. 인증서에는 호스트 이름, 발급자 이름, 발급자 공개 키를 포함하여 피어 및 인증서 발급자에 대한 정보가 포함되어 있습니다.
피어 인증서는 핸드셰이크 단계에서 설정되므로, QSslSocket::sslErrors() 신호, QNetworkReply::sslErrors() 신호 또는 QSslSocket::encrypted() 신호에 연결된 슬롯을 통해 피어 인증서에 안전하게 액세스할 수 있습니다.
빈 리스트가 반환되면 SSL 핸드셰이크가 실패했거나, 연결된 호스트에 인증서가 없거나, 연결이 없는 것을 의미할 수 있습니다.
상대방의 직접 인증서만 얻으려면 peerCertificate()를 사용하십시오.
peerCertificate(), QSslSocket::sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::sslErrors() 및 QNetworkReply::ignoreSslErrors()도 참조하십시오 .
int QSslConfiguration::peerVerifyDepth() const
SSL 핸드셰이크 단계에서 상대방의 인증서 체인에서 확인할 최대 인증서 수를 반환하거나, 최대 깊이가 설정되지 않은 경우 0(기본값)을 반환하여 전체 인증서 체인을 확인해야 함을 나타냅니다.
인증서는 발급 순서대로 확인되며, 피어의 자체 인증서를 시작으로 그 발급자의 인증서 순으로 진행됩니다.
setPeerVerifyDepth() 및 peerVerifyMode()도 참조하십시오 .
QSslSocket::PeerVerifyMode QSslConfiguration::peerVerifyMode() const
검증 모드를 반환합니다. 이 모드는 QSslSocket 가 피어(즉, 클라이언트가 서버에 인증서를 요청하는지, 아니면 서버가 클라이언트에 인증서를 요청하는지)로부터 인증서를 요청할지 여부와, 해당 인증서가 유효해야 하는지 여부를 결정합니다.
기본 모드는 AutoVerifyPeer이며, 이는 QSslSocket 가 클라이언트에게는 VerifyPeer를, 서버에게는 QueryPeer를 사용하도록 지시합니다.
setPeerVerifyMode()도 참조하십시오 .
QByteArray QSslConfiguration::preSharedKeyIdentityHint() const
정체성 힌트를 반환합니다.
setPreSharedKeyIdentityHint()도 참조하십시오 .
QSslKey QSslConfiguration::privateKey() const
이 연결에 할당된 SSL key 를 반환하거나, 아직 할당된 키가 없는 경우 null 키를 반환합니다.
setPrivateKey() 및 localCertificate()도 참조하십시오 .
QSsl::SslProtocol QSslConfiguration::protocol() const
이 SSL 구성에 대한 프로토콜 설정을 반환합니다.
setProtocol()도 참조하십시오 .
QSslCipher QSslConfiguration::sessionCipher() const
소켓의 암호화 알고리즘( cipher)을 반환하며, 연결이 암호화되지 않은 경우에는 null 암호를 반환합니다. 세션에 사용되는 소켓의 암호화 알고리즘은 핸드셰이크 단계에서 설정됩니다. 이 암호화 알고리즘은 소켓을 통해 전송되는 데이터를 암호화하고 복호화하는 데 사용됩니다.
SSL 인프라는 또한 핸드셰이크 단계에서 최종적으로 세션 암호를 선택하게 될 암호의 정렬된 목록을 설정하는 함수들을 제공합니다. 이 정렬된 목록은 핸드셰이크 단계가 시작되기 전에 준비되어 있어야 합니다.
ciphers(), setCiphers(), supportedCiphers()도 참조하십시오 .
QSsl::SslProtocol QSslConfiguration::sessionProtocol() const
소켓의 SSL/TLS 프로토콜을 반환하거나, 연결이 암호화되지 않은 경우 UnknownProtocol을 반환합니다. 세션에 대한 소켓의 프로토콜은 핸드셰이크 단계에서 설정됩니다.
protocol() 및 setProtocol()도 참조하십시오 .
QByteArray QSslConfiguration::sessionTicket() const
QSsl::SslOptionDisableSessionPersistence 가 비활성화된 경우, 이 함수는 SSL 핸드셰이크에 사용된 세션 티켓을 ASN.1 형식으로 반환하며, 이는 예를 들어 디스크에 영구 저장하는 데 적합합니다. 세션 티켓이 사용되지 않았거나 QSsl::SslOptionDisableSessionPersistence 가 비활성화되지 않은 경우, 이 함수는 빈 QByteArray 를 반환합니다.
참고: 세션 티켓을 디스크 등에 저장할때는 잠재적인 공격자에게 세션 정보가 노출되지 않도록 주의해야 합니다. 세션 정보를 알면 해당 세션 매개변수로 암호화된 데이터를 도청할 수 있기 때문입니다.
관련 항목: setSessionTicket(), QSsl::SslOptionDisableSessionPersistence, setSslOption(), QSslSocket::newSessionTicketReceived().
int QSslConfiguration::sessionTicketLifeTimeHint() const
QSsl::SslOptionDisableSessionPersistence 가 비활성화된 경우, 이 함수는 서버에서 전송한 세션 티켓 유효 기간 힌트(0일 수도 있음)를 반환합니다. 서버가 세션 티켓을 전송하지 않은 경우(예: 세션을 재개할 때나 서버가 이를 지원하지 않는 경우) 또는 QSsl::SslOptionDisableSessionPersistence 가 비활성화되지 않은 경우, 이 함수는 -1을 반환합니다.
sessionTicket(), QSsl::SslOptionDisableSessionPersistence, setSslOption(), QSslSocket::newSessionTicketReceived()도 참조하십시오 .
void QSslConfiguration::setAllowedNextProtocols(const QList<QByteArray> &protocols)
이 함수는 NPN(Next Protocol Negotiation) 또는 ALPN(Application-Layer Protocol Negotiation) TLS 확장을 통해 서버와 협상할 수 있는 허용된 프로토콜 목록( protocols )을 설정합니다. ` protocols `의 각 요소는 허용된 프로토콜 하나를 정의해야 합니다. 이 함수는 SSL 핸드셰이크에서 NPN/ALPN 확장을 전송하기 위해 연결 전에 명시적으로 호출되어야 합니다. 협상이 성공했는지 여부는 nextProtocolNegotiationStatus()를 통해 조회할 수 있습니다.
nextNegotiatedProtocol(), nextProtocolNegotiationStatus(), allowedNextProtocols() 및 QSslConfiguration::NextProtocolHttp1_1도 참조하십시오 .
void QSslConfiguration::setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = QMap<QByteArray, QVariant>())
백엔드별 설정을 설정하거나 지웁니다.
backendConfiguration 매개변수가 없으면 이 함수는 백엔드별 구성을 초기화합니다. 지원되는 옵션에 대한 자세한 내용은 setBackendConfigurationOption() 문서를 참조하십시오.
backendConfiguration() 및 setBackendConfigurationOption()도 참조하십시오 .
void QSslConfiguration::setBackendConfigurationOption(const QByteArray &name, const QVariant &value)
백엔드별 구성 파일에서 ‘ name ’ 옵션을 ‘ value ’로 설정합니다.
OpenSSL(>= 1.0.2) 백엔드에서 지원하는 옵션은 지원되는 구성 파일 명령어 문서를 참조하십시오. value 매개변수의 예상 유형은 모든 옵션에 대해 QByteArray 입니다. 예제에서는 일부 옵션의 사용 방법을 보여줍니다.
참고: 백엔드별구성은 일반 구성 이후에 적용됩니다. 백엔드별 구성을 사용하여 일반 구성 옵션을 다시 설정하면 일반 구성 옵션이 덮어쓰게 됩니다.
backendConfiguration() 및 setBackendConfiguration()도 참조하십시오 .
void QSslConfiguration::setCaCertificates(const QList<QSslCertificate> &certificates)
이 소켓의 CA 인증서 데이터베이스를 certificates 로 설정합니다. 인증서 데이터베이스는 SSL 핸드셰이크 전에 설정되어야 합니다. CA 인증서 데이터베이스는 핸드셰이크 단계에서 소켓이 상대방의 인증서를 검증하는 데 사용됩니다.
참고: 기본구성에서는 시스템 CA 인증서 데이터베이스를 사용합니다. 해당 데이터베이스를 사용할 수 없는 경우(iOS에서 흔히 발생하는 경우), 기본 데이터베이스는 비어 있습니다.
caCertificates(), addCaCertificates(), addCaCertificate()도 참조하십시오 .
void QSslConfiguration::setCiphers(const QList<QSslCipher> &ciphers)
이 소켓의 암호화 시퍼 스위트를 ciphers 로 설정합니다. 이 시퍼 스위트에는 supportedCiphers() 함수가 반환하는 목록에 포함된 암호 알고리즘의 일부가 반드시 포함되어야 합니다.
암호 모음의 제한은 세션 암호가 선택되는 핸드셰이크 단계 이전에 수행되어야 합니다.
ciphers() 및 supportedCiphers()도 참조하십시오 .
[since 6.0] void QSslConfiguration::setCiphers(const QString &ciphers)
이 구성에 대한 암호화 암호 모음을 ciphers 로 설정합니다. 이는 콜론(:)으로 구분된 암호 모음 이름 목록입니다. 암호 모음은 선호도가 높은 순서대로 나열되며, 가장 선호되는 암호 모음부터 시작합니다. ciphers 에 포함된 각 암호명(cipher name)은 supportedCiphers() 함수가 반환하는 목록에 포함된 암호의 이름이어야 합니다. 암호 모음의 제한은 세션 암호가 선택되는 핸드셰이크 단계 이전에 수행되어야 합니다.
참고: Schannel 백엔드를사용하는 경우 암호의 순서는 무시되며, Schannel이 핸드셰이크 과정에서 가장 안전한 암호를 선택합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
ciphers()도 참조하십시오 .
[static] void QSslConfiguration::setDefaultConfiguration(const QSslConfiguration &configuration)
새로운 SSL 연결에 사용될 기본 SSL 구성을 configuration 로 설정합니다. 기존 연결은 이 호출의 영향을 받지 않습니다.
supportedCiphers() 및 defaultConfiguration()도 참조하십시오 .
[static] void QSslConfiguration::setDefaultDtlsConfiguration(const QSslConfiguration &configuration)
새로운 DTLS 연결에 사용될 기본 DTLS 구성을 configuration 로 설정합니다. 기존 연결은 이 호출의 영향을 받지 않습니다.
defaultDtlsConfiguration()도 참조하십시오 .
void QSslConfiguration::setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams)
이 소켓이 서버로 작동할 때 사용할 사용자 정의 디피-헬만 매개변수 세트를 dhparams 에 설정합니다.
디피-헬만 매개변수가 설정되지 않은 경우, QSslConfiguration 객체는 기본적으로 RFC 3526에 정의된 2048비트 MODP 그룹을 사용합니다.
6.7 버전부터는 tls 백엔드가 지원하는 경우, 빈 디피-헬만 매개변수를 제공하여 자동 선택 기능을 사용할 수 있습니다(openssl의 SSL_CTX_set_dh_auto 참조).
참고: 기본매개변수는 향후 Qt 버전에서 변경될 수 있습니다. 사용 중인 Qt 버전의 문서에서 해당 버전이 사용하는 기본값을 확인하시기 바랍니다.
diffieHellmanParameters()도 참조하십시오 .
void QSslConfiguration::setDtlsCookieVerificationEnabled(bool enable)
enable 가 true로 설정되어 있을 때, 이 함수는 DTLS 쿠키 검증을 활성화합니다.
dtlsCookieVerificationEnabled()도 참조하십시오 .
void QSslConfiguration::setEllipticCurves(const QList<QSslEllipticCurve> &curves)
이 소켓에서 사용할 타원 곡선 목록을 ` curves`로 설정합니다. 이 목록은 ` supportedEllipticCurves()` 함수가 반환하는 곡선 목록의 부분 집합을 포함해야 합니다.
타원 곡선을 제한하는 작업은 세션 암호가 선택되는 핸드셰이크 단계 이전에 수행되어야 합니다.
ellipticCurves도 참조하십시오 .
[since 6.0] void QSslConfiguration::setHandshakeMustInterruptOnError(bool interrupt)
interrupt 가 true이고 기본 백엔드가 이 옵션을 지원하는 경우, 인증서 검증 과정에서 발견된 오류는 QSslSocket::handshakeInterruptedOnError()를 호출하여 즉시 보고됩니다. 이를 통해 완료되지 않은 핸드셰이크를 중지하고 상대방에게 적절한 경고 메시지를 보낼 수 있습니다. 이 경우 애플리케이션 측에서 별도의 조치가 필요하지 않습니다. ` QSslSocket `는 경고 메시지를 전송한 후 연결을 종료합니다. 애플리케이션이 오류를 확인한 후 핸드셰이크를 계속 진행하고자 한다면, 슬롯 함수에서 ` QSslSocket::continueInterruptedHandshake()`를 호출해야 합니다. 신호-슬롯 연결은 직접적이어야 합니다.
참고: 핸드셰이크 중단이 활성화된경우 , 일반적으로 QSslSocket::peerVerifyError()에 의해 보고되던 오류들은 대신 QSslSocket::handshakeInterruptedOnError()을 통해서만 보고됩니다.
참고: 핸드셰이크가계속되었더라도 , QSslSocket::sslErrors() 신호를 발산할 때 이러한 오류가 보고되므로(따라서 해당 함수 슬롯에서 무시되어야 합니다).
이 함수는 Qt 6.0에서 도입되었습니다.
handshakeMustInterruptOnError(), QSslSocket::handshakeInterruptedOnError() 및 QSslSocket::continueInterruptedHandshake()도 참조하십시오 .
[since 6.12] void QSslConfiguration::setKeyingMaterial(const QList<QSslKeyingMaterial> &keyMaterial)
이 SSL 연결에 대한 키링 자료 구성을 ` keyMaterial`로 설정합니다.
이를 통해 TLS 익스포터 메커니즘이 활성화되어, 애플리케이션이 협상된 TLS 세션에서 추가적인 암호화 자료를 도출할 수 있게 됩니다. 익스포터는 RFC 5705 및 RFC 8446에 정의되어 있습니다.
이 구성은 TLS 핸드셰이크가 시작되기 전에 설정되어야 합니다. 이미 암호화된 연결에서 이 함수를 호출해도 아무런 효과가 없습니다.
각 QSslKeyingMaterial 항목은 익스포터 레이블, 선택적 컨텍스트 값 및 도출될 키링 자료의 길이를 지정합니다. 핸드셰이크가 성공적으로 완료된 후, 요청된 키링 자료를 SSL 연결에서 검색할 수 있습니다.
내보내진 키 생성 자료는 해당 TLS 세션에 고유하며, 기본 TLS 채널에 대한 암호화 바인딩이 필요한 애플리케이션 수준 프로토콜의 키를 도출하는 데 안전하게 사용할 수 있습니다.
참고: 이 기능은 백엔드마다 다르며, 현재 OpenSSL 지원이 필요합니다.
경고: 애플리케이션은 고유하고 충돌에 강한 익스포터 레이블을 정의할 책임이 있습니다. 서로 다른 용도로 레이블이나 컨텍스트를 재사용하면 미묘한 보안 취약점이 발생할 수 있습니다.
이 함수는 Qt 6.12에서 도입되었습니다.
takeKeyingMaterial()도 참조하십시오 .
void QSslConfiguration::setLocalCertificate(const QSslCertificate &certificate)
SSL 핸드셰이크 중에 상대방에게 제시할 인증서를 certificate 로 설정합니다.
연결이 수립된 후에 인증서를 설정해도 아무런 효과가 없습니다.
인증서는 SSL 과정에서 사용되는 신원 확인 수단입니다. 원격 측은 로컬 인증서를 사용하여 자체 인증 기관(CA) 목록을 기준으로 로컬 사용자의 신원을 확인합니다. HTTP 웹 브라우징과 같은 대부분의 경우, 서버만 클라이언트에게 신원을 확인하므로 클라이언트는 인증서를 전송하지 않습니다.
localCertificate()도 참조하십시오 .
void QSslConfiguration::setLocalCertificateChain(const QList<QSslCertificate> &localChain)
SSL 핸드셰이크 중에 상대방에게 제시할 인증서 체인을 localChain 로 설정합니다.
연결이 수립된 후에 인증서 체인을 설정해도 아무런 효과가 없습니다.
인증서는 SSL 프로세스에서 사용되는 신원 확인 수단입니다. 원격 쪽에서는 로컬 인증서를 사용하여 자체 인증 기관(CA) 목록을 기준으로 로컬 사용자의 신원을 확인합니다. HTTP 웹 브라우징과 같은 대부분의 경우, 서버만 클라이언트에 신원을 확인하므로 클라이언트는 인증서를 전송하지 않습니다.
QSslConfiguration::setLocalCertificate()와 달리, 이 메서드를 사용하면 인증서를 검증하는 데 필요한 중간 인증서를 임의로 지정할 수 있습니다. 목록의 첫 번째 항목은 반드시 리프 인증서여야 합니다.
localCertificateChain()도 참조하십시오 .
[since 6.0] void QSslConfiguration::setMissingCertificateIsFatal(bool cannotRecover)
cannotRecover 가 true이고, 사용 중인 인증 모드가 QSslSocket::VerifyPeer 또는 QSslSocket::AutoVerifyPeer (클라이언트 측 소켓의 경우)인 경우, 상대방의 인증서가 누락된 상황은 무시할 수 없는 복구 불가능한 오류로 처리됩니다. 연결을 종료하기 전에 상대방에게 적절한 경고 메시지가 전송됩니다.
참고: Qt가 OpenSSL 백엔드로 구성 및 빌드된경우에만 사용할 수 있습니다.
이 함수는 Qt 6.0에서 도입되었습니다.
QSslSocket::ignoreSslErrors(), QSslSocket::PeerVerifyMode 및 missingCertificateIsFatal()도 참조하십시오 .
void QSslConfiguration::setOcspStaplingEnabled(bool enabled)
enabled 가 true인 경우, 클라이언트 QSslSocket 는 핸드셰이크를 시작할 때 상대방에게 인증서 상태 요청을 보냅니다. 핸드셰이크 과정에서 QSslSocket 는 서버의 응답을 검증합니다. 이 값은 핸드셰이크가 시작되기 전에 설정되어야 합니다.
ocspStaplingEnabled()도 참조하십시오 .
void QSslConfiguration::setPeerVerifyDepth(int depth)
SSL 핸드셰이크 단계에서 상대방의 인증서 체인에서 확인할 인증서의 최대 개수를 depth 로 설정합니다. 깊이를 0으로 설정하면 최대 깊이가 설정되지 않음을 의미하며, 이는 전체 인증서 체인을 확인해야 함을 나타냅니다.
인증서는 발급 순서대로 검사되며, 피어의 자체 인증서를 시작으로 그 발급자의 인증서 순으로 진행됩니다.
peerVerifyDepth() 및 setPeerVerifyMode()도 참조하십시오 .
void QSslConfiguration::setPeerVerifyMode(QSslSocket::PeerVerifyMode mode)
검증 모드를 ` mode`로 설정합니다. 이 모드는 ` QSslSocket `가 상대방(즉, 클라이언트가 서버에 인증서를 요청하는지, 아니면 서버가 클라이언트에 인증서를 요청하는지)에게 인증서를 요청할지 여부와, 해당 인증서가 유효해야 하는지 여부를 결정합니다.
기본 모드는 AutoVerifyPeer이며, 이는 QSslSocket 가 클라이언트의 경우 VerifyPeer를, 서버의 경우 QueryPeer를 사용하도록 지시합니다.
peerVerifyMode()도 참조하십시오 .
void QSslConfiguration::setPreSharedKeyIdentityHint(const QByteArray &hint)
사전 공유 키 인증에 대한 신원 힌트를 hint 로 설정합니다. 이는 다음에 시작되는 핸드셰이크에 영향을 미치며, 이미 암호화된 소켓에서 이 함수를 호출하더라도 해당 소켓의 신원 힌트에는 영향을 미치지 않습니다.
신원 힌트는 QSslSocket::SslServerMode 에서만 사용됩니다!
preSharedKeyIdentityHint()도 참조하십시오 .
void QSslConfiguration::setPrivateKey(const QSslKey &key)
연결의 개인 키( key )를 key 로 설정합니다. 개인 키와 로컬 인증서( certificate )는 SSL 상대방에게 자신의 신원을 증명해야 하는 클라이언트와 서버에서 사용됩니다.
SSL 서버 소켓을 생성하는 경우 키와 로컬 인증서 모두 필요합니다. SSL 클라이언트 소켓을 생성하는 경우, 클라이언트가 SSL 서버에 신원을 증명해야 한다면 키와 로컬 인증서가 필요합니다.
privateKey() 및 setLocalCertificate()도 참조하십시오 .
void QSslConfiguration::setProtocol(QSsl::SslProtocol protocol)
이 구성에 대한 프로토콜 설정을 ‘ protocol ’로 설정합니다.
연결이 이미 설정된 상태에서 프로토콜을 설정해도 아무런 효과가 없습니다.
protocol()도 참조하십시오 .
void QSslConfiguration::setSessionTicket(const QByteArray &sessionTicket)
SSL 핸드셰이크에 사용될 세션 티켓을 설정합니다. 이 기능이 작동하려면 ` QSsl::SslOptionDisableSessionPersistence `이 비활성화되어 있어야 하며, ` sessionTicket `은 ` sessionTicket()`이 반환하는 ASN.1 형식이어야 합니다.
sessionTicket(), QSsl::SslOptionDisableSessionPersistence, setSslOption() 및 QSslSocket::newSessionTicketReceived()도 참조하십시오 .
void QSslConfiguration::setSslOption(QSsl::SslOption option, bool on)
SSL 호환성 option 을 활성화하거나 비활성화합니다. on 가 true인 경우, option 가 활성화됩니다. on 가 false인 경우, option 가 비활성화됩니다.
testSslOption()도 참조하십시오 .
[static] QList<QSslCipher> QSslConfiguration::supportedCiphers()
이 시스템에서 지원하는 암호화 알고리즘 목록을 반환합니다. 이 목록은 시스템의 SSL 라이브러리에 의해 설정되며, 시스템마다 다를 수 있습니다.
ciphers() 및 setCiphers()도 참조하십시오 .
[static] QList<QSslEllipticCurve> QSslConfiguration::supportedEllipticCurves()
이 시스템에서 지원하는 타원 곡선 목록을 반환합니다. 이 목록은 시스템의 SSL 라이브러리에 의해 설정되며, 시스템마다 다를 수 있습니다.
ellipticCurves() 및 setEllipticCurves()도 참조하십시오 .
[noexcept] void QSslConfiguration::swap(QSslConfiguration &other)
이 SSL 구성 인스턴스를 other 로 교체합니다. 이 작업은 매우 빠르게 수행되며 실패하는 일이 없습니다.
[static] QList<QSslCertificate> QSslConfiguration::systemCaCertificates()
이 함수는 운영 체제에서 제공하는 CA 인증서 데이터베이스를 반환합니다. 이 함수가 반환하는 CA 인증서 데이터베이스는 기본 QSslConfiguration 에서 caCertificates() 함수가 반환하는 데이터베이스를 초기화하는 데 사용됩니다.
caCertificates(), setCaCertificates(), defaultConfiguration(), addCaCertificate() 및 addCaCertificates()도 참조하십시오 .
[since 6.12] QList<QSslKeyingMaterial> QSslConfiguration::takeKeyingMaterial()
이 SSL 연결에 대한 키 생성 자료 구성을 반환합니다.
키링 자료는 애플리케이션이 RFC 5705 및 RFC 8446에 정의된 TLS 익스포터 메커니즘을 사용하여, 설정된 TLS 세션에서 추가적인 암호화 자료를 도출할 수 있도록 합니다.
반환된 목록의 각 항목은 내보낸 키링 자료에 대한 요청을 설명하며, 여기에는 내보내기 레이블, 선택적 컨텍스트 및 내보낼 데이터의 원하는 길이가 포함됩니다. 실제 키링 자료는 핸드셰이크가 성공적으로 완료된 후에만 사용할 수 있습니다.
내보낸 키링 자료는 특정 TLS 세션에 바인딩되며, 암호화에 사용되는 세션 키와는 암호학적으로 독립적입니다. 이는 채널 바인딩이나 TLS 위에 계층화된 프로토콜을 위한 키 도출과 같은 애플리케이션별 목적으로 사용될 수 있습니다.
키 자료 구성이 설정되지 않은 경우, 이 함수는 빈 리스트를 반환합니다.
값들은 공유되는 것이 아니라 전달됩니다. 즉, 이 구성에 남아 있는 항목들은 값이 없으므로 clones, 동일한 키링 자료를 다시 요청하는 데 여전히 사용할 수 있습니다. 반환된 항목들만이 파생된 값을 포함합니다.
참고: 키 자료의 사용 가능여부는 TLS 백엔드에 따라 다릅니다. 현재 이 기능은 OpenSSL을 사용할 때만 지원됩니다.
경고: 내보낸 키링 자료는 주의하여 다루어야 합니다. 부적절하게 사용하면 TLS 세션이나 상위 수준 프로토콜의 보안이 침해될 수 있습니다.
이 함수는 Qt 6.12에서 도입되었습니다.
setKeyingMaterial()도 참조하십시오 .
[since 6.12] std::optional<QSslKeyingMaterial> QSslConfiguration::takeKeyingMaterial(const QSslKeyingMaterial &material)
지정된 material 요청에 대한 파생된 키링 자료를 반환합니다.
라벨, 컨텍스트 및 요청된 크기에 따라 material 와 일치하는 키 생성 자료 목록의 항목을 반환하거나, 일치하는 항목이 발견되지 않은 경우 std::nullopt 를 반환합니다.
일치하는 항목이 발견되고 TLS 핸드셰이크가 성공적으로 완료된 경우, 반환된 객체의 QSslKeyingMaterial::value()에는 파생된 키링 자료가 포함됩니다.
이 값은 한 번만 가져올 수 있습니다. 남아 있는 항목은 값이 없는 clone 이지만, 여전히 material 과 일치합니다.
이 함수는 Qt 6.12에서 도입되었습니다.
takeKeyingMaterial() 및 setKeyingMaterial()도 참조하십시오 .
bool QSslConfiguration::testSslOption(QSsl::SslOption option) const
지정된 SSL 호환성 option 가 활성화되어 있으면 true 를 반환합니다.
setSslOption()도 참조하십시오 .
bool QSslConfiguration::operator!=(const QSslConfiguration &other) const
이 QSslConfiguration 가 other 와 다를 경우 true 를 반환합니다. 두 QSslConfiguration 객체는 상태나 설정이 하나라도 다르면 서로 다른 것으로 간주됩니다.
operator==()도 참조하십시오 .
QSslConfiguration &QSslConfiguration::operator=(const QSslConfiguration &other)
other 의 구성 및 상태를 복사합니다. other 가 null인 경우, 이 객체도 null이 됩니다.
bool QSslConfiguration::operator==(const QSslConfiguration &other) const
이 QSslConfiguration 객체가 other 과 동일한 경우 true 을 반환합니다.
두 개의 QSslConfiguration 객체는 설정과 상태가 정확히 동일할 때 서로 같다고 간주됩니다.
operator!=()도 참조하십시오 .
© 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.