Package org.bouncycastle.crypto.digests
Class KeccakDigest
- java.lang.Object
-
- org.bouncycastle.crypto.digests.KeccakDigest
-
- All Implemented Interfaces:
Digest,ExtendedDigest
- Direct Known Subclasses:
SHA3Digest,SHAKEDigest
public class KeccakDigest extends java.lang.Object implements ExtendedDigest
implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/Following the naming conventions used in the C source code to enable easy review of the implementation.
-
-
Field Summary
Fields Modifier and Type Field Description protected intbitsInQueueprotected byte[]dataQueueprotected intfixedOutputLengthprotected intrateprotected booleansqueezingprotected long[]state
-
Constructor Summary
Constructors Constructor Description KeccakDigest()KeccakDigest(int bitLength)KeccakDigest(KeccakDigest source)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidabsorb(byte data)protected voidabsorb(byte[] data, int off, int len)protected voidabsorbBits(int data, int bits)intdoFinal(byte[] out, int outOff)close the digest, producing the final digest value.protected intdoFinal(byte[] out, int outOff, byte partialByte, int partialBits)protected byte[]dumpState()java.lang.StringgetAlgorithmName()return the algorithm nameintgetByteLength()Return the size of block that the compression function is applied to in bytes.intgetDigestSize()return the size, in bytes, of the digest produced by this message digest.voidreset()reset the digest back to it's initial state.protected voidsqueeze(byte[] output, int offset, long outputLength)voidupdate(byte in)update the message digest with a single byte.voidupdate(byte[] in, int inOff, int len)update the message digest with a block of bytes.
-
-
-
Constructor Detail
-
KeccakDigest
public KeccakDigest()
-
KeccakDigest
public KeccakDigest(int bitLength)
-
KeccakDigest
public KeccakDigest(KeccakDigest source)
-
-
Method Detail
-
getAlgorithmName
public java.lang.String getAlgorithmName()
Description copied from interface:Digestreturn the algorithm name- Specified by:
getAlgorithmNamein interfaceDigest- Returns:
- the algorithm name
-
getDigestSize
public int getDigestSize()
Description copied from interface:Digestreturn the size, in bytes, of the digest produced by this message digest.- Specified by:
getDigestSizein interfaceDigest- Returns:
- the size, in bytes, of the digest produced by this message digest.
-
update
public void update(byte in)
Description copied from interface:Digestupdate the message digest with a single byte.
-
update
public void update(byte[] in, int inOff, int len)Description copied from interface:Digestupdate the message digest with a block of bytes.
-
doFinal
public int doFinal(byte[] out, int outOff)Description copied from interface:Digestclose the digest, producing the final digest value. The doFinal call leaves the digest reset.
-
doFinal
protected int doFinal(byte[] out, int outOff, byte partialByte, int partialBits)
-
reset
public void reset()
Description copied from interface:Digestreset the digest back to it's initial state.
-
getByteLength
public int getByteLength()
Return the size of block that the compression function is applied to in bytes.- Specified by:
getByteLengthin interfaceExtendedDigest- Returns:
- internal byte length of a block.
-
absorb
protected void absorb(byte data)
-
absorb
protected void absorb(byte[] data, int off, int len)
-
absorbBits
protected void absorbBits(int data, int bits)
-
dumpState
protected byte[] dumpState()
-
squeeze
protected void squeeze(byte[] output, int offset, long outputLength)
-
-