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

タイプ

(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::Warning0致命的でない警告メッセージ
QSslSocket::AlertLevel::Fatal1致命的なアラートメッセージ。基盤となるバックエンドはこのようなアラートを適切に処理し、接続を閉じます。
QSslSocket::AlertLevel::Unknown2不明な深刻度のアラート。

この列挙型は Qt 6.0 で導入されました。

[since 6.0] enum class AlertType

アラートメッセージが持ちうるコードを列挙する。

可能な値とその意味については、RFC 8446のセクション6を参照してください。

定数説明
QSslSocket::AlertType::CloseNotify0,
QSslSocket::AlertType::UnexpectedMessage10
QSslSocket::AlertType::BadRecordMac20
QSslSocket::AlertType::RecordOverflow22
QSslSocket::AlertType::DecompressionFailure30
QSslSocket::AlertType::HandshakeFailure40
QSslSocket::AlertType::NoCertificate41
QSslSocket::AlertType::BadCertificate42
QSslSocket::AlertType::UnsupportedCertificate43
QSslSocket::AlertType::CertificateRevoked44
QSslSocket::AlertType::CertificateExpired45
QSslSocket::AlertType::CertificateUnknown46
QSslSocket::AlertType::IllegalParameter47
QSslSocket::AlertType::UnknownCa48
QSslSocket::AlertType::AccessDenied49
QSslSocket::AlertType::DecodeError50
QSslSocket::AlertType::DecryptError51
QSslSocket::AlertType::ExportRestriction60
QSslSocket::AlertType::ProtocolVersion70
QSslSocket::AlertType::InsufficientSecurity71
QSslSocket::AlertType::InternalError80
QSslSocket::AlertType::InappropriateFallback86
QSslSocket::AlertType::UserCancelled90
QSslSocket::AlertType::NoRenegotiation100
QSslSocket::AlertType::MissingExtension109
QSslSocket::AlertType::UnsupportedExtension110
QSslSocket::AlertType::CertificateUnobtainable111
QSslSocket::AlertType::UnrecognizedName112
QSslSocket::AlertType::BadCertificateStatusResponse113
QSslSocket::AlertType::BadCertificateHashValue114
QSslSocket::AlertType::UnknownPskIdentity115
QSslSocket::AlertType::CertificateRequired116
QSslSocket::AlertType::NoApplicationProtocol120
QSslSocket::AlertType::UnknownAlertMessage255

この列挙型は Qt 6.0 で導入されました。

enum QSsl::AlternativeNameEntryType

QSslCertificate における代替名エントリーのキータイプについて説明する。

定数説明
QSsl::EmailEntry0電子メール・エントリ。証明書が有効な電子メール・アドレスが含まれる。
QSsl::DnsEntry1DNS ホスト名エントリ。エントリには、証明書が有効なホスト名エントリが含まれる。エントリには、ワイルドカードを含めることができる。
QSsl::IpAddressEntry2エントリは、証明書が有効な IP アドレスエントリを含みます。

QSslCertificate::subjectAlternativeNames()も参照してください

enum QSsl::EncodingFormat

証明書と鍵でサポートされるエンコード形式について説明します。

定数説明
QSsl::Pem0PEM 形式。
QSsl::Der1DER 形式。

[since 6.1] enum class ImplementedClass

TLSバックエンドが実装するクラスを列挙する。

QtNetwork では、バックエンド固有の実装を持つクラスがあるため、未実装のままにしておくことができる。この列挙型の列挙子は、どのクラスがバックエンドで実装されているかを示す。

定数説明
QSslSocket::ImplementedClass::Key0クラスQSslKey.
QSslSocket::ImplementedClass::Certificate1クラスQSslCertificate.
QSslSocket::ImplementedClass::Socket2クラスQSslSocket.
QSslSocket::ImplementedClass::DiffieHellman3クラスQSslDiffieHellmanParameters.
QSslSocket::ImplementedClass::EllipticCurve4クラスQSslEllipticCurve.
QSslSocket::ImplementedClass::Dtls5クラスQDtls.
QSslSocket::ImplementedClass::DtlsCookie6クラスQDtlsClientVerifier.

この列挙型は Qt 6.1 で導入されました。

enum QSsl::KeyAlgorithm

QSslKey がサポートするさまざまな鍵アルゴリズムについて説明する。

定数説明
QSsl::Rsa1RSA アルゴリズム。
QSsl::Dsa2DSA アルゴリズム。
QSsl::Ec3楕円曲線アルゴリズム。
QSsl::Dh4Diffie-Hellmanアルゴリズム。
QSsl::Opaque0QSslKey によって「ブラックボックス」として扱われるべき鍵。

不透明鍵機能により、アプリケーションは PKCS#11 のような、Qt が現在ネイティブで提供していない機能のサポートを追加することができます。

enum QSsl::KeyType

QSslKey がサポートする2種類のキーについて説明する。

定数説明
QSsl::PrivateKey0秘密鍵。
QSsl::PublicKey1公開鍵。

enum QSsl::SslOption
flags QSsl::SslOptions

SSL の動作の詳細を制御するためのオプションを記述します。これらのオプションは一般に、バグの多いサーバーを回避するために機能をオフにするために使われます。

定数説明
QSsl::SslOptionDisableEmptyFragments0x01ブロック暗号を使用する際に、データへの空のフラグメントの挿入を無効にします。有効にすると、(BEAST 攻撃のような) いくつかの攻撃を防ぐことができますが、サーバーによっては互換性がありません。
QSsl::SslOptionDisableSessionTickets0x02SSLセッションチケット拡張を無効にします。これにより、接続のセットアップが遅くなることがありますが、一部のサーバーではこの拡張機能と互換性がありません。
QSsl::SslOptionDisableCompression0x04SSL圧縮拡張機能を無効にします。有効にすると、SSL経由で渡されるデータが圧縮されますが、一部のサーバーではこの拡張機能と互換性がありません。
QSsl::SslOptionDisableServerNameIndication0x08SSLサーバー名表示拡張機能を無効にします。有効にすると、サーバーにアクセスしているバーチャルホストを通知し、正しい証明書で応答できるようになります。
QSsl::SslOptionDisableLegacyRenegotiation0x10接続パラメータを再ネゴシエートする古い安全でないメカニズムを無効にします。このオプションを有効にすると、レガシーサーバーへの接続が可能になりますが、攻撃者が SSL セッションにプレーンテキストを注入する可能性が生じます。
QSsl::SslOptionDisableSessionSharing0x20セッション ID ハンドシェイク属性による SSL セッション共有を無効にします。
QSsl::SslOptionDisableSessionPersistence0x40QSslConfiguration::sessionTicket() が返す ASN.1 形式での SSL セッションの保存を無効にする。この機能を有効にすると、使用されるセッションチケットごとに約1Kのメモリオーバーヘッドが追加されます。
QSsl::SslOptionDisableServerCipherPreference0x80クライアントから送られた暗号の順番ではなく、サーバーの設定に基づいて選択された暗号を無効にする。このオプションはサーバソケットにのみ関係し、OpenSSL バックエンドによってのみ尊重される。

デフォルトでは SslOptionDisableEmptyFragments がオンになっていますが、これは多数のサーバーで問題が発生するためです。SslOptionDisableLegacyRenegotiation もセキュリティリスクをもたらすのでオンになっている。SslOptionDisableCompression は、CRIME によって公表された攻撃を防ぐためにオンになっている。SslOptionDisableSessionPersistence はメモリ使用量を最適化するためにオンにする。その他のオプションはオフになっている。

注: 上記のオプションが利用できるかどうかは、使用する SSL バックエンドのバージョンに依存する。

SslOptions 型はQFlags<SslOption> の typedef です。SslOption 値の OR の組み合わせを格納します。

enum QSsl::SslProtocol

暗号のプロトコルを記述する。

定数説明
QSsl::TlsV1_00TLSv1.0
QSsl::TlsV1_0OrLater5TLSv1.0 およびそれ以降のバージョン。
QSsl::TlsV1_11TLSv1.1。
QSsl::TlsV1_1OrLater6TLSv1.1およびそれ以降のバージョン。
QSsl::TlsV1_22TLSv1.2。
QSsl::TlsV1_2OrLater7TLSv1.2以降のバージョン。
QSsl::DtlsV1_08DTLSv1.0
QSsl::DtlsV1_0OrLater9DTLSv1.0以降のバージョン。
QSsl::DtlsV1_210DTLSv1.2
QSsl::DtlsV1_2OrLater11DTLSv1.2以降のバージョン。
QSsl::TlsV1_312TLSv1.3 (Qt 5.12 以降)
QSsl::TlsV1_3OrLater13TLSv1.3 以降のバージョン。(Qt 5.12 以降)
QSsl::UnknownProtocol-1暗号のプロトコルが特定できない。
QSsl::AnyProtocol3サポートされているプロトコル。この値はQSslSocket でのみ使用されます。
QSsl::SecureProtocols4デフォルトのオプションで、安全であることが知られているプロトコルを使用します。

[since 6.1] enum class SupportedFeature

TLS バックエンドがサポートする可能性のある機能を列挙する。

QtNetwork 例えば、SecureTransport バックエンドはサーバーサイド ALPN をサポートしていない。SupportedFeature 列挙型の列挙子は、特定の機能がサポートされていることを示します。

定数説明
QSslSocket::SupportedFeature::CertificateVerification0バックエンドがQSslCertificate::verify() を実装していることを示す。
QSslSocket::SupportedFeature::ClientSideAlpn1クライアント側の ALPN (Application Layer Protocol Negotiation)。
QSslSocket::SupportedFeature::ServerSideAlpn2サーバー側の ALPN。
QSslSocket::SupportedFeature::Ocsp3OCSP ステープリング(オンライン証明書ステータス・プロトコル)。
QSslSocket::SupportedFeature::Psk4事前共有鍵。
QSslSocket::SupportedFeature::SessionTicket5セッション・チケット。
QSslSocket::SupportedFeature::Alerts6送受信されたアラートメッセージに関する情報。

この enum は 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.