Class GeneralDigest

  • All Implemented Interfaces:
    Digest, ExtendedDigest, Memoable
    Direct Known Subclasses:
    SHA256Digest

    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

      Fields 
      Modifier and Type Field Description
      private static int BYTE_LENGTH  
      private long byteCount  
      private byte[] xBuf  
      private int xBufOff  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void copyIn​(GeneralDigest t)  
      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 com.ongres.scram.common.bouncycastle.pbkdf2.Memoable

        copy, reset
    • Field Detail

      • xBuf

        private final byte[] xBuf
      • xBufOff

        private int xBufOff
      • byteCount

        private long byteCount
    • Constructor Detail

      • GeneralDigest

        protected GeneralDigest()
        Standard constructor
      • 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

      • 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
        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
        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
        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()