cryptix.provider.md
Class BlockMessageDigest

java.lang.Object
  |
  +--java.security.MessageDigestSpi
        |
        +--java.security.MessageDigest
              |
              +--cryptix.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

Inner classes inherited from class java.security.MessageDigest
java.security.MessageDigest.Delegate
 
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, 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().
Overrides:
engineReset in class java.security.MessageDigestSpi

engineUpdate

protected void engineUpdate(byte b)
SPI: Updates the message digest with a byte of new data.
Overrides:
engineUpdate in class java.security.MessageDigestSpi
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.
Overrides:
engineUpdate in class java.security.MessageDigestSpi
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.
Overrides:
engineDigest in class java.security.MessageDigestSpi
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.