PySide6.QtNetwork.QSslPreSharedKeyAuthenticator

class QSslPreSharedKeyAuthenticator

QSslPreSharedKeyAuthenticator 类为预共享密钥(PSK)加密套件提供认证数据。更多

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

QSslPreSharedKeyAuthenticator 类由 SSL 套接字使用,以在预共享密钥 (PSK) 加密套件中提供所需的认证数据。

在PSK握手过程中,客户端必须派生一个密钥,该密钥必须与服务器上设置的密钥匹配。派生密钥的具体算法取决于应用程序;然而,为此目的,服务器可能会向客户端发送一个身份提示。然后,客户端使用此提示与其他信息(例如密码短语)结合来构建共享密钥。

QSslPreSharedKeyAuthenticator 为客户端应用程序提供了完成PSK握手的方法。客户端应用程序需要将一个槽连接到preSharedKeyAuthenticationRequired()信号:

socket.preSharedKeyAuthenticationRequired.connect(
        self.handlePreSharedKeyAuthentication)

信号携带了一个QSslPreSharedKeyAuthenticator对象,其中包含服务器发送给客户端的身份提示,并且必须填写相应的客户端身份和派生密钥:

def handlePreSharedKeyAuthentication(self, authenticator):

    authenticator.setIdentity("My Qt App")
    key = deriveKey(authenticator.identityHint(), passphrase)
    authenticator.setPreSharedKey(key)

注意

PSK 加密套件仅在将 OpenSSL 1.0.1(或更高版本)用作 SSL 后端时支持。

注意

PSK 目前仅在 OpenSSL 中受支持。

另请参阅

QSslSocket

__init__()

构造一个默认的QSslPreSharedKeyAuthenticator对象。

身份提示、身份和密钥将被初始化为空字节数组;身份和密钥的最大长度将被初始化为0。

__init__(authenticator)
Parameters:

认证器QSslPreSharedKeyAuthenticator

构造一个QSslPreSharedKeyAuthenticator对象作为authenticator的副本。

另请参阅

operator=()

identity()
Return type:

QByteArray

返回PSK客户端身份。

另请参阅

setIdentity()

identityHint()
Return type:

QByteArray

返回服务器提供的PSK身份提示。此提示的解释由应用程序决定。

maximumIdentityLength()
Return type:

整数

返回PSK客户端身份的最大长度,以字节为单位。

注意

可以设置一个长度大于maximumIdentityLength()的身份;在这种情况下,实际上只有前maximumIdentityLength()字节会被发送到服务器。

另请参阅

setIdentity()

maximumPreSharedKeyLength()
Return type:

整数

返回预共享密钥的最大长度,以字节为单位。

注意

可以设置一个长度大于maximumPreSharedKeyLength()的密钥;在这种情况下,只有前maximumPreSharedKeyLength()字节会实际发送到服务器。

另请参阅

setPreSharedKey()

__ne__(rhs)
Parameters:

rhsQSslPreSharedKeyAuthenticator

Return type:

布尔

如果验证器对象 lhs 不等于 rhs,则返回 true;否则返回 false

__eq__(rhs)
Parameters:

rhsQSslPreSharedKeyAuthenticator

Return type:

布尔

如果验证器对象 lhs 等于 rhs,则返回 true;否则返回 false

两个认证器对象相等,当且仅当它们具有相同的身份提示、身份、预共享密钥、身份的最大长度和预共享密钥的最大长度。

preSharedKey()
Return type:

QByteArray

返回预共享密钥。

另请参阅

setPreSharedKey()

setIdentity(identity)
Parameters:

身份QByteArray

将PSK客户端身份(将通知给服务器)设置为identity

注意

可以设置一个长度大于maximumIdentityLength()的身份;在这种情况下,只有前maximumIdentityLength()字节会实际发送到服务器。

setPreSharedKey(preSharedKey)
Parameters:

preSharedKeyQByteArray

将预共享密钥设置为 preSharedKey

注意

可以设置一个长度大于maximumPreSharedKeyLength()的密钥;在这种情况下,只有前maximumPreSharedKeyLength()字节会实际发送到服务器。

swap(other)
Parameters:

其他QSslPreSharedKeyAuthenticator

QSslPreSharedKeyAuthenticator对象authenticator与此对象交换。此操作非常快速且永远不会失败。