Overview | Package | Class | Tree | Serialized | Deprecated | Index | Help
| For the latest news and information visit The GNU Crypto project
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## gnu.crypto.hash
Class BaseHash

    java.lang.Object
      |
      +--gnu.crypto.hash.BaseHash

All Implemented Interfaces:
  java.lang.Cloneable, IMessageDigest

Direct Known Subclasses:
  Haval, MD2, MD4, MD5, RipeMD128, RipeMD160, Sha160, Sha256, Sha384, Sha512, Tiger, Whirlpool

public abstract class BaseHash
extends java.lang.Object
implements IMessageDigest

A base abstract class to facilitate hash implementations.

Field Summary
`protected int` | `blockSize` The hash (inner) block size in bytes.
`protected byte[]` | `buffer` Temporary input buffer.
`protected long` | `count` Number of bytes processed so far.
`protected int` | `hashSize` The hash (output) size in bytes.
`protected java.lang.String` | `name` The canonical name prefix of the hash.

Constructor Summary
`protected` | `BaseHash(java.lang.String name, int hashSize, int blockSize)` Trivial constructor for use by concrete subclasses.

Method Summary
`int` | `blockSize()` Returns the algorithm's (inner) block size in bytes.
`abstract java.lang.Object` | `clone()` Returns a clone copy of this instance.
`byte[]` | `digest()` Completes the message digest by performing final operations such as padding and resetting the instance.
`protected abstract byte[]` | `getResult()` Constructs the result from the contents of the current context.
`int` | `hashSize()` Returns the output length in bytes of this message digest algorithm.
`java.lang.String` | `name()` Returns the canonical name of this algorithm.
`protected abstract byte[]` | `padBuffer()` Returns the byte array to use as padding before completing a hash operation.
`void` | `reset()` Resets the current context of this instance clearing any eventually cached intermediary values.
`protected abstract void` | `resetContext()` Resets the instance for future re-use.
`abstract boolean` | `selfTest()` A basic test.
`protected abstract void` | `transform(byte[] in, int offset)` The block digest transformation per se.
`void` | `update(byte b)` Continues a message digest operation using the input byte.
`void` | `update(byte[] b, int offset, int len)` Continues a message digest operation, by filling the buffer, processing data in the algorithm's HASH_SIZE-bit block(s), updating the context and count, and buffering the remaining bytes in buffer for the next operation.

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### name

    protected java.lang.String name

  The canonical name prefix of the hash.

### hashSize

    protected int hashSize

  The hash (output) size in bytes.

### blockSize

    protected int blockSize

  The hash (inner) block size in bytes.

### count

    protected long count

  Number of bytes processed so far.

### buffer

    protected byte[] buffer

  Temporary input buffer.

Constructor Detail

### BaseHash

    protected BaseHash(java.lang.String name,
                       int hashSize,
                       int blockSize)

  Trivial constructor for use by concrete subclasses.

Parameters:
  `name` - the canonical name prefix of this instance.
  `hashSize` - the block size of the output in bytes.
  `blockSize` - the block size of the internal transform.

Method Detail

### name

    public java.lang.String name()

  Description copied from interface: `IMessageDigest`

  Returns the canonical name of this algorithm.

  Specified by:
    `name` in interface `IMessageDigest`
  Returns:
    the canonical name of this instance.

### hashSize

    public int hashSize()

  Description copied from interface: `IMessageDigest`

  Returns the output length in bytes of this message digest algorithm.

  Specified by:
    `hashSize` in interface `IMessageDigest`
  Returns:
    the output length in bytes of this message digest algorithm.

### blockSize

    public int blockSize()

  Description copied from interface: `IMessageDigest`

  Returns the algorithm's (inner) block size in bytes.

  Specified by:
    `blockSize` in interface `IMessageDigest`
  Returns:
    the algorithm's inner block size in bytes.

### update

    public void update(byte b)

  Description copied from interface: `IMessageDigest`

  Continues a message digest operation using the input byte.

  Specified by:
    `update` in interface `IMessageDigest`
  Parameters:
    `b` - the input byte to digest.

### update

    public void update(byte[] b,
                       int offset,
                       int len)

  Description copied from interface: `IMessageDigest`

  Continues a message digest operation, by filling the buffer, processing data in the algorithm's HASH_SIZE-bit block(s), updating the context and count, and buffering the remaining bytes in buffer for the next operation.

  Specified by:
    `update` in interface `IMessageDigest`
  Parameters:
    `b` - the input block.
    `offset` - start of meaningful bytes in input block.
    `len` - number of bytes, in input block, to consider.

### digest

    public byte[] digest()

  Description copied from interface: `IMessageDigest`

  Completes the message digest by performing final operations such as padding and resetting the instance.

  Specified by:
    `digest` in interface `IMessageDigest`
  Returns:
    the array of bytes representing the hash value.

### reset

    public void reset()

  Description copied from interface: `IMessageDigest`

  Resets the current context of this instance clearing any eventually cached intermediary values.

  Specified by:
    `reset` in interface `IMessageDigest`

### clone

    public abstract java.lang.Object clone()

  Description copied from interface: `IMessageDigest`

  Returns a clone copy of this instance.

  Specified by:
    `clone` in interface `IMessageDigest`
  Overrides:
    `clone` in class `java.lang.Object`
  Returns:
    a clone copy of this instance.

### selfTest

    public abstract boolean selfTest()

  Description copied from interface: `IMessageDigest`

  A basic test. Ensures that the digest of a pre-determined message is equal to a known pre-computed value.

  Specified by:
    `selfTest` in interface `IMessageDigest`
  Returns:
    `true` if the implementation passes a basic self-test. Returns `false` otherwise.

### padBuffer

    protected abstract byte[] padBuffer()

  Returns the byte array to use as padding before completing a hash operation.

  Returns:
    the bytes to pad the remaining bytes in the buffer before completing a hash operation.

### getResult

    protected abstract byte[] getResult()

  Constructs the result from the contents of the current context.

  Returns:
    the output of the completed hash operation.

### resetContext

    protected abstract void resetContext()

  Resets the instance for future re-use.

### transform

    protected abstract void transform(byte[] in,
                                      int offset)

  The block digest transformation per se.

  Parameters:
    `in` - the blockSize long block, as an array of bytes to digest.
    `offset` - the index where the data to digest is located within the input buffer.

Overview | Package | Class | Tree | Serialized | Deprecated | Index | Help
| For the latest news and information visit The GNU Crypto project
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001, 2002, 2003, 2004 Free Software Foundation, Inc.