Class LongDigest

java.lang.Object
org.gudy.bouncycastle.crypto.digests.LongDigest
All Implemented Interfaces:
Digest
Direct Known Subclasses:
SHA384Digest, SHA512Digest

public abstract class LongDigest extends Object implements Digest
Base class for SHA-384 and SHA-512.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private long
     
    private long
     
    protected long
     
    protected long
     
    protected long
     
    protected long
     
    protected long
     
    protected long
     
    protected long
     
    protected long
     
    (package private) static final long[]
     
    private long[]
     
    private int
     
    private byte[]
     
    private int
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Constructor for variable length word
    protected
    Copy constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    private void
    adjust the byte counts so that byteCount2 represents the upper long (less 3 bits) word of the byte count.
    private long
    Ch(long x, long y, long z)
     
    void
     
    private long
    Maj(long x, long y, long z)
     
    protected void
     
    protected void
    processLength(long lowW, long hiW)
     
    protected void
    processWord(byte[] in, int inOff)
     
    void
    reset the digest back to it's initial state.
    private long
    rotateRight(long x, int n)
     
    private long
    Sigma0(long x)
     
    private long
    Sigma1(long x)
     
    private long
    Sum0(long x)
     
    private long
    Sum1(long x)
     
    protected void
    unpackWord(long word, byte[] out, int outOff)
     
    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.gudy.bouncycastle.crypto.Digest

    doFinal, getAlgorithmName, getDigestSize
  • Field Details

    • xBuf

      private byte[] xBuf
    • xBufOff

      private int xBufOff
    • byteCount1

      private long byteCount1
    • byteCount2

      private long byteCount2
    • H1

      protected long H1
    • H2

      protected long H2
    • H3

      protected long H3
    • H4

      protected long H4
    • H5

      protected long H5
    • H6

      protected long H6
    • H7

      protected long H7
    • H8

      protected long H8
    • W

      private long[] W
    • wOff

      private int wOff
    • K

      static final long[] K
  • Constructor Details

    • LongDigest

      protected LongDigest()
      Constructor for variable length word
    • LongDigest

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

    • 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
    • processWord

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

      protected void unpackWord(long word, byte[] out, int outOff)
    • adjustByteCounts

      private void adjustByteCounts()
      adjust the byte counts so that byteCount2 represents the upper long (less 3 bits) word of the byte count.
    • processLength

      protected void processLength(long lowW, long hiW)
    • processBlock

      protected void processBlock()
    • rotateRight

      private long rotateRight(long x, int n)
    • Ch

      private long Ch(long x, long y, long z)
    • Maj

      private long Maj(long x, long y, long z)
    • Sum0

      private long Sum0(long x)
    • Sum1

      private long Sum1(long x)
    • Sigma0

      private long Sigma0(long x)
    • Sigma1

      private long Sigma1(long x)