QOpcUaKeyPair 类

QOpcUaKeyPair 处理私钥和公钥对。 更多...

头文件 #include <QOpcUaKeyPair>
CMakefind_package(Qt6 REQUIRED COMPONENTS OpcUa)
target_link_libraries(mytarget PRIVATE Qt6::OpcUa)
qmakeQT += opcua
继承 QObject

公共类型

枚举类型Cipher { Aes128Cbc, Unencrypted }
枚举类型KeyType { Rsa, Empty, Unknown }
枚举类型RsaKeyStrength { Bits1024, Bits2048, Bits4096 }

公共函数

QOpcUaKeyPair(QObject *parent = nullptr)
virtual~QOpcUaKeyPair()
voidgenerateRsaKey(QOpcUaKeyPair::RsaKeyStrength strength)
boolhasPrivateKey() const
boolloadFromPemData(const QByteArray &data)
QByteArrayprivateKeyToByteArray(QOpcUaKeyPair::Cipher cipher, const QString &password) const
QByteArraypublicKeyToByteArray() const
QOpcUaKeyPair::KeyTypetype() const

信号

voidpassphraseNeeded(QString &passphrase, int maximumLength, bool writeOperation)

详细描述

此类目前作为技术预览提供,因此此类提供的 API 和功能可能会在任何时候更改,恕不另行通知。

它可以生成、加载和存储用于非对称加密的密钥。此类实例必须传递给需要密钥的函数。

成员类型文档

枚举类型 QOpcUaKeyPair::Cipher

私有密钥加密的加密算法。

常量描述
QOpcUaKeyPair::Cipher::Aes128Cbc0使用 CBC 加密 AES128
QOpcUaKeyPair::Cipher::Unencrypted1密钥将不会被加密。

枚举类型 QOpcUaKeyPair::KeyType

此枚举类型指定密钥的类型。

常量描述
QOpcUaKeyPair::KeyType::Rsa0一个 RSA 密钥
QOpcUaKeyPair::KeyType::Empty1没有可用的密钥。
QOpcUaKeyPair::KeyType::Unknown2密钥的类型未处理。

枚举类型 QOpcUaKeyPair::RsaKeyStrength

此枚举类型指定RSA密钥的强度。

常量描述
QOpcUaKeyPair::RsaKeyStrength::Bits102410241024位密钥强度。
QOpcUaKeyPair::RsaKeyStrength::Bits204820482048位密钥强度。
QOpcUaKeyPair::RsaKeyStrength::Bits409640964096位密钥强度。

成员函数文档

QOpcUaKeyPair::QOpcUaKeyPair(QObject *parent = nullptr)

使用父对象parent创建一个新的空密钥对。

[虚函数 noexcept] QOpcUaKeyPair::~QOpcUaKeyPair()

销毁键对。

void QOpcUaKeyPair::generateRsaKey(QOpcUaKeyPair::RsaKeyStrength strength)

生成一个新的非对称RSA密钥对。

密钥长度由strength指定。

bool QOpcUaKeyPair::hasPrivateKey() const

如果当前密钥包含私钥,则返回true,否则返回false

bool QOpcUaKeyPair::loadFromPemData(const QByteArray &data)

从PEM编码数据data中加载密钥。成功则返回true,否则返回false

它可以检测PEM头来确定数据是否包含私钥或公钥。通过连接一个函数到信号passphraseNeeded可以加载加密的密钥,为密码提供密码。

[信号] void QOpcUaKeyPair::passphraseNeeded(QString &passphrase, int maximumLength, bool writeOperation)

当私钥需要加密或解密时需要一个密码时,会发出此信号。

writeOperation 为真时,是当需要导出密钥时用的密码,为假时是需要导入密钥时用的密码。

maximumLength 指定密码的最大长度(字节)。超出的所有字符passphrase都将被忽略。

如果在跨越线程边界的上下文中使用该信号,则需要使用代码Qt::BlockingQueuedConnection来连接。

QByteArray QOpcUaKeyPair::privateKeyToByteArray(QOpcUaKeyPair::Cipher cipher, const QString &password) const

返回PEM编码的私钥。如果没有私钥,则返回空的字节数组。

必须使用参数cipherpassword指定密钥的加密。为了不加密存储密钥,必须使用加密代码Cipher::Unencrypted

QByteArray QOpcUaKeyPair::publicKeyToByteArray() const

将公钥作为字节数组返回。

QOpcUaKeyPair::KeyType QOpcUaKeyPair::type() const

返回当前密钥的类型。

© 2024 Qt公司有限公司。本文件中包含的文档贡献是各自所有者的版权。本文件提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3许可。Qt及其相关标志是芬兰及全球其他地区的Qt公司商标商标。所有其他商标均为其各自所有者的财产。