QCA::MessageAuthenticationCode Class Reference

General class for message authentication code (MAC) algorithms. More...

#include <QtCrypto>

Inheritance diagram for QCA::MessageAuthenticationCode:

QCA::Algorithm QCA::BufferedComputation Collaboration diagram for QCA::MessageAuthenticationCode:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MessageAuthenticationCode (const QString &type, const SymmetricKey &key, const QString &provider=QString())
 MessageAuthenticationCode (const MessageAuthenticationCode &from)
MessageAuthenticationCodeoperator= (const MessageAuthenticationCode &from)
QString type () const
KeyLength keyLength () const
bool validKeyLength (int n) const
virtual void clear ()
virtual void update (const MemoryRegion &array)
virtual MemoryRegion final ()
void setup (const SymmetricKey &key)

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:

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.


Member Function Documentation

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

Assignment operator.

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

QString QCA::MessageAuthenticationCode::type  )  const
 

Return the MAC type.

Reimplemented from QCA::Algorithm.

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:
Generated on Fri Jul 6 13:23:21 2007 for Qt Cryptographic Architecture by  doxygen 1.4.6