QSslPreSharedKeyAuthenticator露

The QSslPreSharedKeyAuthenticator class provides authentication data for pre shared keys (PSK) ciphersuites. More鈥�

Inheritance diagram of PySide2.QtNetwork.QSslPreSharedKeyAuthenticator

Synopsis露

Functions露

Detailed Description露

The QSslPreSharedKeyAuthenticator class is used by an SSL socket to provide the required authentication data in a pre shared key (PSK) ciphersuite.

In a PSK handshake, the client must derive a key, which must match the key set on the server. The exact algorithm of deriving the key depends on the application; however, for this purpose, the server may send an identity hint to the client. This hint, combined with other information (for instance a passphrase), is then used by the client to construct the shared key.

The QSslPreSharedKeyAuthenticator provides means to client applications for completing the PSK handshake. The client application needs to connect a slot to the preSharedKeyAuthenticationRequired() signal:

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

The signal carries a QSslPreSharedKeyAuthenticator object containing the identity hint the server sent to the client, and which must be filled with the corresponding client identity and the derived key:

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

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

Note

PSK ciphersuites are supported only when using OpenSSL 1.0.1 (or greater) as the SSL backend.

Note

PSK is currently only supported in OpenSSL.

See also

QSslSocket

class PySide2.QtNetwork.QSslPreSharedKeyAuthenticator露

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator(authenticator)

param authenticator:

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator

Constructs a default QSslPreSharedKeyAuthenticator object.

The identity hint, the identity and the key will be initialized to empty byte arrays; the maximum length for both the identity and the key will be initialized to 0.

Constructs a QSslPreSharedKeyAuthenticator object as a copy of authenticator .

See also

operator=()

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identity()露
Return type:

PySide2.QtCore.QByteArray

Returns the PSK client identity.

See also

setIdentity()

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identityHint()露
Return type:

PySide2.QtCore.QByteArray

Returns the PSK identity hint as provided by the server. The interpretation of this hint is left to the application.

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumIdentityLength()露
Return type:

int

Returns the maximum length, in bytes, of the PSK client identity.

Note

it is possible to set an identity whose length is greater than ; in this case, only the first bytes will be actually sent to the server.

See also

setIdentity()

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumPreSharedKeyLength()露
Return type:

int

Returns the maximum length, in bytes, of the pre shared key.

Note

it is possible to set a key whose length is greater than the ; in this case, only the first bytes will be actually sent to the server.

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.__ne__(rhs)露
Parameters:

rhs 鈥� PySide2.QtNetwork.QSslPreSharedKeyAuthenticator

Return type:

bool

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.preSharedKey()露
Return type:

PySide2.QtCore.QByteArray

Returns the pre shared key.

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setIdentity(identity)露
Parameters:

identity 鈥� PySide2.QtCore.QByteArray

Sets the PSK client identity (to be advised to the server) to identity .

Note

it is possible to set an identity whose length is greater than maximumIdentityLength() ; in this case, only the first maximumIdentityLength() bytes will be actually sent to the server.

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setPreSharedKey(preSharedKey)露
Parameters:

preSharedKey 鈥� PySide2.QtCore.QByteArray

Sets the pre shared key to preSharedKey .

Note

it is possible to set a key whose length is greater than the maximumPreSharedKeyLength() ; in this case, only the first maximumPreSharedKeyLength() bytes will be actually sent to the server.

PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.swap(other)露
Parameters:

other 鈥� PySide2.QtNetwork.QSslPreSharedKeyAuthenticator

Swaps the QSslPreSharedKeyAuthenticator object authenticator with this object. This operation is very fast and never fails.