QCA::MessageAuthenticationCode

Search for usage in LXR

#include <QtCrypto>

Inheritance diagram for QCA::MessageAuthenticationCode:

Public Member Functions

 MessageAuthenticationCode (const MessageAuthenticationCode &from)
 
 MessageAuthenticationCode (const QString &type, const SymmetricKey &key, const QString &provider=QString())
 
void clear () override
 
MemoryRegion final () override
 
KeyLength keyLength () const
 
MessageAuthenticationCodeoperator= (const MessageAuthenticationCode &from)
 
void setup (const SymmetricKey &key)
 
QString type () const
 
void update (const MemoryRegion &array) override
 
bool validKeyLength (int n) const
 
- Public Member Functions inherited from QCA::Algorithm
 Algorithm (const Algorithm &from)
 
void change (const QString &type, const QString &provider)
 
void change (Provider::Context *c)
 
Provider::Contextcontext ()
 
const Provider::Contextcontext () const
 
Algorithmoperator= (const Algorithm &from)
 
Providerprovider () const
 
Provider::ContexttakeContext ()
 
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.

Definition at line 827 of file qca_basic.h.

Constructor & Destructor Documentation

◆ MessageAuthenticationCode() [1/2]

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

Standard constructor.

Parameters
typethe name of the MAC (and algorithm, if applicable) to use
keythe shared key
providerthe provider to use, if a particular provider is required
Examples
aes-cmac.cpp.

◆ MessageAuthenticationCode() [2/2]

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

Standard copy constructor.

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

Parameters
fromthe MessageAuthenticationCode to copy state from

Member Function Documentation

◆ clear()

void QCA::MessageAuthenticationCode::clear ( )
overridevirtual

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.

Examples
aes-cmac.cpp.

◆ final()

MemoryRegion QCA::MessageAuthenticationCode::final ( )
overridevirtual

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.

◆ keyLength()

KeyLength QCA::MessageAuthenticationCode::keyLength ( ) const

Return acceptable key lengths.

◆ operator=()

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

Assignment operator.

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

Parameters
fromthe MessageAuthenticationCode to assign from.

◆ setup()

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

Initialise the MAC algorithm.

Parameters
keythe key to use for the algorithm
Examples
aes-cmac.cpp, and mactest.cpp.

◆ supportedTypes()

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

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

Parameters
providerthe 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.

◆ type()

QString QCA::MessageAuthenticationCode::type ( ) const

Return the MAC type.

◆ update()

void QCA::MessageAuthenticationCode::update ( const MemoryRegion & array)
overridevirtual

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
arraythe message contents

Implements QCA::BufferedComputation.

Examples
mactest.cpp.

◆ validKeyLength()

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

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

Parameters
nthe key length in bytes
Returns
true if the key would be valid for the current algorithm

The documentation for this class was generated from the following file:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Mon Nov 18 2024 12:15:57 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.