QSsl Namespace

QSsl 名前空間は Qt Network の全ての SSL クラスに共通する列挙型を宣言します。さらに...

Header: #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 QSsl::AlertLevel

アラートメッセージのレベルを表す

この列挙型は、送信または受信されたアラート・メッセージのレベルを記述します。

定数説明
QSsl::AlertLevel::Warning0致命的でない警告メッセージ
QSsl::AlertLevel::Fatal1致命的なアラートメッセージ。基盤となるバックエンドはこのようなアラートを適切に処理し、接続を閉じます。
QSsl::AlertLevel::Unknown2不明な深刻度のアラート。

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

[since 6.0] enum class QSsl::AlertType

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

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

定数説明
QSsl::AlertType::CloseNotify0,
QSsl::AlertType::UnexpectedMessage10
QSsl::AlertType::BadRecordMac20
QSsl::AlertType::RecordOverflow22
QSsl::AlertType::DecompressionFailure30
QSsl::AlertType::HandshakeFailure40
QSsl::AlertType::NoCertificate41
QSsl::AlertType::BadCertificate42
QSsl::AlertType::UnsupportedCertificate43
QSsl::AlertType::CertificateRevoked44
QSsl::AlertType::CertificateExpired45
QSsl::AlertType::CertificateUnknown46
QSsl::AlertType::IllegalParameter47
QSsl::AlertType::UnknownCa48
QSsl::AlertType::AccessDenied49
QSsl::AlertType::DecodeError50
QSsl::AlertType::DecryptError51
QSsl::AlertType::ExportRestriction60
QSsl::AlertType::ProtocolVersion70
QSsl::AlertType::InsufficientSecurity71
QSsl::AlertType::InternalError80
QSsl::AlertType::InappropriateFallback86
QSsl::AlertType::UserCancelled90
QSsl::AlertType::NoRenegotiation100
QSsl::AlertType::MissingExtension109
QSsl::AlertType::UnsupportedExtension110
QSsl::AlertType::CertificateUnobtainable111
QSsl::AlertType::UnrecognizedName112
QSsl::AlertType::BadCertificateStatusResponse113
QSsl::AlertType::BadCertificateHashValue114
QSsl::AlertType::UnknownPskIdentity115
QSsl::AlertType::CertificateRequired116
QSsl::AlertType::NoApplicationProtocol120
QSsl::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 QSsl::ImplementedClass

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

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

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

この enum は 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 QSsl::SupportedFeature

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

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

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

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

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。