Bouncy Castle Cryptography Library 1.77.0

org.bouncycastle.crypto.digests
Class GeneralDigest

java.lang.Object
  |
  +--org.bouncycastle.crypto.digests.GeneralDigest
All Implemented Interfaces:
Digest, ExtendedDigest, Memoable
Direct Known Subclasses:
MD4Digest, MD5Digest, RIPEMD128Digest, RIPEMD160Digest, RIPEMD256Digest, RIPEMD320Digest, SHA1Digest, SHA224Digest, SHA256Digest, SM3Digest

public abstract class GeneralDigest
extends java.lang.Object
implements ExtendedDigest, Memoable

base implementation of MD4 family style digest as outlined in "Handbook of Applied Cryptography", pages 344 - 347.


Field Summary
protected  CryptoServicePurpose purpose
           
 
Constructor Summary
protected GeneralDigest()
          Standard constructor
protected GeneralDigest(byte[] encodedState)
           
protected GeneralDigest(CryptoServicePurpose purpose)
           
protected GeneralDigest(GeneralDigest t)
          Copy constructor.
 
Method Summary
protected  void copyIn(GeneralDigest t)
           
protected abstract  CryptoServiceProperties cryptoServiceProperties()
           
 void finish()
           
 int getByteLength()
          Return the size in bytes of the internal buffer the digest applies it's compression function to.
protected  void populateState(byte[] state)
           
protected abstract  void processBlock()
           
protected abstract  void processLength(long bitLength)
           
protected abstract  void processWord(byte[] in, int inOff)
           
 void reset()
          reset the digest back to it's initial state.
 void update(byte in)
          update the message digest with a single byte.
 void update(byte[] in, int inOff, int len)
          update the message digest with a block of bytes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.bouncycastle.crypto.Digest
doFinal, getAlgorithmName, getDigestSize
 
Methods inherited from interface org.bouncycastle.util.Memoable
copy, reset
 

Field Detail

purpose

protected final CryptoServicePurpose purpose
Constructor Detail

GeneralDigest

protected GeneralDigest()
Standard constructor

GeneralDigest

protected GeneralDigest(CryptoServicePurpose purpose)

GeneralDigest

protected GeneralDigest(GeneralDigest t)
Copy constructor. We are using copy constructors in place of the Object.clone() interface as this interface is not supported by J2ME.

GeneralDigest

protected GeneralDigest(byte[] encodedState)
Method Detail

copyIn

protected void copyIn(GeneralDigest t)

update

public void update(byte in)
Description copied from interface: Digest
update the message digest with a single byte.
Specified by:
update in interface Digest
Following copied from interface: org.bouncycastle.crypto.Digest
Parameters:
in - the input byte to be entered.

update

public void update(byte[] in,
                   int inOff,
                   int len)
Description copied from interface: Digest
update the message digest with a block of bytes.
Specified by:
update in interface Digest
Following copied from interface: org.bouncycastle.crypto.Digest
Parameters:
in - the byte array containing the data.
inOff - the offset into the byte array where the data starts.
len - the length of the data.

finish

public void finish()

reset

public void reset()
Description copied from interface: Digest
reset the digest back to it's initial state.
Specified by:
reset in interface Digest

populateState

protected void populateState(byte[] state)

getByteLength

public int getByteLength()
Description copied from interface: ExtendedDigest
Return the size in bytes of the internal buffer the digest applies it's compression function to.
Specified by:
getByteLength in interface ExtendedDigest
Following copied from interface: org.bouncycastle.crypto.ExtendedDigest
Returns:
byte length of the digests internal buffer.

processWord

protected abstract void processWord(byte[] in,
                                    int inOff)

processLength

protected abstract void processLength(long bitLength)

processBlock

protected abstract void processBlock()

cryptoServiceProperties

protected abstract CryptoServiceProperties cryptoServiceProperties()

Bouncy Castle Cryptography Library 1.77.0