QCA::KeyLoader
#include <QtCrypto>
Signals | |
void | finished () |
Public Member Functions | |
KeyLoader (QObject *parent=nullptr) | |
ConvertResult | convertResult () const |
KeyBundle | keyBundle () const |
void | loadKeyBundleFromArray (const QByteArray &a) |
void | loadKeyBundleFromFile (const QString &fileName) |
void | loadPrivateKeyFromDER (const SecureArray &a) |
void | loadPrivateKeyFromPEM (const QString &s) |
void | loadPrivateKeyFromPEMFile (const QString &fileName) |
PrivateKey | privateKey () const |
Public Member Functions inherited from QObject | |
QObject (QObject *parent) | |
QBindable< QString > | bindableObjectName () |
bool | blockSignals (bool block) |
const QObjectList & | children () const const |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
void | deleteLater () |
void | destroyed (QObject *obj) |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectInfo () const const |
void | dumpObjectTree () const const |
QList< QByteArray > | dynamicPropertyNames () const const |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (Qt::FindChildOptions options) const const |
bool | inherits (const char *className) const const |
void | installEventFilter (QObject *filterObj) |
bool | isQuickItemType () const const |
bool | isWidgetType () const const |
bool | isWindowType () const const |
void | killTimer (int id) |
virtual const QMetaObject * | metaObject () const const |
void | moveToThread (QThread *targetThread) |
QString | objectName () const const |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
QVariant | property (const char *name) const const |
Q_CLASSINFO (Name, Value) | |
Q_EMIT Q_EMIT | |
Q_ENUM (...) | |
Q_ENUM_NS (...) | |
Q_ENUMS (...) | |
Q_FLAG (...) | |
Q_FLAG_NS (...) | |
Q_FLAGS (...) | |
Q_GADGET Q_GADGET | |
Q_GADGET_EXPORT (EXPORT_MACRO) | |
Q_INTERFACES (...) | |
Q_INVOKABLE Q_INVOKABLE | |
Q_MOC_INCLUDE Q_MOC_INCLUDE | |
Q_NAMESPACE Q_NAMESPACE | |
Q_NAMESPACE_EXPORT (EXPORT_MACRO) | |
Q_OBJECT Q_OBJECT | |
Q_PROPERTY (...) | |
Q_REVISION Q_REVISION | |
Q_SET_OBJECT_NAME (Object) | |
Q_SIGNAL Q_SIGNAL | |
Q_SIGNALS Q_SIGNALS | |
Q_SLOT Q_SLOT | |
Q_SLOTS Q_SLOTS | |
T | qobject_cast (const QObject *object) |
T | qobject_cast (QObject *object) |
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
void | removeEventFilter (QObject *obj) |
void | setObjectName (const QString &name) |
void | setObjectName (QAnyStringView name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | setProperty (const char *name, QVariant &&value) |
bool | signalsBlocked () const const |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds interval, Qt::TimerType timerType) |
QThread * | thread () const const |
Additional Inherited Members | |
Public Types inherited from QObject | |
typedef | QObjectList |
Properties inherited from QObject | |
objectName | |
Static Public Member Functions inherited from QObject | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
Protected Member Functions inherited from QObject | |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
bool | isSignalConnected (const QMetaMethod &signal) const const |
int | receivers (const char *signal) const const |
QObject * | sender () const const |
int | senderSignalIndex () const const |
virtual void | timerEvent (QTimerEvent *event) |
Detailed Description
Asynchronous private key loader.
GUI applications generally must use KeyLoader to load private keys. This is because the synchronous private key loading functions, for example QCA::PrivateKey::fromPEMFile(), cannot be used within the same thread as an EventHandler, and most GUI applications will use EventHandler from the main thread. KeyLoader does not have this problem. It can be used from any thread, including the same thread as EventHandler.
The KeyLoader class allows you to asynchronously load stand-alone private keys (QCA::PrivateKey) or private keys with a certificate (QCA::KeyBundle) with a signal that advises of completion.
To use this class to load a PrivateKey, you create a KeyLoader object then use one of the loadPrivateKeyFrom...() functions, depending on the format for your key. These functions return immediately. When you get the finished() signal, you can check that the loading operation succeeded (using convertResult()) and then obtain the PrivateKey using the privateKey() function.
The same process applies for loading a KeyBundle, except that you use either loadKeyBundleFromFile() or loadKeyBundleFromArray() instead of the loadPrivateKeyFrom...() function, and use keyBundle() instead of privateKey().
The loader may need a passphrase to complete the loading of the key or key bundle. You should use the QCA::EventHandler class to ensure that you deal with this correctly.
- Note
- QCA also provides synchronous private key loading using QCA::PrivateKey::fromPEMFile(), QCA::PrivateKey::fromPEM() and QCA::PrivateKey::fromDER(). QCA provides synchronous key bundle loading using QCA::KeyBundle::fromArray() and QCA::KeyBundle::fromFile().
- Examples
- keyloader.cpp.
Definition at line 2612 of file qca_cert.h.
Constructor & Destructor Documentation
◆ KeyLoader()
QCA::KeyLoader::KeyLoader | ( | QObject * | parent = nullptr | ) |
Create a KeyLoader object.
- Parameters
-
parent the parent object for this object
Member Function Documentation
◆ convertResult()
ConvertResult QCA::KeyLoader::convertResult | ( | ) | const |
The result of the loading process.
This is not valid until the finished() signal has been emitted.
- Examples
- keyloader.cpp.
◆ finished
|
signal |
Signal that is emitted when the load process has completed.
- Note
- The load process may not have completed successfully - check the result of convertResult() to confirm this before using the privateKey() or keyBundle() results.
- Examples
- keyloader.cpp.
◆ keyBundle()
KeyBundle QCA::KeyLoader::keyBundle | ( | ) | const |
The key bundle that has been loaded.
This is only valid if loadKeyBundleFromFile() or loadKeyBundleFromArray() has been used, the load has completed (that is, finished() has been emitted), and the conversion succeeded (that is, convertResult() returned ConvertGood).
◆ loadKeyBundleFromArray()
void QCA::KeyLoader::loadKeyBundleFromArray | ( | const QByteArray & | a | ) |
Initiate an asynchronous loading of a KeyBundle from an array.
This function will return immediately.
- Parameters
-
a the array containing the key bundle
◆ loadKeyBundleFromFile()
void QCA::KeyLoader::loadKeyBundleFromFile | ( | const QString & | fileName | ) |
Initiate an asynchronous loading of a KeyBundle from a file.
This function will return immediately.
- Parameters
-
fileName the name of the file (and path, if necessary) to load the key bundle from
◆ loadPrivateKeyFromDER()
void QCA::KeyLoader::loadPrivateKeyFromDER | ( | const SecureArray & | a | ) |
Initiate an asynchronous loading of a PrivateKey from a DER format array.
This function will return immediately.
- Parameters
-
a the array containing the DER formatted key
◆ loadPrivateKeyFromPEM()
void QCA::KeyLoader::loadPrivateKeyFromPEM | ( | const QString & | s | ) |
Initiate an asynchronous loading of a PrivateKey from a PEM format string.
This function will return immediately.
- Parameters
-
s the string containing the PEM formatted key
◆ loadPrivateKeyFromPEMFile()
void QCA::KeyLoader::loadPrivateKeyFromPEMFile | ( | const QString & | fileName | ) |
Initiate an asynchronous loading of a PrivateKey from a PEM format file.
This function will return immediately.
- Parameters
-
fileName the name of the file (and path, if necessary) to load the key from
- Examples
- keyloader.cpp.
◆ privateKey()
PrivateKey QCA::KeyLoader::privateKey | ( | ) | const |
The private key that has been loaded.
This is only valid if loadPrivateKeyFromPEMFile(), loadPrivateKeyFromPEM() or loadPrivateKeyFromDER() has been used, the load has completed (that is, finished() has been emitted), and the conversion succeeded (that is, convertResult() returned ConvertGood).
- Examples
- keyloader.cpp.
The documentation for this class was generated from the following file:
Documentation copyright © 1996-2024 The KDE developers.
Generated on Sat Dec 21 2024 17:03:55 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.