## gnu.crypto.hash
Interface IMessageDigestStandalone

All Superinterfaces:
  Cloneable

All Known Implementing Classes:
  BaseHashStandalone, Sha256Standalone

    public interface IMessageDigestStandalone

extends Cloneable

The basic visible methods of any hash algorithm.

A hash (or message digest) algorithm produces its output by iterating a basic compression function on blocks of data.

Version:
  $Revision: 1.1 $

Method Summary
`int` `blockSize()` Returns the algorithm's (inner) block size in bytes.
`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.
`int` `hashSize()` Returns the output length in bytes of this message digest algorithm.
`String` `name()` Returns the canonical name of this algorithm.
`void` `reset()` Resets the current context of this instance clearing any eventually cached intermediary values.
`boolean` `selfTest()` A basic test.
`void` `update(byte b)` Continues a message digest operation using the input byte.
`void` `update(byte[] in)` 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.
`void` `update(byte[] in, int offset, int length)` 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.

Method Detail

### name

    String name()

  Returns the canonical name of this algorithm.

  Returns:
    the canonical name of this instance.

### hashSize

    int hashSize()

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

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

### blockSize

    int blockSize()

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

  Returns:
    the algorithm's inner block size in bytes.

### update

    void update(byte b)

  Continues a message digest operation using the input byte.

  Parameters:
    `b` - the input byte to digest.

### update

    void update(byte[] in)

  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.

  Parameters:
    `in` - the input block.

### update

    void update(byte[] in,
                int offset,
                int length)

  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.

  Parameters:
    `in` - the input block.
    `offset` - start of meaningful bytes in input block.
    `length` - number of bytes, in input block, to consider.

### digest

    byte[] digest()

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

  Returns:
    the array of bytes representing the hash value.

### reset

    void reset()

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

### selfTest

    boolean selfTest()

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

  Returns:
    `true` if the implementation passes a basic self-test. Returns `false` otherwise.

### clone

    Object clone()

  Returns a clone copy of this instance.

  Returns:
    a clone copy of this instance.