QSslPreSharedKeyAuthenticator 类
QSslPreSharedKeyAuthenticator 类提供预共享密钥(PSK)密码套件的认证数据。更多...
头文件 | #include <QSslPreSharedKeyAuthenticator> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake | QT += network |
- 所有成员列表,包括继承成员
- QSslPreSharedKeyAuthenticator 属于 网络编程 API 和 隐式共享类。
注意:本类中所有函数均为可重入。
公开函数
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=(const QSslPreSharedKeyAuthenticator &authenticator) |
QSslPreSharedKeyAuthenticator & | operator=(QSslPreSharedKeyAuthenticator &&authenticator) |
相关非成员函数
bool | operator!=(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs) |
bool | operator==(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs) |
详细说明
QSslPreSharedKeyAuthenticator 类由 SSL 套接字使用,在预共享密钥(PSK)密码套件中提供所需的认证数据。
在 PSK 握手过程中,客户端必须生成了一个密钥,这个密钥必须与服务器上设置的密钥相匹配。生成密钥的确切算法取决于应用程序;然而,为此目的,服务器可能向客户端发送一个身份提示。这个提示与其他信息(例如密码)结合后,被客户端用来构造共享密钥。
QSslPreSharedKeyAuthenticator类为客户端应用提供了一种完成预共享密钥握手的机制。客户端应用需要连接到一个槽,用于QSslSocket::preSharedKeyAuthenticationRequired()信号。
connect(socket, &QSslSocket::preSharedKeyAuthenticationRequired, this, &AuthManager::handlePreSharedKeyAuthentication);
该信号携带一个包含服务器发送到客户端的身份提示的QSslPreSharedKeyAuthenticator对象,并且该提示必须用相应的客户端身份和派生密钥来填充
void AuthManager::handlePreSharedKeyAuthentication(QSslPreSharedKeyAuthenticator *authenticator) { authenticator->setIdentity("My Qt App"); const QByteArray key = deriveKey(authenticator->identityHint(), passphrase); authenticator->setPreSharedKey(key); }
注意:只有在使用OpenSSL 1.0.1(或更高版本)作为SSL后端时才支持PSK加密套件。
注意:目前PSK仅在OpenSSL中得到支持。
另请参阅:QSslSocket。
成员函数文档
QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator()
构造一个默认的QSslPreSharedKeyAuthenticator对象。
身份提示、身份和密钥将初始化为空字节数组;身份和密钥的最大长度将初始化为0。
QSslPreSharedKeyAuthenticator::QSslPreSharedKeyAuthenticator(const QSslPreSharedKeyAuthenticator &authenticator)
以authenticator为副本构造一个QSslPreSharedKeyAuthenticator对象。
另请参阅:operator=。
[noexcept]
QSslPreSharedKeyAuthenticator::~QSslPreSharedKeyAuthenticator()
销毁QSslPreSharedKeyAuthenticator对象。
QByteArray QSslPreSharedKeyAuthenticator::identity() const
返回PSK客户端身份。
另请参阅:setIdentity。
QByteArray QSslPreSharedKeyAuthenticator::identityHint() const
返回服务器提供的PSK身份提示。此提示的解释由应用决定。
int QSslPreSharedKeyAuthenticator::maximumIdentityLength() const
返回PSK客户端身份的最大长度(以字节为单位)。
注意:可以设置一个长度大于maximumIdentityLength()的身份;在这种情况下,实际发送到服务器的是前maximumIdentityLength()个字节。
另请参阅:setIdentity。
int QSslPreSharedKeyAuthenticator::maximumPreSharedKeyLength() const
返回预共享密钥的最大长度(以字节为单位)。
注意:可以设置一个长度大于maximumPreSharedKeyLength()的密钥;在这种情况下,实际发送到服务器的是前maximumPreSharedKeyLength()个字节。
另请参阅:setPreSharedKey。
QByteArray QSslPreSharedKeyAuthenticator::preSharedKey() const
返回预共享密钥。
另请参阅:setPreSharedKey。
void QSslPreSharedKeyAuthenticator::setIdentity(const QByteArray &identity)
将PSK客户端身份(将被通知到服务器)设置为identity。
void QSslPreSharedKeyAuthenticator::setPreSharedKey(const QByteArray &preSharedKey)
设置预共享密钥为 preSharedKey。
另请参阅预共享密钥、最大预共享密钥长度 和 QByteArray::fromHex。
[noexcept]
void QSslPreSharedKeyAuthenticator::swap(QSslPreSharedKeyAuthenticator &authenticator)
交换 QSslPreSharedKeyAuthenticator 对象 authenticator 与此对象。此操作非常快速且从不失败。
QSslPreSharedKeyAuthenticator &QSslPreSharedKeyAuthenticator::operator=(const QSslPreSharedKeyAuthenticator &authenticator)
将 QSslPreSharedKeyAuthenticator 对象 authenticator 赋值给此对象,并返回副本的引用。
[noexcept]
QSslPreSharedKeyAuthenticator &QSslPreSharedKeyAuthenticator::operator=(QSslPreSharedKeyAuthenticator &&authenticator)
移动赋值 QSslPreSharedKeyAuthenticator 对象 authenticator 到此对象,并返回已移动实例的引用。
相关非成员函数
bool operator!=(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)
如果认证器对象 lhs 不等于 rhs 则返回 true
;否则返回 false
。
bool operator==(const QSslPreSharedKeyAuthenticator &lhs, const QSslPreSharedKeyAuthenticator &rhs)
如果认证器对象 lhs 等于 rhs 则返回 true
;否则返回 false
。
当且仅当两个认证器对象具有相同的身份提示、身份、预共享密钥以及身份和预共享密钥的最大长度时,这两个认证器对象才相等。
©© 2024 Qt公司有限公司。本文件中包含的文档贡献均为各自所有者的版权。所提供文档的使用受GNU自由文档许可证版本1.3的条款和条件约束,由自由软件基金会发布。Qt及其相关标志为Qt公司有限公司在芬兰及其他国家/地区的商标。所有其他商标均为其各自所有者的财产。