class QOpcUaKeyPair

QOpcUaKeyPair handles private and public key pairs. More

Inheritance diagram of PySide6.QtOpcUa.QOpcUaKeyPair

Synopsis

Methods

Signals

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description

This class is currently available as a Technology Preview, and therefore the API and functionality provided by the class may be subject to change at any time without prior notice.

It can generate, load and store keys for asymmetric encryption. Instances of this class have to be passed to functions which need a key.

class RsaKeyStrength

This enum type specifies the strength of a RSA key.

Constant

Description

QOpcUaKeyPair.RsaKeyStrength.Bits1024

A key strength of 1024 bits.

QOpcUaKeyPair.RsaKeyStrength.Bits2048

A key strength of 2048 bits.

QOpcUaKeyPair.RsaKeyStrength.Bits4096

A key strength of 4096 bits.

class KeyType

This enum type specifies the type of a key.

Constant

Description

QOpcUaKeyPair.KeyType.Rsa

An RSA key

QOpcUaKeyPair.KeyType.Empty

No key is available.

QOpcUaKeyPair.KeyType.Unknown

The type of key is not handled.

class Cipher

Ciphers for encryption of private keys.

Constant

Description

QOpcUaKeyPair.Cipher.Aes128Cbc

Encrypting AES128 with CBC

QOpcUaKeyPair.Cipher.Unencrypted

The Key will not be encrypted.

__init__([parent=None])
Parameters:

parentQObject

Creates a new empty key pair with parent as the parent object.

generateRsaKey(strength)
Parameters:

strengthRsaKeyStrength

Generates a new asymmetric RSA key pair.

The length of the key is specified by strength.

hasPrivateKey()
Return type:

bool

Returns true if the current key contains a private key, otherwise false.

loadFromPemData(data)
Parameters:

dataQByteArray

Return type:

bool

Loads a key from PEM encoded data in data. Returns true on success and false otherwise.

It detects from the PEM header if the data contains a private or public key. Loading encrypted keys is possible by connecting a function to the signal passphraseNeeded for provision of the passphrase.

passphraseNeeded(passphrase, maximumLength, writeOperation)
Parameters:
  • passphrase – str

  • maximumLength – int

  • writeOperation – bool

This signal is emitted when a private key needs a passphrase for encryption or decryption.

writeOperation is true when the passphrase is needed for exporting a key, and is false when the passphrase is needed for importing a key.

maximumLength specifies the maximum length in bytes for the passphrase. All characters in passphrase exceeding this limit will be ignored.

In case you have use this signal crossing thread boundaries you have to connect it with Qt::BlockingQueuedConnection.

privateKeyToByteArray(cipher, password)
Parameters:
  • cipherCipher

  • password – str

Return type:

QByteArray

Returns the PEM encoded private key. In case there is no private key, an empty byte array is returned.

The encryption of the key has to be specified using the parameters cipher and password. In order to store the key unencrypted the cipher Cipher::Unencrypted has to be used.

publicKeyToByteArray()
Return type:

QByteArray

Returns the public key as a byte array.

type()
Return type:

KeyType

Returns the type of the current key.