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
General superclass for an algorithm.
Definition: qca_core.h:1152
QString type() const
The name of the algorithm type.
Algorithm()
Constructor for empty algorithm.
Provider * provider() const
The name of the provider.
Algorithm(const QString &type, const QString &provider)
Constructor of a particular algorithm.
const Provider::Context * context() const
void change(Provider::Context *c)
void change(const QString &type, const QString &provider)
Provider::Context * takeContext()
Algorithm(const Algorithm &from)
Standard copy constructor.
Provider::Context * context()
Algorithm & operator=(const Algorithm &from)
Assignment operator.
Container for authentication tag.
Definition: qca_core.h:1335
AuthTag(const QByteArray &a)
Construct an authentication tag from a provided byte array.
AuthTag(const SecureArray &a)
Construct an authentication tag from a provided byte array.
AuthTag()
Construct an empty authentication tag.
AuthTag(int size)
Construct an empty authentication tag of the specified size.
Base class to use for primitive provider contexts.
Definition: qca_core.h:998
BasicContext(Provider *parent, const QString &type)
Standard constructor.
BasicContext(const BasicContext &from)
Copy constructor.
General superclass for buffered computation algorithms.
Definition: qca_core.h:1040
virtual void clear()=0
Reset the internal state.
MemoryRegion process(const MemoryRegion &a)
Perform an "all in one" update, returning the result.
virtual void update(const MemoryRegion &a)=0
Update the internal state with a byte array.
Bundle of Certificates and CRLs.
Definition: qca_cert.h:1891
Interface class for password / passphrase / PIN and token handlers.
Definition: qca_core.h:1564
EventHandler(QObject *parent=nullptr)
Constructor.
void submitPassword(int id, const SecureArray &password)
function to call to return the user provided password, passphrase or PIN.
void eventReady(int id, const QCA::Event &context)
signal emitted when an Event requires attention.
void reject(int id)
function to call to indicate that the user declined to provide a password, passphrase,...
void tokenOkay(int id)
function to call to indicate that the token has been inserted by the user.
void start()
mandatory function to call after connecting the signal to a slot in your application specific passwor...
An asynchronous event.
Definition: qca_core.h:1379
Source
Source of the event
Definition: qca_core.h:1405
@ KeyStore
KeyStore generated the event.
Definition: qca_core.h:1406
~Event()
Destructor.
Event & operator=(const Event &from)
Assignment operator.
Event(const Event &from)
Copy constructor.
QString fileName() const
Name or other identifier for the file or byte array associated with this event.
PasswordStyle passwordStyle() const
the style of password required.
Type type() const
the Type of this event
void setPasswordKeyStore(PasswordStyle pstyle, const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr)
Set the values for this Event.
void setToken(const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr)
Set the values for this Event.
KeyStoreEntry keyStoreEntry() const
The KeyStoreEntry associated with this event.
KeyStoreInfo keyStoreInfo() const
The info of the KeyStore associated with this event.
bool isNull() const
test if this event has been setup correctly
Source source() const
the Source of this event
Type
Type of event
Definition: qca_core.h:1387
@ Password
Asking for a password, PIN or passphrase.
Definition: qca_core.h:1388
Event()
Constructor.
PasswordStyle
password variation
Definition: qca_core.h:1419
@ StylePassphrase
User should be prompted for a "Passphrase".
Definition: qca_core.h:1421
@ StylePassword
User should be prompted for a "Password".
Definition: qca_core.h:1420
void * ptr() const
opaque data
void setPasswordData(PasswordStyle pstyle, const QString &fileName, void *ptr)
Set the values for this Event.
General superclass for filtering transformation algorithms.
Definition: qca_core.h:1096
MemoryRegion process(const MemoryRegion &a)
Perform an "all in one" update, returning the result.
virtual bool ok() const =0
Test if an update() or final() call succeeded.
virtual MemoryRegion update(const MemoryRegion &a)=0
Process more data, returning the corresponding filtered version of the data.
virtual void clear()=0
Reset the internal state.
Container for initialisation vectors and nonces.
Definition: qca_core.h:1298
InitializationVector(int size)
Construct an initialisation vector of the specified size.
InitializationVector(const QByteArray &a)
Construct an initialisation vector from a provided byte array.
InitializationVector(const SecureArray &a)
Construct an initialisation vector from a provided byte array.
InitializationVector()
Construct an empty (zero length) initisation vector.
Convenience method for initialising and cleaning up QCA.
Definition: qca_core.h:660
Initializer(MemoryMode m=Practical, int prealloc=64)
Standard constructor.
Simple container for acceptable key lengths.
Definition: qca_core.h:701
KeyLength(int min, int max, int multiple)
Construct a KeyLength object.
Definition: qca_core.h:711
int minimum() const
Obtain the minimum length for the key, in bytes.
Definition: qca_core.h:718
int multiple() const
Return the number of bytes that the key must be a multiple of.
Definition: qca_core.h:731
int maximum() const
Obtain the maximum length for the key, in bytes.
Definition: qca_core.h:723
Single entry in a KeyStore.
Definition: qca_keystore.h:141
Key store information, outside of a KeyStore object.
Definition: qca_keystore.h:624
A simple logging system.
Definition: qca_support.h:955
Array of bytes that may be optionally secured.
Definition: qca_tools.h:91
User password / passphrase / PIN handler.
Definition: qca_core.h:1646
void ask(Event::PasswordStyle pstyle, const QString &fileName, void *ptr)
queue a password / passphrase request associated with a file
void responseReady()
Emitted when the asker process has been completed.
void waitForResponse()
Block until the password / passphrase request is completed.
PasswordAsker(QObject *parent=nullptr)
Construct a new asker.
void cancel()
Cancel the pending password / passphrase request.
bool accepted() const
Determine whether the password / passphrase was accepted or not.
void ask(Event::PasswordStyle pstyle, const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr)
queue a password / passphrase request associated with a key store
SecureArray password() const
The password / passphrase / PIN provided by the user in response to the asker request.
Internal context class used for the plugin.
Algorithm provider.
Definition: qca_core.h:753
virtual int qcaVersion() const =0
Target QCA version for the provider.
virtual Context * createContext(const QString &type)=0
bool sameProvider(const Context *c) const
Test if two Contexts have the same Provider.
virtual void init()
Initialisation routine.
virtual Context * clone() const =0
Create a duplicate of this Context.
virtual QStringList features() const =0
Context(Provider *parent, const QString &type)
Standard constructor.
virtual QString credit() const
Optional credit text for the provider.
QString type() const
The type of context, as passed to the constructor.
Context(const Context &from)
Copy constructor.
virtual QVariantMap defaultConfig() const
virtual void deinit()
Deinitialisation routine.
virtual void configChanged(const QVariantMap &config)
Method to set the configuration options.
virtual QString name() const =0
Provider * provider() const
The Provider associated with this Context.
virtual int version() const
Version number of the plugin.
Secure array of bytes.
Definition: qca_tools.h:317
Container for keys for symmetric encryption algorithms.
Definition: qca_core.h:1252
SymmetricKey(const SecureArray &a)
Construct a key from a provided byte array.
SymmetricKey(int size)
Construct an key of specified size, with random contents.
SymmetricKey(const QByteArray &a)
Construct a key from a provided byte array.
SymmetricKey()
Construct an empty (zero length) key.
bool isWeakDESKey()
Test for weak DES keys.
User token handler.
Definition: qca_core.h:1738
void waitForResponse()
Block until the token request is completed.
void cancel()
Cancel the pending password / passphrase request.
void responseReady()
Emitted when the asker process has been completed.
bool accepted() const
Test if the token request was accepted or not.
TokenAsker(QObject *parent=nullptr)
Construct a new asker.
void ask(const KeyStoreInfo &keyStoreInfo, const KeyStoreEntry &keyStoreEntry, void *ptr)
queue a token request associated with a key store
QCA - the Qt Cryptographic Architecture.
Definition: qca_basic.h:41
QCA_EXPORT Provider * defaultProvider()
Return the default provider.
QCA_EXPORT int providerPriority(const QString &name)
Return the priority of a specified provider.
QCA_EXPORT void setGlobalRandomProvider(const QString &provider)
Change the global random number provider.
QCA_EXPORT void setProviderPriority(const QString &name, int priority)
Change the priority of a specified provider.
QCA_EXPORT void init()
Initialise QCA.
QCA_EXPORT void scanForPlugins()
Scan for new plugins.
QCA_EXPORT void unloadAllPlugins()
Unload the current plugins.
QCA_EXPORT bool haveSecureMemory()
Test if secure storage memory is available.
QCA_EXPORT QString appName()
Get the application name that will be used by SASL server mode.
QCA_EXPORT bool haveSecureRandom()
Test if secure random is available.
QCA_EXPORT QString arrayToHex(const QByteArray &array)
Convert a byte array to printable hexadecimal representation.
QCA_EXPORT bool insertProvider(Provider *p, int priority=0)
Add a provider to the current list of providers.
QCA_EXPORT bool haveSystemStore()
Test if QCA can access the root CA certificates.
QCA_EXPORT bool isSupported(const char *features, const QString &provider=QString())
Test if a capability (algorithm) is available.
MemoryMode
Mode settings for memory allocation.
Definition: qca_core.h:128
@ Locking
mlock and drop root
Definition: qca_core.h:130
@ Practical
mlock and drop root if available, else mmap
Definition: qca_core.h:129
@ LockingKeepPrivileges
mlock, retaining root privileges
Definition: qca_core.h:131
QCA_EXPORT QByteArray hexToArray(const QString &hexString)
Convert a QString containing a hexadecimal representation of a byte array into a QByteArray.
Direction
Direction settings for symmetric algorithms.
Definition: qca_core.h:141
@ Encode
Operate in the "forward" direction; for example, encrypting.
Definition: qca_core.h:142
@ Decode
Operate in the "reverse" direction; for example, decrypting.
Definition: qca_core.h:143
QList< Provider * > ProviderList
Convenience representation for the plugin providers.
Definition: qca_core.h:100
QCA_EXPORT QStringList supportedFeatures()
Generate a list of all the supported features in plugins, and in built in capabilities.
QCA_EXPORT QString pluginDiagnosticText()
Retrieve plugin diagnostic text.
QCA_EXPORT QVariant getProperty(const QString &name)
Retrieve a global property.
QCA_EXPORT QVariantMap getProviderConfig(const QString &name)
Retrieve provider configuration.
QCA_EXPORT Provider * findProvider(const QString &name)
Return the named provider, or 0 if not found.
QCA_EXPORT void deinit()
Clean up routine.
QCA_EXPORT void clearPluginDiagnosticText()
Clear plugin diagnostic text.
QCA_EXPORT void appendPluginDiagnosticText(const QString &text)
Add plugin diagnostic text.
QCA_EXPORT ProviderList providers()
Return a list of the current providers.
QCA_EXPORT void setProperty(const QString &name, const QVariant &value)
Set a global property.
QCA_EXPORT QStringList defaultFeatures()
Generate a list of the built in features.
QCA_EXPORT bool unloadProvider(const QString &name)
Unload specified provider.
QCA_EXPORT void saveProviderConfig(const QString &name)
Save provider configuration to persistent storage.
QCA_EXPORT QStringList pluginPaths()
Retrieve plugin paths.
QCA_EXPORT QByteArray base64ToArray(const QString &base64String)
Convert a QString containing a base64 representation of a byte array into a QByteArray.
QCA_EXPORT void setProviderConfig(const QString &name, const QVariantMap &config)
Set provider configuration.
QCA_EXPORT QString globalRandomProvider()
Return the name of the global random number provider.
QCA_EXPORT QString arrayToBase64(const QByteArray &array)
Convert a byte array to printable base64 representation.
QCA_EXPORT Logger * logger()
Return a reference to the QCA Logger, which is used for diagnostics and error recording.
QCA_EXPORT void setAppName(const QString &name)
Set the application name that will be used by SASL server mode.
QCA_EXPORT CertificateCollection systemStore()
Get system-wide root Certificate Authority (CA) certificates.
QCA_EXPORT int qcaVersion()
The current version of QCA.
QCA_EXPORT int qcaMinorVersion()
The current version of QCA.
QCA_EXPORT const char * qcaVersionStr()
The current version of QCA.
QCA_EXPORT int qcaPatchVersion()
The current version of QCA.
QCA_EXPORT int qcaMajorVersion()
The current version of QCA.
Preprocessor magic to allow export of library symbols.
Header file for "support" classes used in QCA.
Header file for "tool" classes used in QCA.
Header file with QCA version.