Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



Location: hash.h
Link against: hash.lib

Class CMessageDigest

class CMessageDigest : public CBase;

Description

Base class for message digests.

Derivation

Members

Defined in CMessageDigest:
BlockSize(), CMessageDigest(), CMessageDigest(), CopyL(), EMD2, EMD5, ESHA1, Final(), Final(), HMAC, Hash(), HashSize(), ReplicateL(), Reset(), RestoreState(), StoreState(), THashId, Update(), ~CMessageDigest()

Inherited from CBase:
Delete(), Extension_(), operator new()


Construction and destruction


~CMessageDigest()

IMPORT_C ~CMessageDigest(void);

Description

Destructor.


CMessageDigest()

protected: IMPORT_C CMessageDigest(void);

Description

Constructor


CMessageDigest()

protected: IMPORT_C CMessageDigest(const CMessageDigest &aMD);

Description

Copy constructor

Parameters

const CMessageDigest &aMD

A CMessageDigest object

[Top]


Member functions


ReplicateL()

virtual IMPORT_C CMessageDigest *ReplicateL(void)=0;

Description

Creates a brand new reset CMessageDigest object containing no state information from the current object.

To make a copy of a message digest with its internal state intact, see CopyL().

Return value

CMessageDigest *

A pointer to the new reset CMessageDigest object


Hash()

virtual IMPORT_C TPtrC8 Hash(const TDesC8 &aMessage)=0;

Description

Adds aMessage to the internal representation of data to be hashed, then returns a TPtrC8 of the finalised hash of all the previously appended messages.

Parameters

const TDesC8 &aMessage

Data to be included in the hash.

Return value

TPtrC8

A descriptor pointer to the buffer containing the resulting hash.


CopyL()

virtual IMPORT_C CMessageDigest *CopyL(void)=0;

Description

Creates a new CMessageDigest object with the exact same state as the current object.

This function copies all internal state of the message digest. To create a new CMessageDigest object without the state of the current object, see ReplicateL().

Return value

CMessageDigest *

A pointer to the new CMessageDigest object


BlockSize()

virtual IMPORT_C TInt BlockSize(void)=0;

Description

Gets the internal block size of the message digest.

Return value

TInt

Internal block size of message digest in bytes.


HashSize()

virtual IMPORT_C TInt HashSize(void)=0;

Description

Gets the size of the message digest output.

Return value

TInt

Output size of the message digest in bytes.


Reset()

virtual IMPORT_C void Reset(void)=0;

Description

Resets the internal state of the message digest.

A reset hash object loses all internal state representing the hashed data. A reset message digest is suitable to begin a new, distinct hash of different data. Any previously returned TPtrC8 from a call to Final() remains valid until any subsequent call to Update() or Final().


Update()

virtual IMPORT_C void Update(const TDesC8 &aMessage)=0;

Description

Adds data to the internal representation of messages to be hashed.

Parameters

const TDesC8 &aMessage

Data to be included in the hash.


Final()

virtual IMPORT_C TPtrC8 Final(const TDesC8 &aMessage)=0;

Description

Adds aMessage to the internal representation of data to be hashed, returns a TPtrC8 of the finalised hash of all the previously appended messages, and calls Reset().

Parameters

const TDesC8 &aMessage

Data to be included in the hash

Return value

TPtrC8

A descriptor pointer to the buffer containing the resulting hash.


Final()

virtual IMPORT_C TPtrC8 Final(void)=0;

Description

Gets a TPtrC8 of the finalised hash of all the previously appended messages and then calls Reset().

Return value

TPtrC8

A descriptor pointer to the buffer containing the resulting hash.


RestoreState()

virtual void RestoreState()=0;

Description

Restores the internal state of the message digest to a previously stored state.

See also:


StoreState()

virtual void StoreState()=0;

Description

Stores the internal state of the message digest.

[Top]


Member enumerations


Enum THashId

THashId

Description

Enumeration to identify hash functions (aka message-digest algorithms).

EMD2

Message Digest algorithm developed by Rivest for digital signature applications (and optimized for 8-bit machines).

Takes a message of arbitrary length and produces a 128-bit message digest.

See RFC 1319

EMD5

Message Digest algorithm developed by Rivest for digital signature applications (and optimized for 32-bit machines).

Takes a message of arbitrary length and produces a 128-bit message digest.

See RFC 1321

ESHA1

Secure Hash Algorithm (version 1) is a message digest algorithm developed by NIST, along with the NSA, for use with the Digital Signature Standard (DSS).

It takes a message of less than 2^64 bits in length and produces a 160-bit message digest.

See FIPS 180-1 and RFC 3174

HMAC

HMAC - Hash function based Message Authentication Code is a mechanism for message authentication using cryptographic hash functions. (A checksum.)

It can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key to produce a checksum that is appended to the message. The cryptographic strength of HMAC depends on the properties of the underlying hash function.

See RFC 2104