QSslPreSharedKeyAuthenticator Class

QSslPreSharedKeyAuthenticator クラスは、事前共有鍵 (PSK) 暗号スイート用の認証データを提供します。詳細...

Header: #include <QSslPreSharedKeyAuthenticator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

注意:このクラスの関数はすべてリエントラントです。

パブリック関数

QSslPreSharedKeyAuthenticator()
QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)
~QSslPreSharedKeyAuthenticator()
QByteArray identity() const
QByteArray identityHint() const
int maximumIdentityLength() const
int maximumPreSharedKeyLength() const
QByteArray preSharedKey() const
void setIdentity(const QByteArray &identity)
void setPreSharedKey(const QByteArray &preSharedKey)
void swap(QSslPreSharedKeyAuthenticator &authenticator)
QSslPreSharedKeyAuthenticator &operator=(QSslPreSharedKeyAuthenticator &&authenticator)
QSslPreSharedKeyAuthenticator &operator=(const QSslPreSharedKeyAuthenticator &authenticator)
bool operator!=(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)
bool operator==(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)

詳細説明

QSslPreSharedKeyAuthenticator クラスは、事前共有鍵 (PSK) 暗号スイートで必要な認証データを提供するために SSL ソケットで使用されます。

PSK ハンドシェイクでは、クライアントは鍵を導出しなければならず、それはサーバに設定されている鍵と一致しなければなりません。鍵を導出する正確なアルゴリズムはアプリケーションに依存するが、この目的のために、サーバはクライアントにIDヒントを送信することができる。このヒントは、他の情報(たとえばパスフレーズ)と組み合わされ、共有鍵を構築するためにクライアントによって使用される。

QSslPreSharedKeyAuthenticator は、PSK ハンドシェイクを完了するための手段をクライアントアプリケーションに提供する。クライアントアプリケーションは、スロットをQSslSocket::preSharedKeyAuthenticationRequired() シグナルに接続する必要がある:

    connect(socket, &QSslSocket::preSharedKeyAuthenticationRequired,
            this, &AuthManager::handlePreSharedKeyAuthentication);

このシグナルは QSslPreSharedKeyAuthenticator オブジェクトを運び、サーバーがクライアントに送る ID のヒントを含む:

    void AuthManager::handlePreSharedKeyAuthentication(QSslPreSharedKeyAuthenticator *authenticator)
    {
        authenticator->setIdentity("My Qt App");

        const QByteArray key = deriveKey(authenticator->identityHint(), passphrase);
        authenticator->setPreSharedKey(key);
    }

注意: PSK 暗号スイートは、SSL バックエンドとして OpenSSL 1.0.1 (またはそれ以上) を使用している場合にのみサポートされます。

注: PSKは現在OpenSSLでのみサポートされている。

QSslSocketも参照

メンバー関数ドキュメント

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator()

デフォルトの QSslPreSharedKeyAuthenticator オブジェクトを構築する。

ID ヒント、ID、およびキーは空のバイト配列に初期化される。

QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)

QSslPreSharedKeyAuthenticator オブジェクトをauthenticator のコピーとして構築する。

operator=()も参照

[noexcept] QSslPreSharedKeyAuthenticator::~QSslPreSharedKeyAuthenticator()

QSslPreSharedKeyAuthenticator オブジェクトを破棄します。

QByteArray QSslPreSharedKeyAuthenticator::identity() const

PSK クライアント ID を返します。

setIdentity()も参照

QByteArray QSslPreSharedKeyAuthenticator::identityHint() const

サーバから提供された PSK ID ヒントを返す。このヒントの解釈はアプリケーションに任されている。

int QSslPreSharedKeyAuthenticator::maximumIdentityLength() const

PSK クライアント ID の最大長をバイト単位で返す。

この場合、実際にサーバに送信されるのは最初のmaximumIdentityLength()バイトだけである。

setIdentity()も参照

int QSslPreSharedKeyAuthenticator::maximumPreSharedKeyLength() const

事前共有鍵の最大長をバイト数で返す。

この場合、実際にサーバに送信されるのは最初の maximumPreSharedKeyLength() バイトのみとなります。

setPreSharedKey()も参照

QByteArray QSslPreSharedKeyAuthenticator::preSharedKey() const

事前共有鍵を返します。

setPreSharedKey()も参照

void QSslPreSharedKeyAuthenticator::setIdentity(const QByteArray &identity)

PSK クライアント ID (サーバに通知する) をidentity に設定する。

注意: maximumIdentityLength()よりも長い長さのIDを設定することも可能である。この場合、最初のmaximumIdentityLength() バイトだけが実際にサーバに送信される。

identity() およびmaximumIdentityLength()も参照のこと

void QSslPreSharedKeyAuthenticator::setPreSharedKey(const QByteArray &preSharedKey)

事前共有鍵をpreSharedKey に設定する。

注意: maximumPreSharedKeyLength() よりも長い長さの鍵を設定することも可能である。この場合、最初のmaximumPreSharedKeyLength() バイトだけが実際にサーバに送信される。

preSharedKey()、maximumPreSharedKeyLength()、QByteArray::fromHex()も参照のこと

[noexcept] void QSslPreSharedKeyAuthenticator::swap(QSslPreSharedKeyAuthenticator &authenticator)

QSslPreSharedKeyAuthenticator オブジェクトauthenticator をこのオブジェクトと交換する。この操作は非常に高速で、失敗することはない。

[noexcept] QSslPreSharedKeyAuthenticator &QSslPreSharedKeyAuthenticator::operator=(QSslPreSharedKeyAuthenticator &&authenticator)

Move-QSslPreSharedKeyAuthenticator オブジェクトauthenticator をこのオブジェクトに割り当て、移動したインスタンスへの参照を返します。

QSslPreSharedKeyAuthenticator &QSslPreSharedKeyAuthenticator::operator=(const QSslPreSharedKeyAuthenticator &authenticator)

QSslPreSharedKeyAuthenticator オブジェクトauthenticator をこのオブジェクトに割り当て、コピーへの参照を返します。

関連する非会員

bool operator!=(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)

認証子オブジェクトlhsrhs と等しくない場合はtrue を返し、そうでない場合はfalse を返す。

bool operator==(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)

認証子オブジェクトlhsrhs と等しい場合はtrue を返し、そうでない場合はfalse を返します。

2つの認証子オブジェクトが等しいのは、IDヒント、ID、事前共有鍵、IDの最大長、事前共有鍵の最大長が同じ場合のみです。

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