# qca_core.h File Reference

Header file for core QCA infrastructure. More...

`#include <QString>`
`#include <QStringList>`
`#include <QList>`
`#include <QSharedData>`
`#include <QSharedDataPointer>`
`#include "qca_export.h"`
`#include "qca_support.h"`
`#include "qca_tools.h"`

Include dependency graph for qca_core.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Namespaces

namespace | QCA

## Classes

class | QCA::Algorithm
| General superclass for an algorithm. More...
class | QCA::BasicContext
| Base class to use for primitive provider contexts. More...
class | QCA::BufferedComputation
| General superclass for buffered computation algorithms. More...
class | QCA::Event
| An asynchronous event. More...
class | QCA::EventHandler
| Interface class for password / passphrase / PIN and token handlers. More...
class | QCA::Filter
| General superclass for filtering transformation algorithms. More...
class | QCA::InitializationVector
| Container for initialisation vectors and nonces. More...
class | QCA::Initializer
| Convenience method for initialising and cleaning up QCA. More...
class | QCA::KeyLength
| Simple container for acceptable key lengths. More...
class | QCA::PasswordAsker
| User password / passphrase / PIN handler. More...
class | QCA::Provider
| Algorithm provider. More...
class | QCA::Provider
| Algorithm provider. More...
class | QCA::SymmetricKey
| Container for keys for symmetric encryption algorithms. More...
class | QCA::TokenAsker
| User token handler. More...

## Defines

#define | QCA_logBinaryMessage(blob, severity)
#define | QCA_logTextMessage(message, severity)
#define | QCA_VERSION 0x020002

## Typedefs

typedef QList< Provider * > | QCA::ProviderList

## Enumerations

enum | QCA::Direction { QCA::Encode, QCA::Decode }
enum | QCA::MemoryMode { QCA::Practical, QCA::Locking, QCA::LockingKeepPrivileges }

## Functions

QCA_EXPORT void | QCA::appendPluginDiagnosticText (const QString &text)
QCA_EXPORT QString | QCA::appName ()
QCA_EXPORT QString | QCA::arrayToHex (const QByteArray &array)
QCA_EXPORT void | QCA::clearPluginDiagnosticText ()
QCA_EXPORT QStringList | QCA::defaultFeatures ()
QCA_EXPORT Provider * | QCA::defaultProvider ()
QCA_EXPORT void | QCA::deinit ()
QCA_EXPORT Provider * | QCA::findProvider (const QString &name)
QCA_EXPORT QVariant | QCA::getProperty (const QString &name)
QCA_EXPORT QVariantMap | QCA::getProviderConfig (const QString &name)
QCA_EXPORT QString | QCA::globalRandomProvider ()
QCA_EXPORT bool | QCA::haveSecureMemory ()
QCA_EXPORT bool | QCA::haveSecureRandom ()
QCA_EXPORT bool | QCA::haveSystemStore ()
QCA_EXPORT QByteArray | QCA::hexToArray (const QString &hexString)
QCA_EXPORT void | QCA::init (MemoryMode m, int prealloc)
QCA_EXPORT void | QCA::init ()
QCA_EXPORT bool | QCA::insertProvider (Provider *p, int priority=0)
QCA_EXPORT bool | QCA::isSupported (const QStringList &features, const QString &provider=QString())
QCA_EXPORT bool | QCA::isSupported (const char *features, const QString &provider=QString())
QCA_EXPORT Logger * | QCA::logger ()
QCA_EXPORT QString | QCA::pluginDiagnosticText ()
QCA_EXPORT int | QCA::providerPriority (const QString &name)
QCA_EXPORT ProviderList | QCA::providers ()
QCA_EXPORT int | qcaVersion ()
QCA_EXPORT void | QCA::saveProviderConfig (const QString &name)
QCA_EXPORT void | QCA::scanForPlugins ()
QCA_EXPORT void | QCA::setAppName (const QString &name)
QCA_EXPORT void | QCA::setGlobalRandomProvider (const QString &provider)
QCA_EXPORT void | QCA::setProperty (const QString &name, const QVariant &value)
QCA_EXPORT void | QCA::setProviderConfig (const QString &name, const QVariantMap &config)
QCA_EXPORT void | QCA::setProviderPriority (const QString &name, int priority)
QCA_EXPORT QStringList | QCA::supportedFeatures ()
QCA_EXPORT CertificateCollection | QCA::systemStore ()
QCA_EXPORT void | QCA::unloadAllPlugins ()

## Detailed Description

Header file for core QCA infrastructure.

Note:
  You should not use this header directly from an application. You should just use `#include <QtCrypto>` instead.

## Define Documentation

#define QCA_VERSION 0x020002

The current version of QCA.

This provides you a compile time check of the QCA version.

See also:
  qcaVersion for a runtime check.

Examples:
  aes-cmac.cpp.

#define QCA_logTextMessage | ( | message,
|  | severity |  | ) |

Value:

    do { \
                    register QCA::Logger::Severity s = severity; \
                    register QCA::Logger *l = QCA::logger (); \
                    if (s <= l->level ()) { \
                            l->logTextMessage (message, s); \
                    } \
            } while (false)

Log a text message.

This is an efficient function to avoid overhead of argument executions when log level blocks the message.

Parameters:

  | message | the text to log
  | severity | the type of information to log

Note:
  This is a macro, so arguments may or may not be evaluated.

#define QCA_logBinaryMessage | ( | blob,
|  | severity |  | ) |

Value:

    do { \
                    register QCA::Logger::Severity s = severity; \
                    register QCA::Logger *l = QCA::logger (); \
                    if (s <= l->level ()) { \
                            l->logBinaryMessage (blob, s); \
                    } \
            } while (false)

Log a binary message.

This is an efficient function to avoid overhead of argument executions when log level blocks the message.

Parameters:

  | blob | the blob to log
  | severity | the type of information to log

Note:
  This is a macro, so arguments may or may not be evaluated.

## Function Documentation

QCA_EXPORT int qcaVersion | ( |  | ) |

The current version of QCA.

This is equivalent to QCA_VERSION, except it provides a runtime check of the version of QCA that is being used.

Examples:
  aes-cmac.cpp.