org.bouncycastle.crypto.digests
Class LongDigest

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

public abstract class LongDigest
extends java.lang.Object
implements ExtendedDigest

Base class for SHA-384 and SHA-512.


Field Summary
private static int BYTE_LENGTH
           
private  long byteCount1
           
private  long byteCount2
           
protected  long H1
           
protected  long H2
           
protected  long H3
           
protected  long H4
           
protected  long H5
           
protected  long H6
           
protected  long H7
           
protected  long H8
           
(package private) static long[] K
           
private  long[] W
           
private  int wOff
           
private  byte[] xBuf
           
private  int xBufOff
           
 
Constructor Summary
protected LongDigest()
          Constructor for variable length word
protected LongDigest(LongDigest t)
          Copy constructor.
 
Method Summary
private  void adjustByteCounts()
          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 finish()
           
 int getByteLength()
          Return the size in bytes of the internal buffer the digest applies it's compression function to.
private  long Maj(long x, long y, long z)
           
protected  void processBlock()
           
protected  void processLength(long lowW, long hiW)
           
protected  void processWord(byte[] in, int inOff)
           
 void reset()
          reset the digest back to it's initial state.
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.bouncycastle.crypto.Digest
doFinal, getAlgorithmName, getDigestSize
 

Field Detail

BYTE_LENGTH

private static final int BYTE_LENGTH
See Also:
Constant Field Values

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 Detail

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

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

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)