Qt Cryptographic Architecture
qca_core.h
Go to the documentation of this file.
1 /*
2  * qca_core.h - Qt Cryptographic Architecture
3  * Copyright (C) 2003-2007 Justin Karneges <justin@affinix.com>
4  * Copyright (C) 2004,2005 Brad Hards <bradh@frogmouth.net>
5  * Copyright (C) 2014-2016 Ivan Romanov <drizt@land.ru>
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20  * 02110-1301 USA
21  *
22  */
23 
34 #ifndef QCA_CORE_H
35 #define QCA_CORE_H
36 
37 #include <QString>
38 #include <QStringList>
39 #include <QList>
40 #include <QSharedData>
41 #include <QSharedDataPointer>
42 #include "qca_export.h"
43 #include "qca_support.h"
44 #include "qca_tools.h"
45 #include "qca_version.h"
46 
53 QCA_EXPORT int qcaVersion();
54 
61 QCA_EXPORT const char *qcaVersionStr();
62 
69 QCA_EXPORT int qcaMajorVersion();
70 
77 QCA_EXPORT int qcaMinorVersion();
78 
85 QCA_EXPORT int qcaPatchVersion();
86 
90 namespace QCA {
91 
92 class Provider;
93 class Random;
94 class CertificateCollection;
95 class Global;
96 class KeyStore;
97 class KeyStoreEntry;
98 class KeyStoreInfo;
99 class KeyStoreManager;
100 class Logger;
101 
112 
128 {
132 };
133 
141 {
143  Decode
144 };
145 
151 QCA_EXPORT void init();
152 
160 QCA_EXPORT void init(MemoryMode m, int prealloc);
161 
169 QCA_EXPORT void deinit();
170 
176 QCA_EXPORT bool haveSecureMemory();
177 
186 QCA_EXPORT bool haveSecureRandom();
187 
219 QCA_EXPORT bool isSupported(const char *features, const QString &provider = QString());
220 
229 QCA_EXPORT bool isSupported(const QStringList &features, const QString &provider = QString());
230 
247 QCA_EXPORT QStringList supportedFeatures();
248 
266 QCA_EXPORT QStringList defaultFeatures();
267 
286 QCA_EXPORT bool insertProvider(Provider *p, int priority = 0);
287 
300 QCA_EXPORT bool unloadProvider(const QString &name);
301 
333 QCA_EXPORT void setProviderPriority(const QString &name, int priority);
334 
348 QCA_EXPORT int providerPriority(const QString &name);
349 
359 QCA_EXPORT ProviderList providers();
360 
366 QCA_EXPORT Provider *findProvider(const QString &name);
367 
371 QCA_EXPORT Provider *defaultProvider();
372 
384 QCA_EXPORT QStringList pluginPaths();
385 
389 QCA_EXPORT void scanForPlugins();
390 
394 QCA_EXPORT void unloadAllPlugins();
395 
399 QCA_EXPORT QString pluginDiagnosticText();
400 
404 QCA_EXPORT void clearPluginDiagnosticText();
405 
413 QCA_EXPORT void appendPluginDiagnosticText(const QString &text);
414 
423 QCA_EXPORT void setProperty(const QString &name, const QVariant &value);
424 
432 QCA_EXPORT QVariant getProperty(const QString &name);
433 
442 QCA_EXPORT void setProviderConfig(const QString &name, const QVariantMap &config);
443 
449 QCA_EXPORT QVariantMap getProviderConfig(const QString &name);
450 
456 QCA_EXPORT void saveProviderConfig(const QString &name);
457 
461 QCA_EXPORT QString globalRandomProvider();
462 
473 QCA_EXPORT void setGlobalRandomProvider(const QString &provider);
474 
481 QCA_EXPORT Logger *logger();
482 
493 #define QCA_logTextMessage(message, severity) \
494  do { \
495  QCA::Logger::Severity s = severity; \
496  QCA::Logger *l = QCA::logger (); \
497  if (s <= l->level ()) { \
498  l->logTextMessage (message, s); \
499  } \
500  } while (false)
501 
512 #define QCA_logBinaryMessage(blob, severity) \
513  do { \
514  QCA::Logger::Severity s = severity; \
515  QCA::Logger *l = QCA::logger (); \
516  if (s <= l->level ()) { \
517  l->logBinaryMessage (blob, s); \
518  } \
519  } while (false)
520 
529 QCA_EXPORT bool haveSystemStore();
530 
552 
560 QCA_EXPORT QString appName();
561 
571 QCA_EXPORT void setAppName(const QString &name);
572 
593 QCA_EXPORT QString arrayToHex(const QByteArray &array);
594 
620 QCA_EXPORT QByteArray hexToArray(const QString &hexString);
621 
632 QCA_EXPORT QString arrayToBase64(const QByteArray &array);
633 
646 QCA_EXPORT QByteArray base64ToArray(const QString &base64String);
647 
659 class QCA_EXPORT Initializer
660 {
661 public:
669  explicit Initializer(MemoryMode m = Practical, int prealloc = 64);
670  ~Initializer();
671 
672  Initializer(const Initializer &) = delete;
673  Initializer &operator=(const Initializer &) = delete;
674 };
675 
700 class QCA_EXPORT KeyLength
701 {
702 public:
711  KeyLength(int min, int max, int multiple)
712  : _min( min ), _max(max), _multiple( multiple )
713  { }
714 
718  int minimum() const { return _min; }
719 
723  int maximum() const { return _max; }
724 
731  int multiple() const { return _multiple; }
732 
733 private:
734  const int _min, _max, _multiple;
735 };
736 
752 class QCA_EXPORT Provider
753 {
754 public:
755  virtual ~Provider();
756 
757  class Context;
758 
768  virtual void init();
769 
779  virtual void deinit();
780 
789  virtual int version() const;
790 
802  virtual int qcaVersion() const = 0;
803 
821  virtual QString name() const = 0;
822 
838  virtual QStringList features() const = 0;
839 
850  virtual QString credit() const;
851 
878  virtual Context *createContext(const QString &type) = 0;
879 
904  virtual QVariantMap defaultConfig() const;
905 
915  virtual void configChanged(const QVariantMap &config);
916 };
917 
927 class QCA_EXPORT Provider::Context : public QObject
928 {
929  Q_OBJECT
930 public:
931  ~Context() override;
932 
936  Provider *provider() const;
937 
941  QString type() const;
942 
946  virtual Context *clone() const = 0;
947 
956  bool sameProvider(const Context *c) const;
957 
958 protected:
966  Context(Provider *parent, const QString &type);
967 
973  Context(const Context &from);
974 
975 private:
976  // disable assignment
977  Context & operator=(const Context &from);
978 
979  Provider *_provider;
980  QString _type;
981 };
982 
997 class QCA_EXPORT BasicContext : public Provider::Context
998 {
999  Q_OBJECT
1000 public:
1001  ~BasicContext() override;
1002 
1003 protected:
1011  BasicContext(Provider *parent, const QString &type);
1012 
1019 
1020 private:
1021  // disable assignment
1022  BasicContext & operator=(const BasicContext &from);
1023 };
1024 
1039 class QCA_EXPORT BufferedComputation
1040 {
1041 public:
1042  virtual ~BufferedComputation();
1043 
1047  virtual void clear() = 0;
1048 
1055  virtual void update(const MemoryRegion &a) = 0;
1056 
1060  virtual MemoryRegion final() = 0;
1061 
1075 };
1076 
1095 class QCA_EXPORT Filter
1096 {
1097 public:
1098  virtual ~Filter();
1099 
1103  virtual void clear() = 0;
1104 
1111  virtual MemoryRegion update(const MemoryRegion &a) = 0;
1112 
1117  virtual MemoryRegion final() = 0;
1118 
1124  virtual bool ok() const = 0;
1125 
1139 };
1140 
1151 class QCA_EXPORT Algorithm
1152 {
1153 public:
1159  Algorithm(const Algorithm &from);
1160 
1161  virtual ~Algorithm();
1162 
1169 
1173  QString type() const;
1174 
1181  Provider *provider() const;
1182 
1183  // Note: The next five functions are not public!
1184 
1191 
1197  const Provider::Context *context() const;
1198 
1207 
1216  void change(const QString &type, const QString &provider);
1217 
1224 
1225 protected:
1230 
1237  Algorithm(const QString &type, const QString &provider);
1238 
1239 private:
1240  class Private;
1241  QSharedDataPointer<Private> d;
1242 };
1243 
1251 class QCA_EXPORT SymmetricKey : public SecureArray
1252 {
1253 public:
1258 
1266  SymmetricKey(int size);
1267 
1274 
1280  SymmetricKey(const QByteArray &a);
1281 
1288 };
1289 
1297 class QCA_EXPORT InitializationVector : public SecureArray
1298 {
1299 public:
1304 
1311 
1318 
1324  InitializationVector(const QByteArray &a);
1325 };
1326 
1334 class QCA_EXPORT AuthTag : public SecureArray
1335 {
1336 public:
1341 
1347  AuthTag(int size);
1348 
1355 
1361  AuthTag(const QByteArray &a);
1362 };
1363 
1378 class QCA_EXPORT Event
1379 {
1380 public:
1386  enum Type
1387  {
1389  Token
1390  };
1391 
1404  enum Source
1405  {
1407  Data
1408  };
1409 
1419  {
1422  StylePIN
1423  };
1424 
1429 
1435  Event(const Event &from);
1436 
1441 
1447  Event & operator=(const Event &from);
1448 
1452  bool isNull() const;
1453 
1457  Type type() const;
1458 
1462  Source source() const;
1463 
1472 
1479 
1486 
1493  QString fileName() const;
1494 
1498  void *ptr() const;
1499 
1513  void setPasswordKeyStore(PasswordStyle pstyle, const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr);
1514 
1526  void setPasswordData(PasswordStyle pstyle, const QString &fileName, void *ptr);
1527 
1539  void setToken(const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr);
1540 
1541 private:
1542  class Private;
1543  QSharedDataPointer<Private> d;
1544 };
1545 
1563 class QCA_EXPORT EventHandler : public QObject
1564 {
1565  Q_OBJECT
1566 public:
1572  EventHandler(QObject *parent = nullptr);
1573  ~EventHandler() override;
1574 
1580  void start();
1581 
1592  void submitPassword(int id, const SecureArray &password);
1593 
1603  void tokenOkay(int id);
1604 
1614  void reject(int id);
1615 
1616 Q_SIGNALS:
1626  void eventReady(int id, const QCA::Event &context);
1627 
1628 private:
1629  Q_DISABLE_COPY(EventHandler)
1630 
1631  class Private;
1632  friend class Private;
1633  Private *d;
1634 };
1635 
1645 class QCA_EXPORT PasswordAsker : public QObject
1646 {
1647  Q_OBJECT
1648 public:
1654  PasswordAsker(QObject *parent = nullptr);
1655  ~PasswordAsker() override;
1656 
1668  void ask(Event::PasswordStyle pstyle, const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr);
1669 
1679  void ask(Event::PasswordStyle pstyle, const QString &fileName, void *ptr);
1680 
1684  void cancel();
1685 
1694 
1703  bool accepted() const;
1704 
1710 
1711 Q_SIGNALS:
1719 
1720 private:
1721  Q_DISABLE_COPY(PasswordAsker)
1722 
1723  class Private;
1724  friend class Private;
1725  Private *d;
1726 };
1727 
1737 class QCA_EXPORT TokenAsker : public QObject
1738 {
1739  Q_OBJECT
1740 public:
1746  TokenAsker(QObject *parent = nullptr);
1747  ~TokenAsker() override;
1748 
1758  void ask(const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr);
1759 
1763  void cancel();
1764 
1772 
1778  bool accepted() const;
1779 
1780 Q_SIGNALS:
1788 
1789 private:
1790  Q_DISABLE_COPY(TokenAsker)
1791 
1792  class Private;
1793  friend class Private;
1794  Private *d;
1795 };
1796 
1797 }
1798 
1799 #endif
QCA::SymmetricKey::SymmetricKey
SymmetricKey(const QByteArray &a)
Construct a key from a provided byte array.
QCA::Event::keyStoreEntry
KeyStoreEntry keyStoreEntry() const
The KeyStoreEntry associated with this event.
QCA::Event::Source
Source
Source of the event
Definition: qca_core.h:1405
QCA::unloadAllPlugins
QCA_EXPORT void unloadAllPlugins()
Unload the current plugins.
QCA::Logger
Definition: qca_support.h:955
QCA::Algorithm::Algorithm
Algorithm(const Algorithm &from)
Standard copy constructor.
QCA::Event::operator=
Event & operator=(const Event &from)
Assignment operator.
QCA::Event
Definition: qca_core.h:1379
QCA::Filter::update
virtual MemoryRegion update(const MemoryRegion &a)=0
Process more data, returning the corresponding filtered version of the data.
QObject
QCA::Direction
Direction
Direction settings for symmetric algorithms.
Definition: qca_core.h:141
QCA::haveSecureMemory
QCA_EXPORT bool haveSecureMemory()
Test if secure storage memory is available.
QCA::InitializationVector::InitializationVector
InitializationVector(const QByteArray &a)
Construct an initialisation vector from a provided byte array.
QCA::KeyStoreEntry
Definition: qca_keystore.h:141
QCA::Event::StylePassword
@ StylePassword
User should be prompted for a "Password".
Definition: qca_core.h:1420
QCA::Provider::provider
Provider * provider() const
The Provider associated with this Context.
QCA::KeyStoreInfo
Definition: qca_keystore.h:624
QCA::Practical
@ Practical
mlock and drop root if available, else mmap
Definition: qca_core.h:129
QCA::Provider
Definition: qca_core.h:753
QCA::systemStore
QCA_EXPORT CertificateCollection systemStore()
Get system-wide root Certificate Authority (CA) certificates.
QCA::findProvider
QCA_EXPORT Provider * findProvider(const QString &name)
Return the named provider, or 0 if not found.
QCA::scanForPlugins
QCA_EXPORT void scanForPlugins()
Scan for new plugins.
QCA::TokenAsker
Definition: qca_core.h:1738
QCA::MemoryMode
MemoryMode
Mode settings for memory allocation.
Definition: qca_core.h:128
QCA::Event::type
Type type() const
the Type of this event
QCA::InitializationVector::InitializationVector
InitializationVector(const SecureArray &a)
Construct an initialisation vector from a provided byte array.
QCA::init
QCA_EXPORT void init()
Initialise QCA.
QCA::Provider::Context
Context(const Context &from)
Copy constructor.
QCA::Algorithm::Algorithm
Algorithm()
Constructor for empty algorithm.
QCA::defaultFeatures
QCA_EXPORT QStringList defaultFeatures()
Generate a list of the built in features.
QCA::Provider::sameProvider
bool sameProvider(const Context *c) const
Test if two Contexts have the same Provider.
QCA::EventHandler
Definition: qca_core.h:1564
QCA::insertProvider
QCA_EXPORT bool insertProvider(Provider *p, int priority=0)
Add a provider to the current list of providers.
QCA::providerPriority
QCA_EXPORT int providerPriority(const QString &name)
Return the priority of a specified provider.
QCA::setProperty
QCA_EXPORT void setProperty(const QString &name, const QVariant &value)
Set a global property.
QCA::Provider::version
virtual int version() const
Version number of the plugin.
QCA::Event::KeyStore
@ KeyStore
KeyStore generated the event.
Definition: qca_core.h:1406
QCA::TokenAsker::cancel
void cancel()
Cancel the pending password / passphrase request.
QCA
QCA - the Qt Cryptographic Architecture.
Definition: qca_basic.h:41
QCA::Encode
@ Encode
Operate in the "forward" direction; for example, encrypting.
Definition: qca_core.h:142
QCA::EventHandler::tokenOkay
void tokenOkay(int id)
function to call to indicate that the token has been inserted by the user.
QCA::Algorithm
Definition: qca_core.h:1152
QCA::Decode
@ Decode
Operate in the "reverse" direction; for example, decrypting.
Definition: qca_core.h:143
qca_version.h
QCA::PasswordAsker::accepted
bool accepted() const
Determine whether the password / passphrase was accepted or not.
QCA::SymmetricKey
Definition: qca_core.h:1252
QCA::PasswordAsker::password
SecureArray password() const
The password / passphrase / PIN provided by the user in response to the asker request.
QList
qca_export.h
QCA::Event::isNull
bool isNull() const
test if this event has been setup correctly
QCA::Event::setPasswordKeyStore
void setPasswordKeyStore(PasswordStyle pstyle, const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr)
Set the values for this Event.
QCA::BasicContext::BasicContext
BasicContext(const BasicContext &from)
Copy constructor.
qcaPatchVersion
QCA_EXPORT int qcaPatchVersion()
The current version of QCA.
QCA::Event::StylePassphrase
@ StylePassphrase
User should be prompted for a "Passphrase".
Definition: qca_core.h:1421
QCA::AuthTag::AuthTag
AuthTag(const SecureArray &a)
Construct an authentication tag from a provided byte array.
QCA::arrayToBase64
QCA_EXPORT QString arrayToBase64(const QByteArray &array)
Convert a byte array to printable base64 representation.
QCA::Algorithm::provider
Provider * provider() const
The name of the provider.
Context
QCA::Event::setPasswordData
void setPasswordData(PasswordStyle pstyle, const QString &fileName, void *ptr)
Set the values for this Event.
QCA::appendPluginDiagnosticText
QCA_EXPORT void appendPluginDiagnosticText(const QString &text)
Add plugin diagnostic text.
QCA::PasswordAsker::PasswordAsker
PasswordAsker(QObject *parent=nullptr)
Construct a new asker.
QCA::CertificateCollection
Definition: qca_cert.h:1891
QCA::LockingKeepPrivileges
@ LockingKeepPrivileges
mlock, retaining root privileges
Definition: qca_core.h:131
QCA::Event::setToken
void setToken(const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr)
Set the values for this Event.
QCA::InitializationVector
Definition: qca_core.h:1298
QCA::saveProviderConfig
QCA_EXPORT void saveProviderConfig(const QString &name)
Save provider configuration to persistent storage.
qcaVersionStr
QCA_EXPORT const char * qcaVersionStr()
The current version of QCA.
QCA::hexToArray
QCA_EXPORT QByteArray hexToArray(const QString &hexString)
Convert a QString containing a hexadecimal representation of a byte array into a QByteArray.
qcaMajorVersion
QCA_EXPORT int qcaMajorVersion()
The current version of QCA.
QCA::globalRandomProvider
QCA_EXPORT QString globalRandomProvider()
Return the name of the global random number provider.
QCA::PasswordAsker::ask
void ask(Event::PasswordStyle pstyle, const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr)
queue a password / passphrase request associated with a key store
QCA::TokenAsker::ask
void ask(const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr)
queue a token request associated with a key store
QCA::supportedFeatures
QCA_EXPORT QStringList supportedFeatures()
Generate a list of all the supported features in plugins, and in built in capabilities.
QCA::PasswordAsker::cancel
void cancel()
Cancel the pending password / passphrase request.
QCA::Initializer::Initializer
Initializer(MemoryMode m=Practical, int prealloc=64)
Standard constructor.
QCA::Event::Password
@ Password
Asking for a password, PIN or passphrase.
Definition: qca_core.h:1388
QCA::SymmetricKey::SymmetricKey
SymmetricKey(int size)
Construct an key of specified size, with random contents.
QCA::SymmetricKey::SymmetricKey
SymmetricKey()
Construct an empty (zero length) key.
QCA::Event::source
Source source() const
the Source of this event
QCA::pluginPaths
QCA_EXPORT QStringList pluginPaths()
Retrieve plugin paths.
QCA::AuthTag::AuthTag
AuthTag(int size)
Construct an empty authentication tag of the specified size.
QCA::getProviderConfig
QCA_EXPORT QVariantMap getProviderConfig(const QString &name)
Retrieve provider configuration.
QCA::Algorithm::context
const Provider::Context * context() const
qca_support.h
QCA::base64ToArray
QCA_EXPORT QByteArray base64ToArray(const QString &base64String)
Convert a QString containing a base64 representation of a byte array into a QByteArray.
QCA::TokenAsker::accepted
bool accepted() const
Test if the token request was accepted or not.
QCA::appName
QCA_EXPORT QString appName()
Get the application name that will be used by SASL server mode.
QCA::SymmetricKey::isWeakDESKey
bool isWeakDESKey()
Test for weak DES keys.
QCA::Filter::clear
virtual void clear()=0
Reset the internal state.
QCA::KeyLength::minimum
int minimum() const
Obtain the minimum length for the key, in bytes.
Definition: qca_core.h:718
QCA::Provider::credit
virtual QString credit() const
Optional credit text for the provider.
QCA::Algorithm::Algorithm
Algorithm(const QString &type, const QString &provider)
Constructor of a particular algorithm.
QCA::Provider::Context
Context(Provider *parent, const QString &type)
Standard constructor.
QCA::TokenAsker::waitForResponse
void waitForResponse()
Block until the token request is completed.
QCA::logger
QCA_EXPORT Logger * logger()
Return a reference to the QCA Logger, which is used for diagnostics and error recording.
QCA::SecureArray
Definition: qca_tools.h:317
QCA::Provider::deinit
virtual void deinit()
Deinitialisation routine.
QCA::AuthTag::AuthTag
AuthTag(const QByteArray &a)
Construct an authentication tag from a provided byte array.
QCA::haveSystemStore
QCA_EXPORT bool haveSystemStore()
Test if QCA can access the root CA certificates.
QCA::KeyLength::multiple
int multiple() const
Return the number of bytes that the key must be a multiple of.
Definition: qca_core.h:731
QCA::EventHandler::reject
void reject(int id)
function to call to indicate that the user declined to provide a password, passphrase,...
QCA::Provider::configChanged
virtual void configChanged(const QVariantMap &config)
Method to set the configuration options.
QCA::Filter::process
MemoryRegion process(const MemoryRegion &a)
Perform an "all in one" update, returning the result.
QCA::PasswordAsker::responseReady
void responseReady()
Emitted when the asker process has been completed.
QCA::EventHandler::submitPassword
void submitPassword(int id, const SecureArray &password)
function to call to return the user provided password, passphrase or PIN.
QCA::PasswordAsker
Definition: qca_core.h:1646
QCA::getProperty
QCA_EXPORT QVariant getProperty(const QString &name)
Retrieve a global property.
QCA::Event::ptr
void * ptr() const
opaque data
QCA::Provider::features
virtual QStringList features() const =0
QCA::Event::fileName
QString fileName() const
Name or other identifier for the file or byte array associated with this event.
QCA::InitializationVector::InitializationVector
InitializationVector()
Construct an empty (zero length) initisation vector.
QCA::EventHandler::start
void start()
mandatory function to call after connecting the signal to a slot in your application specific passwor...
QCA::Provider::init
virtual void init()
Initialisation routine.
QCA::pluginDiagnosticText
QCA_EXPORT QString pluginDiagnosticText()
Retrieve plugin diagnostic text.
QCA::Provider::clone
virtual Context * clone() const =0
Create a duplicate of this Context.
QCA::Event::PasswordStyle
PasswordStyle
password variation
Definition: qca_core.h:1419
QCA::BufferedComputation::process
MemoryRegion process(const MemoryRegion &a)
Perform an "all in one" update, returning the result.
QCA::BufferedComputation::update
virtual void update(const MemoryRegion &a)=0
Update the internal state with a byte array.
QCA::TokenAsker::responseReady
void responseReady()
Emitted when the asker process has been completed.
QCA::BufferedComputation::clear
virtual void clear()=0
Reset the internal state.
QCA::setProviderPriority
QCA_EXPORT void setProviderPriority(const QString &name, int priority)
Change the priority of a specified provider.
QCA::Algorithm::takeContext
Provider::Context * takeContext()
QCA::TokenAsker::TokenAsker
TokenAsker(QObject *parent=nullptr)
Construct a new asker.
QCA::unloadProvider
QCA_EXPORT bool unloadProvider(const QString &name)
Unload specified provider.
QCA::Provider::defaultConfig
virtual QVariantMap defaultConfig() const
QCA::EventHandler::EventHandler
EventHandler(QObject *parent=nullptr)
Constructor.
QCA::defaultProvider
QCA_EXPORT Provider * defaultProvider()
Return the default provider.
QCA::Filter
Definition: qca_core.h:1096
QCA::arrayToHex
QCA_EXPORT QString arrayToHex(const QByteArray &array)
Convert a byte array to printable hexadecimal representation.
QCA::setProviderConfig
QCA_EXPORT void setProviderConfig(const QString &name, const QVariantMap &config)
Set provider configuration.
QCA::Initializer
Definition: qca_core.h:660
QCA::InitializationVector::InitializationVector
InitializationVector(int size)
Construct an initialisation vector of the specified size.
QCA::isSupported
QCA_EXPORT bool isSupported(const char *features, const QString &provider=QString())
Test if a capability (algorithm) is available.
QCA::Event::Event
Event(const Event &from)
Copy constructor.
QCA::Provider::name
virtual QString name() const =0
QCA::deinit
QCA_EXPORT void deinit()
Clean up routine.
QCA::KeyLength::KeyLength
KeyLength(int min, int max, int multiple)
Construct a KeyLength object.
Definition: qca_core.h:711
QCA::MemoryRegion
Definition: qca_tools.h:91
QCA::Event::Type
Type
Type of event
Definition: qca_core.h:1387
QCA::Algorithm::operator=
Algorithm & operator=(const Algorithm &from)
Assignment operator.
qcaVersion
QCA_EXPORT int qcaVersion()
The current version of QCA.
QCA::Algorithm::change
void change(Provider::Context *c)
QCA::Filter::ok
virtual bool ok() const =0
Test if an update() or final() call succeeded.
QCA::haveSecureRandom
QCA_EXPORT bool haveSecureRandom()
Test if secure random is available.
QCA::Event::keyStoreInfo
KeyStoreInfo keyStoreInfo() const
The info of the KeyStore associated with this event.
QCA::EventHandler::eventReady
void eventReady(int id, const QCA::Event &context)
signal emitted when an Event requires attention.
QCA::PasswordAsker::waitForResponse
void waitForResponse()
Block until the password / passphrase request is completed.
QCA::ProviderList
QList< Provider * > ProviderList
Convenience representation for the plugin providers.
Definition: qca_core.h:100
QCA::AuthTag::AuthTag
AuthTag()
Construct an empty authentication tag.
QCA::Algorithm::type
QString type() const
The name of the algorithm type.
QCA::PasswordAsker::ask
void ask(Event::PasswordStyle pstyle, const QString &fileName, void *ptr)
queue a password / passphrase request associated with a file
QCA::AuthTag
Definition: qca_core.h:1335
QCA::BasicContext
Definition: qca_core.h:998
QCA::Provider::createContext
virtual Context * createContext(const QString &type)=0
QCA::SymmetricKey::SymmetricKey
SymmetricKey(const SecureArray &a)
Construct a key from a provided byte array.
QCA::KeyLength
Definition: qca_core.h:701
QCA::Algorithm::change
void change(const QString &type, const QString &provider)
QCA::BufferedComputation
Definition: qca_core.h:1040
QCA::Event::passwordStyle
PasswordStyle passwordStyle() const
the style of password required.
QCA::Event::~Event
~Event()
Destructor.
QCA::Provider::type
QString type() const
The type of context, as passed to the constructor.
QCA::setGlobalRandomProvider
QCA_EXPORT void setGlobalRandomProvider(const QString &provider)
Change the global random number provider.
qca_tools.h
qcaMinorVersion
QCA_EXPORT int qcaMinorVersion()
The current version of QCA.
QCA::Algorithm::context
Provider::Context * context()
QCA::KeyLength::maximum
int maximum() const
Obtain the maximum length for the key, in bytes.
Definition: qca_core.h:723
QCA::Locking
@ Locking
mlock and drop root
Definition: qca_core.h:130
QCA::BasicContext::BasicContext
BasicContext(Provider *parent, const QString &type)
Standard constructor.
QCA::Event::Event
Event()
Constructor.
QCA::clearPluginDiagnosticText
QCA_EXPORT void clearPluginDiagnosticText()
Clear plugin diagnostic text.
QCA::providers
QCA_EXPORT ProviderList providers()
Return a list of the current providers.
QCA::setAppName
QCA_EXPORT void setAppName(const QString &name)
Set the application name that will be used by SASL server mode.
QCA::Provider::qcaVersion
virtual int qcaVersion() const =0
Target QCA version for the provider.