Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

gnu.java.security.hash
Class BaseHash  view BaseHash download BaseHash.java

java.lang.Object
  extended bygnu.java.security.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)
          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[] 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.

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

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

blockSize

public int blockSize()
Description copied from interface: IMessageDigest

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

Specified by:
blockSize in interface IMessageDigest

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

update

public void update(byte[] b)
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

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

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

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

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

padBuffer

protected abstract byte[] padBuffer()

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


getResult

protected abstract byte[] getResult()

Constructs the result from the contents of the current context.


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.