org.jboss.crypto.digest
Class SHAReverseInterleave

java.lang.Object
  extended byjava.security.MessageDigestSpi
      extended byorg.jboss.crypto.digest.SHAReverseInterleave

public class SHAReverseInterleave
extends java.security.MessageDigestSpi

An alternate SHA Interleave algorithm as implemented in the SRP distribution. This version reverses the even and odd byte streams before performing the SHA digest. This product includes software developed by Tom Wu and Eugene Jhong for the SRP Distribution (http://srp.stanford.edu/srp/).


Constructor Summary
SHAReverseInterleave()
          Creates a new instance of SHAReverseInterleave
 
Method Summary
protected  byte[] engineDigest()
          Completes the digest computation by performing final operations such as padding.
protected  int engineGetDigestLength()
           
protected  void engineReset()
          Resets the digest for further use.
protected  void engineUpdate(byte input)
          Updates the digest using the specified byte.
protected  void engineUpdate(byte[] input, int offset, int len)
          Updates the digest using the specified array of bytes, starting at the specified offset.
 
Methods inherited from class java.security.MessageDigestSpi
clone, engineDigest
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SHAReverseInterleave

public SHAReverseInterleave()
Creates a new instance of SHAReverseInterleave

Throws:
java.security.ProviderException - thrown if MessageDigest.getInstance("SHA") throws a NoSuchAlgorithmException.
Method Detail

engineGetDigestLength

protected int engineGetDigestLength()

engineDigest

protected byte[] engineDigest()
Completes the digest computation by performing final operations such as padding. Once engineDigest has been called, the engine should be reset (see engineReset). Resetting is the responsibility of the engine implementor.

Returns:
the array of bytes for the resulting digest value.

engineReset

protected void engineReset()
Resets the digest for further use.


engineUpdate

protected void engineUpdate(byte input)
Updates the digest using the specified byte.

Parameters:
input - the byte to use for the update.

engineUpdate

protected void engineUpdate(byte[] input,
                            int offset,
                            int len)
Updates the digest using the specified array of bytes, starting at the specified offset.

Parameters:
input - the array of bytes to use for the update.
offset - the offset to start from in the array of bytes.
len - the input of bytes to use, starting at offset.