Qt Cryptographic Architecture: QCA::MessageAuthenticationCode Class Reference

Qt Cryptographic Architecture

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Examples

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | List of all members
QCA::MessageAuthenticationCode Class Reference
QCA user API

`#include <QtCrypto>`

Collaboration diagram for QCA::MessageAuthenticationCode:
[legend]

## Public Member Functions
virtual void | clear ()
virtual MemoryRegion | final ()
KeyLength | keyLength () const
| MessageAuthenticationCode (const QString &type, const SymmetricKey &key, const QString &provider=QString())
| MessageAuthenticationCode (const MessageAuthenticationCode &from)
MessageAuthenticationCode & | operator= (const MessageAuthenticationCode &from)
void | setup (const SymmetricKey &key)
QString | type () const
virtual void | update (const MemoryRegion &array)
bool | validKeyLength (int n) const
Public Member Functions inherited from QCA::Algorithm
| Algorithm (const Algorithm &from)
void | change (Provider::Context *c)
void | change (const QString &type, const QString &provider)
Provider::Context * | context ()
const Provider::Context * | context () const
Algorithm & | operator= (const Algorithm &from)
Provider * | provider () const
Provider::Context * | takeContext ()
QString | type () const
Public Member Functions inherited from QCA::BufferedComputation
MemoryRegion | process (const MemoryRegion &a)

## Static Public Member Functions
static QStringList | supportedTypes (const QString &provider=QString())

## Additional Inherited Members
Protected Member Functions inherited from QCA::Algorithm
| Algorithm ()
| Algorithm (const QString &type, const QString &provider)

## Detailed Description

General class for message authentication code (MAC) algorithms.

MessageAuthenticationCode is a class for accessing the various message authentication code algorithms within QCA. HMAC using SHA1 ("hmac(sha1)") or HMAC using SHA256 ("hmac(sha256)") is recommended for new applications.

Note that if your application is potentially susceptable to "replay attacks" where the message is sent more than once, you should include a counter in the message that is covered by the MAC, and check that the counter is always incremented every time you receive a message and MAC.

For more information on HMAC, see H. Krawczyk et al. RFC2104 "HMAC: Keyed-Hashing for Message Authentication"

Examples:
  aes-cmac.cpp, and mactest.cpp.

## Constructor & Destructor Documentation

QCA::MessageAuthenticationCode::MessageAuthenticationCode | ( | const QString & | type,
|  | const SymmetricKey & | key,
|  | const QString & | provider = `QString()`
| ) |  |

Standard constructor.

Parameters

  type | the name of the MAC (and algorithm, if applicable) to use
  key | the shared key
  provider | the provider to use, if a particular provider is required

QCA::MessageAuthenticationCode::MessageAuthenticationCode | ( | const MessageAuthenticationCode & | from | ) |

Standard copy constructor.

Copies the state (including key) from one MessageAuthenticationCode to another

Parameters

  from | the MessageAuthenticationCode to copy state from

## Member Function Documentation

MessageAuthenticationCode& QCA::MessageAuthenticationCode::operator= | ( | const MessageAuthenticationCode & | from | ) |

Assignment operator.

Copies the state (including key) from one MessageAuthenticationCode to another

Parameters

  from | the MessageAuthenticationCode to assign from.

static QStringList QCA::MessageAuthenticationCode::supportedTypes | ( | const QString & | provider = `QString()` | ) |
| static

Returns a list of all of the message authentication code types available.

Parameters

  provider | the name of the provider to get a list from, if one provider is required. If not specified, available message authentication codes types from all providers will be returned.

QString QCA::MessageAuthenticationCode::type | ( |  | ) | const

Return the MAC type.

KeyLength QCA::MessageAuthenticationCode::keyLength | ( |  | ) | const

Return acceptable key lengths.

bool QCA::MessageAuthenticationCode::validKeyLength | ( | int | n | ) | const

Test if a key length is valid for the MAC algorithm.

Parameters

  n | the key length in bytes

Returns
  true if the key would be valid for the current algorithm

virtual void QCA::MessageAuthenticationCode::clear | ( |  | ) |
| virtual

Reset a MessageAuthenticationCode, dumping all previous parts of the message.

This method clears (or resets) the algorithm, effectively undoing any previous update() calls. You should use this call if you are re-using a MessageAuthenticationCode sub-class object to calculate additional MACs. Note that if the key doesn't need to be changed, you don't need to call setup() again, since the key can just be reused.

Implements QCA::BufferedComputation.

virtual void QCA::MessageAuthenticationCode::update | ( | const MemoryRegion & | array | ) |
| virtual

Update the MAC, adding more of the message contents to the digest.

The whole message needs to be added using this method before you call final().

Parameters

  array | the message contents

Implements QCA::BufferedComputation.

Examples:
  mactest.cpp.

virtual MemoryRegion QCA::MessageAuthenticationCode::final | ( |  | ) |
| virtual

Finalises input and returns the MAC result.

After calling update() with the required data, the hash results are finalised and produced.

Note that it is not possible to add further data (with update()) after calling final(). If you want to reuse the MessageAuthenticationCode object, you should call clear() and start to update() again.

Implements QCA::BufferedComputation.

Examples:
  mactest.cpp.

void QCA::MessageAuthenticationCode::setup | ( | const SymmetricKey & | key | ) |

Initialise the MAC algorithm.

Parameters

  key | the key to use for the algorithm

Examples:
  mactest.cpp.

The documentation for this class was generated from the following file:

- qca_basic.h