org.bouncycastle.crypto.digests
Class TigerDigest

java.lang.Object
  extended by org.bouncycastle.crypto.digests.TigerDigest
All Implemented Interfaces:
Digest, ExtendedDigest

public class TigerDigest
extends java.lang.Object
implements ExtendedDigest

implementation of Tiger based on: http://www.cs.technion.ac.il/~biham/Reports/Tiger


Field Summary
private  long a
           
private  long b
           
private  int bOff
           
private  byte[] buf
           
private static int BYTE_LENGTH
           
private  long byteCount
           
private  long c
           
private static int DIGEST_LENGTH
           
private static long[] t1
           
private static long[] t2
           
private static long[] t3
           
private static long[] t4
           
private  long[] x
           
private  int xOff
           
 
Constructor Summary
TigerDigest()
          Standard constructor
TigerDigest(TigerDigest t)
          Copy constructor.
 
Method Summary
 int doFinal(byte[] out, int outOff)
          close the digest, producing the final digest value.
private  void finish()
           
 java.lang.String getAlgorithmName()
          return the algorithm name
 int getByteLength()
          Return the size in bytes of the internal buffer the digest applies it's compression function to.
 int getDigestSize()
          return the size, in bytes, of the digest produced by this message digest.
private  void keySchedule()
           
private  void processBlock()
           
private  void processLength(long bitLength)
           
private  void processWord(byte[] b, int off)
           
 void reset()
          reset the chaining variables
private  void roundABC(long x, long mul)
           
private  void roundBCA(long x, long mul)
           
private  void roundCAB(long x, long mul)
           
 void unpackWord(long r, 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
 

Field Detail

BYTE_LENGTH

private static final int BYTE_LENGTH
See Also:
Constant Field Values

t1

private static final long[] t1

t2

private static final long[] t2

t3

private static final long[] t3

t4

private static final long[] t4

DIGEST_LENGTH

private static final int DIGEST_LENGTH
See Also:
Constant Field Values

a

private long a

b

private long b

c

private long c

byteCount

private long byteCount

buf

private byte[] buf

bOff

private int bOff

x

private long[] x

xOff

private int xOff
Constructor Detail

TigerDigest

public TigerDigest()
Standard constructor


TigerDigest

public TigerDigest(TigerDigest t)
Copy constructor. This will copy the state of the provided message digest.

Method Detail

getAlgorithmName

public java.lang.String getAlgorithmName()
Description copied from interface: Digest
return the algorithm name

Specified by:
getAlgorithmName in interface Digest
Returns:
the algorithm name

getDigestSize

public int getDigestSize()
Description copied from interface: Digest
return the size, in bytes, of the digest produced by this message digest.

Specified by:
getDigestSize in interface Digest
Returns:
the size, in bytes, of the digest produced by this message digest.

processWord

private void processWord(byte[] b,
                         int off)

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.

roundABC

private void roundABC(long x,
                      long mul)

roundBCA

private void roundBCA(long x,
                      long mul)

roundCAB

private void roundCAB(long x,
                      long mul)

keySchedule

private void keySchedule()

processBlock

private void processBlock()

unpackWord

public void unpackWord(long r,
                       byte[] out,
                       int outOff)

processLength

private void processLength(long bitLength)

finish

private void finish()

doFinal

public int doFinal(byte[] out,
                   int outOff)
Description copied from interface: Digest
close the digest, producing the final digest value. The doFinal call leaves the digest reset.

Specified by:
doFinal in interface Digest
Parameters:
out - the array the digest is to be copied into.
outOff - the offset into the out array the digest is to start at.

reset

public void reset()
reset the chaining variables

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.