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 https://keccak.noekeon.org/
Following the naming conventions used in the C source code to enable easy review of the implementation.
Method Summary |
protected void |
absorb(byte data)
|
protected void |
absorb(byte[] data,
int off,
int len)
|
protected void |
absorbBits(int data,
int bits)
|
protected CryptoServiceProperties |
cryptoServiceProperties()
|
int |
doFinal(byte[] out,
int outOff)
close the digest, producing the final digest value. |
protected int |
doFinal(byte[] out,
int outOff,
byte partialByte,
int partialBits)
|
java.lang.String |
getAlgorithmName()
return the algorithm name |
int |
getByteLength()
Return the size of block that the compression function is applied to in bytes. |
int |
getDigestSize()
return the size, in bytes, of the digest produced by this message digest. |
void |
reset()
reset the digest back to it's initial state. |
protected void |
squeeze(byte[] output,
int offset,
long outputLength)
|
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 |
purpose
protected final CryptoServicePurpose purpose
state
protected long[] state
dataQueue
protected byte[] dataQueue
rate
protected int rate
bitsInQueue
protected int bitsInQueue
fixedOutputLength
protected int fixedOutputLength
squeezing
protected boolean squeezing
KeccakDigest
public KeccakDigest()
KeccakDigest
public KeccakDigest(CryptoServicePurpose purpose)
KeccakDigest
public KeccakDigest(int bitLength)
KeccakDigest
public KeccakDigest(int bitLength,
CryptoServicePurpose purpose)
KeccakDigest
public KeccakDigest(KeccakDigest source)
getAlgorithmName
public java.lang.String getAlgorithmName()
- Description copied from interface:
Digest
- return the algorithm name
- Specified by:
getAlgorithmName
in interface Digest
- Following copied from interface:
org.bouncycastle.crypto.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
- Following copied from interface:
org.bouncycastle.crypto.Digest
- Returns:
- the size, in bytes, of the digest produced by this message digest.
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
- Following copied from interface:
org.bouncycastle.crypto.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
- Following copied from interface:
org.bouncycastle.crypto.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.
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
- Following copied from interface:
org.bouncycastle.crypto.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.
doFinal
protected int doFinal(byte[] out,
int outOff,
byte partialByte,
int partialBits)
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()
- Return the size of block that the compression function is applied to in bytes.
- Specified by:
getByteLength
in interface ExtendedDigest
- 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)
squeeze
protected void squeeze(byte[] output,
int offset,
long outputLength)
cryptoServiceProperties
protected CryptoServiceProperties cryptoServiceProperties()