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 はNetwork Programming 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 における代替名エントリーのキータイプについて説明する。
定数 | 値 | 説明 |
---|---|---|
QSsl::EmailEntry | 0 | 電子メール・エントリ。証明書が有効な電子メール・アドレスが含まれる。 |
QSsl::DnsEntry | 1 | DNS ホスト名エントリ。エントリには、証明書が有効なホスト名エントリが含まれる。エントリには、ワイルドカードを含めることができる。 |
QSsl::IpAddressEntry | 2 | エントリは、証明書が有効な IP アドレスエントリを含みます。 |
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::Rsa | 1 | RSA アルゴリズム。 |
QSsl::Dsa | 2 | DSA アルゴリズム。 |
QSsl::Ec | 3 | 楕円曲線アルゴリズム。 |
QSsl::Dh | 4 | Diffie-Hellmanアルゴリズム。 |
QSsl::Opaque | 0 | QSslKey によって「ブラックボックス」として扱われるべき鍵。 |
不透明鍵機能により、アプリケーションは PKCS#11 のような、Qt が現在ネイティブで提供していない機能のサポートを追加することができます。
enum QSsl::KeyType
QSslKey がサポートする2種類のキーについて説明する。
定数 | 値 | 説明 |
---|---|---|
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サーバー名表示拡張機能を無効にします。有効にすると、サーバーにアクセスしているバーチャルホストを通知し、正しい証明書で応答できるようになります。 |
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 は、CRIME によって公表された攻撃を防ぐためにオンになっている。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 例えば、SecureTransport バックエンドはサーバーサイド ALPN をサポートしていない。SupportedFeature 列挙型の列挙子は、特定の機能がサポートされていることを示します。
定数 | 値 | 説明 |
---|---|---|
QSslSocket::SupportedFeature::CertificateVerification | 0 | バックエンドがQSslCertificate::verify() を実装していることを示す。 |
QSslSocket::SupportedFeature::ClientSideAlpn | 1 | クライアント側の ALPN (Application Layer Protocol Negotiation)。 |
QSslSocket::SupportedFeature::ServerSideAlpn | 2 | サーバー側の ALPN。 |
QSslSocket::SupportedFeature::Ocsp | 3 | OCSP ステープリング(オンライン証明書ステータス・プロトコル)。 |
QSslSocket::SupportedFeature::Psk | 4 | 事前共有鍵。 |
QSslSocket::SupportedFeature::SessionTicket | 5 | セッション・チケット。 |
QSslSocket::SupportedFeature::Alerts | 6 | 送受信されたアラートメッセージに関する情報。 |
この 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.