QSslPreSharedKeyAuthenticator 类为预共享密钥(PSK)加密套件提供认证数据。更多信息…
概要#
方法#
def
__init__()
def
identity()
def
identityHint()
def
__ne__()
def
__eq__()
def
preSharedKey()
def
setIdentity()
def
swap()
注意
此文档可能包含自动从 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)
注意
仅当使用 OpenSSL 1.0.1(或更高版本)作为 SSL 后端时才支持 PSK 密码套件。
构造一个默认的
QSslPreSharedKeyAuthenticator
对象。身份提示、身份和密钥将被初始化为空字节数组;身份和密钥的最大长度都将初始化为 0。
- __init__(authenticator)
- 参数:
authenticator –
QSslPreSharedKeyAuthenticator
将
authenticator
作为副本构造QSslPreSharedKeyAuthenticator
对象。另请参阅
operator=()
- 返回类型:
返回 PSK 客户端身份。
另请参阅
- 返回类型:
返回 PSK 身份提示,由服务器提供。此提示的解释留给了应用程序。
- 返回类型:
int
返回 PSK 客户端身份的最大长度(字节)。
注意
可以设置长度大于 maximumIdentityLength() 的身份;在这种情况下,实际发送到服务器的将是 maximumIdentityLength() 个字节。
另请参阅
- 返回类型:
int
返回预共享密钥的最大长度(字节)。
- 参数:
- 返回类型:
bool
如果认证器对象
lhs
不等于rhs
,则返回true
;否则返回false
。- 参数:
- 返回类型:
bool
如果认证器对象
lhs
等于rhs
,则返回true
;否则返回false
。两个认证器对象相等,当且仅当它们具有相同的身份提示、身份、预共享密钥以及用户名和预共享密钥的最大长度。
- 返回类型:
返回预共享密钥。
另请参阅
- 参数:
identity –
QByteArray
将 PSK 客户端身份(将被服务器通知)设置为
identity
。注意
可以设置长度大于
maximumIdentityLength()
的身份;在这种情况下,只有前maximumIdentityLength()
字节将被发送到服务器。- 参数:
preSharedKey –
QByteArray
将预共享密钥设为
preSharedKey
。注意
可以设置长度大于
maximumPreSharedKeyLength()
的密钥;在这种情况下,只有前maximumPreSharedKeyLength()
字节将被发送到服务器。- 参数:
other –
QSslPreSharedKeyAuthenticator
交换
QSslPreSharedKeyAuthenticator
对象authenticator
与此对象。这个操作非常快且永远不会失败。