Next Previous Table Of Contents

The MD4ish Abstract Base Class

#include <chnhash/md4ish.hpp>

Overview

The MD4ish abstract base class is intended to provide a class containing the features common to chain hash functions with the same padding algorithm and endianness conventions as Rivest's MD4 algorithm. As the MD4ish class is a subclass of the
ChainHash class, the variables and methods presented there are not redescribed here. Click here to see the definitions of the terms used on this page. Note that the most MD4ish of all algorithms, MD4, is not provided due to weaknesses recently discovered by Dobbertin [DOBa].

Protected Variables

H

u32* H;
This array contains the chain variables of the MD4ish instance.

buf

u32 buf[16];
This arrary is used, only when necessary, to hold a copy of the block of the bit string the MD4ish instance is iterating over. Often processing can be done without making a copy of the block, however.

Protected Methods

ProcessBlock

virtual void ProcessBlock(const u32* block)=0;
This pure virtual method is overloaded to replace the value of the chain variables by the value of the compression function at the point determined by the chain variables and the block pointed to by block. block is assumed to point to a byte string of format:
b[0]b[1]b[2]b[3]...b[63].
Since the Pentium is a low endian architecture this means that
block[0]=b[3]b[2]b[1]b[0]
block[1]=b[7]b[6]b[5]b[4]
...
block[15]=b[63]b[62]b[61]b[60].

Public Methods

Constructor

MD4ish();
Used in creating a MD4ish instance. Nothing special is done by the constructor.

Destructor

virtual ~MD4ish();
Nothing special is done by this part of the desctructor.
Next Previous Table Of Contents