cryptix.provider.md
Class BlockMessageDigest

java.lang.Object
  extended byjava.security.MessageDigestSpi
      extended byjava.security.MessageDigest
          extended bycryptix.provider.md.BlockMessageDigest
Direct Known Subclasses:
MD5, SHA0, SHA1

abstract class BlockMessageDigest
extends java.security.MessageDigest

This is a superclass for message digests that operate internally on blocks of data. It is not intended directly for use by application programmers.

Copyright © 1995-1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.4 $

Since:
Cryptix 2.2.2
Author:
David Hopwood

Nested Class Summary
 
Nested classes inherited from class java.security.MessageDigest
 
Constructor Summary
protected BlockMessageDigest(java.lang.String algorithm)
          Constructs a message digest with the specified algorithm name.
 
Method Summary
protected  long bitcount()
           
protected  byte[] engineDigest()
          SPI: Calculates the final digest.
protected abstract  byte[] engineDigest(byte[] data, int length)
          SPI (for BlockMessageDigests only): Calculates the final digest.
protected abstract  int engineGetDataLength()
          SPI: Returns the length of the block that this hash function operates on.
protected  void engineReset()
          SPI: Resets the digest.
protected abstract  void engineTransform(byte[] data)
          SPI (for BlockMessageDigests only): Performs a transformation on the given data, which is always one block long.
protected  void engineUpdate(byte b)
          SPI: Updates the message digest with a byte of new data.
protected  void engineUpdate(byte[] data, int offset, int length)
          SPI: Updates the message digest with new data.
 
Methods inherited from class java.security.MessageDigest
clone, digest, digest, digest, getAlgorithm, getDigestLength, getInstance, getInstance, getInstance, getProvider, isEqual, reset, toString, update, update, update
 
Methods inherited from class java.security.MessageDigestSpi
engineDigest, engineGetDigestLength
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BlockMessageDigest

protected BlockMessageDigest(java.lang.String algorithm)
Constructs a message digest with the specified algorithm name.

Parameters:
algorithm - the standard name of the digest algorithm.
Method Detail

bitcount

protected long bitcount()
Returns:
number of bits hashed so far?

engineReset

protected void engineReset()
SPI: Resets the digest. Subclasses that override engineReset should always call this implementation using super.engineReset().


engineUpdate

protected void engineUpdate(byte b)
SPI: Updates the message digest with a byte of new data.

Parameters:
b - the byte to be added.

engineUpdate

protected void engineUpdate(byte[] data,
                            int offset,
                            int length)
SPI: Updates the message digest with new data.

Parameters:
data - the data to be added.
offset - the start of the data in the array.
length - the number of bytes of data to add.

engineDigest

protected byte[] engineDigest()
SPI: Calculates the final digest. BlockMessageDigest subclasses should not usually override this method.

Returns:
the digest as a byte array.

engineDigest

protected abstract byte[] engineDigest(byte[] data,
                                       int length)
SPI (for BlockMessageDigests only): Calculates the final digest. data[0..length-1] contains the last incomplete input block. length will be less than engineDataLength().

Parameters:
data - the last incomplete block.
length - the length in bytes of the last block.
Returns:
the digest as a byte array.

engineTransform

protected abstract void engineTransform(byte[] data)
SPI (for BlockMessageDigests only): Performs a transformation on the given data, which is always one block long.


engineGetDataLength

protected abstract int engineGetDataLength()
SPI: Returns the length of the block that this hash function operates on.