# GeneralDigest (Bouncy Castle Library 1.45 API Specification)
Date: 2013-08-05

org.bouncycastle.crypto.digests

## Class GeneralDigest

- java.lang.Object
- - org.bouncycastle.crypto.digests.GeneralDigest

All Implemented Interfaces:
  Digest, ExtendedDigest

Direct Known Subclasses:
  MD4Digest, MD5Digest, RIPEMD128Digest, RIPEMD160Digest, RIPEMD256Digest, RIPEMD320Digest, SHA1Digest, SHA224Digest, SHA256Digest

    public abstract class GeneralDigest
    extends java.lang.Object
    implements ExtendedDigest

base implementation of MD4 family style digest as outlined in "Handbook of Applied Cryptography", pages 344 - 347.

### Constructor Summary

Constructors
`protected` `GeneralDigest()` Standard constructor
`protected` `GeneralDigest(GeneralDigest t)` Copy constructor.

### Method Summary

Methods
`void` `finish()`
`int` `getByteLength()` Return the size in bytes of the internal buffer the digest applies it's compression function to.
`protected abstract void` `processBlock()`
`protected abstract void` `processLength(long bitLength)`
`protected abstract void` `processWord(byte[] in, int inOff)`
`void` `reset()` reset the digest back to it's initial state.
`void` `update(byte in)` update the message digest with a single byte.
`void` `update(byte[] in, int inOff, int len)` update the message digest with a block of bytes.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.bouncycastle.crypto.Digest

`doFinal, getAlgorithmName, getDigestSize`

### Constructor Detail

#### GeneralDigest

    protected GeneralDigest()

Standard constructor

#### GeneralDigest

    protected GeneralDigest(GeneralDigest t)

Copy constructor. We are using copy constructors in place of the Object.clone() interface as this interface is not supported by J2ME.

### Method Detail

#### update

    public void update(byte in)

Description copied from interface: `Digest`
update the message digest with a single byte.

Specified by:
  `update` in interface `Digest`
Parameters:
  `in` - the input byte to be entered.

#### update

    public void update(byte[] in,
              int inOff,
              int len)

Description copied from interface: `Digest`
update the message digest with a block of bytes.

Specified by:
  `update` in interface `Digest`
Parameters:
  `in` - the byte array containing the data.
  `inOff` - the offset into the byte array where the data starts.
  `len` - the length of the data.

#### finish

    public void finish()

#### reset

    public void reset()

Description copied from interface: `Digest`
reset the digest back to it's initial state.

Specified by:
  `reset` in interface `Digest`

#### getByteLength

    public int getByteLength()

Description copied from interface: `ExtendedDigest`
Return the size in bytes of the internal buffer the digest applies it's compression function to.

Specified by:
  `getByteLength` in interface `ExtendedDigest`
Returns:
  byte length of the digests internal buffer.

#### processWord

    protected abstract void processWord(byte[] in,
                   int inOff)

#### processLength

    protected abstract void processLength(long bitLength)

#### processBlock

    protected abstract void processBlock()