Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

SHA0Hash Class Reference

SHA0 as originally specified by NIST/NSA. More...

#include <sha0hash.h>

Inheritance diagram for SHA0Hash:

Inheritance graph
[legend]
Collaboration diagram for SHA0Hash:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SHA0Hash ()
 Constructor for SHA0 hash.

 ~SHA0Hash ()
 Destructor cleans up the hash state.

const Parameters * GetPar () const
 Get parameters of this hash algo; see base clas.

uint64 FedBytes () const
 Returns number of fed bytes; see base class.

void reset ()
 Reset has algo; see base class.

void feed (const char *buf, size_t len)
 Feed the hash algo with data; see base class.

void final ()
 Finish hash computation; see base class.

void GetHash (char *buf) const
 Get current has value; see base class.


Static Public Attributes

const Parameters par
 Parameters of the hash algo.


Private Member Functions

void AtomicHash (const unsigned char *msg, uint32 *w)
 Internally used "atomic" hash; msg has a size of 64 bytes.

 SHA0Hash (const SHA0Hash &)
 Do not use these:.

void operator= (const SHA0Hash &)

Private Attributes

uint32 state [5]
 hash status; hash value

unsigned char tmpbuf [64]
 may be over from last call to Feed()

int tmp_size
 number of bytes in tmpbuf


Detailed Description

SHA0 as originally specified by NIST/NSA.

Author:
Wolfgang Wieser ] wwieser (a) gmx <*> de [
Note:
I strongly recommend to use sha1hash instead of sha1hash. SHA1Hash has an additional rotation in the expand function added lateron by the NSA to make it more resistant against crypto analysis.
NOTE: This class is NOT "C++-safe" and you should generally be careful with cryptographic data, so it is best to manage (de)allocation of these objects in a higher order.

Definition at line 46 of file sha0hash.h.


Constructor & Destructor Documentation

SHA0Hash::SHA0Hash const SHA0Hash  )  [private]
 

Do not use these:.

SHA0Hash::SHA0Hash  )  [inline]
 

Constructor for SHA0 hash.

Definition at line 67 of file sha0hash.h.

References reset().

SHA0Hash::~SHA0Hash  )  [inline]
 

Destructor cleans up the hash state.

Definition at line 70 of file sha0hash.h.

References reset().


Member Function Documentation

void SHA0Hash::AtomicHash const unsigned char *  msg,
uint32 w
[private]
 

Internally used "atomic" hash; msg has a size of 64 bytes.

Definition at line 62 of file sha0hash.cc.

References EXPAND, rotate(), sha_const0, sha_const1, sha_const2, sha_const3, sha_func0(), sha_func1(), sha_func2(), sha_func3(), state, and uint32.

Referenced by feed(), and final().

uint64 SHA0Hash::FedBytes  )  const [inline, virtual]
 

Returns number of fed bytes; see base class.

Reimplemented from SecureHashBase.

Definition at line 78 of file sha0hash.h.

References uint64.

void SHA0Hash::feed const char *  buf,
size_t  len
[virtual]
 

Feed the hash algo with data; see base class.

Reimplemented from SecureHashBase.

Definition at line 163 of file sha0hash.cc.

References AtomicHash(), tmp_size, tmpbuf, uint32, and uint64.

void SHA0Hash::final  )  [virtual]
 

Finish hash computation; see base class.

Reimplemented from SecureHashBase.

Definition at line 214 of file sha0hash.cc.

References AtomicHash(), tmp_size, tmpbuf, uint32, and uint64.

void SHA0Hash::GetHash char *  buf  )  const [virtual]
 

Get current has value; see base class.

Reimplemented from SecureHashBase.

Definition at line 134 of file sha0hash.cc.

References state, and uint32.

const Parameters* SHA0Hash::GetPar  )  const [inline, virtual]
 

Get parameters of this hash algo; see base clas.

Reimplemented from SecureHashBase.

Definition at line 74 of file sha0hash.h.

References par.

void SHA0Hash::operator= const SHA0Hash  )  [private]
 

void SHA0Hash::reset  )  [virtual]
 

Reset has algo; see base class.

Reimplemented from SecureHashBase.

Definition at line 149 of file sha0hash.cc.

References sha_init_state, state, tmp_size, and tmpbuf.

Referenced by SHA0Hash(), and ~SHA0Hash().


Member Data Documentation

const SecureHashBase::Parameters SHA0Hash::par [static]
 

Initial value:

{
    INIT_FIELD(hash_size) 20,
    INIT_FIELD(block_size) 64,
    INIT_FIELD(hash_ID) 0x1000,
    INIT_FIELD(name) "SHA0"
}
Parameters of the hash algo.

Reimplemented from SecureHashBase.

Definition at line 20 of file sha0hash.cc.

Referenced by GetPar().

uint32 SHA0Hash::state[5] [private]
 

hash status; hash value

Definition at line 53 of file sha0hash.h.

Referenced by AtomicHash(), GetHash(), and reset().

int SHA0Hash::tmp_size [private]
 

number of bytes in tmpbuf

Definition at line 57 of file sha0hash.h.

Referenced by feed(), final(), and reset().

unsigned char SHA0Hash::tmpbuf[64] [private]
 

may be over from last call to Feed()

Definition at line 56 of file sha0hash.h.

Referenced by feed(), final(), and reset().


The documentation for this class was generated from the following files:
Generated on Sat Feb 19 22:35:39 2005 for Ray by doxygen 1.3.5