Bouncy Castle Cryptography Library 1.82

org.bouncycastle.crypto.digests
Class SHA3Digest

java.lang.Object
  extended byorg.bouncycastle.crypto.digests.KeccakDigest
      extended byorg.bouncycastle.crypto.digests.SHA3Digest
All Implemented Interfaces:
Digest, EncodableDigest, EncodableService, ExtendedDigest, Memoable, SavableDigest

public class SHA3Digest
extends KeccakDigest
implements SavableDigest

implementation of SHA-3 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.


Field Summary
 
Fields inherited from class org.bouncycastle.crypto.digests.KeccakDigest
bitsInQueue, dataQueue, fixedOutputLength, purpose, rate, squeezing, state
 
Constructor Summary
SHA3Digest()
           
SHA3Digest(byte[] encodedState)
           
SHA3Digest(CryptoServicePurpose purpose)
           
SHA3Digest(int bitLength)
           
SHA3Digest(int bitLength, CryptoServicePurpose purpose)
           
SHA3Digest(SHA3Digest source)
           
 
Method Summary
 Memoable copy()
          Produce a copy of this object with its configuration and in its current state.
 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
 byte[] getEncodedState()
          Return an encoded byte array for the digest's internal state
 void reset(Memoable other)
          Restore a copied object state into this object.
 
Methods inherited from class org.bouncycastle.crypto.digests.KeccakDigest
absorb, absorb, absorbBits, copyIn, cryptoServiceProperties, getByteLength, getDigestSize, getEncodedState, reset, squeeze, update, update
 
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.ExtendedDigest
getByteLength
 
Methods inherited from interface org.bouncycastle.crypto.Digest
getDigestSize, reset, update, update
 

Constructor Detail

SHA3Digest

public SHA3Digest()

SHA3Digest

public SHA3Digest(CryptoServicePurpose purpose)

SHA3Digest

public SHA3Digest(int bitLength)

SHA3Digest

public SHA3Digest(int bitLength,
                  CryptoServicePurpose purpose)

SHA3Digest

public SHA3Digest(byte[] encodedState)

SHA3Digest

public SHA3Digest(SHA3Digest source)
Method Detail

getAlgorithmName

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

Specified by:
getAlgorithmName in interface Digest
Overrides:
getAlgorithmName in class KeccakDigest

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
Overrides:
doFinal in class KeccakDigest

doFinal

protected int doFinal(byte[] out,
                      int outOff,
                      byte partialByte,
                      int partialBits)
Overrides:
doFinal in class KeccakDigest

getEncodedState

public byte[] getEncodedState()
Description copied from interface: EncodableDigest
Return an encoded byte array for the digest's internal state

Specified by:
getEncodedState in interface EncodableDigest
Returns:
an encoding of the digests internal state.

copy

public Memoable copy()
Description copied from interface: Memoable
Produce a copy of this object with its configuration and in its current state.

The returned object may be used simply to store the state, or may be used as a similar object starting from the copied state.

Specified by:
copy in interface Memoable

reset

public void reset(Memoable other)
Description copied from interface: Memoable
Restore a copied object state into this object.

Implementations of this method should try to avoid or minimise memory allocation to perform the reset.

Specified by:
reset in interface Memoable
Parameters:
other - an object originally copied from an object of the same type as this instance.

Bouncy Castle Cryptography Library 1.82