Package org.bouncycastle.crypto.digests
Class SkeinDigest
java.lang.Object
org.bouncycastle.crypto.digests.SkeinDigest
- All Implemented Interfaces:
Digest,ExtendedDigest,Memoable
Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
based on the
Threefish tweakable block cipher.
This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3 competition in October 2010.
Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int1024 bit block size - Skein-1024static final int256 bit block size - Skein-256static final int512 bit block size - Skein-512 -
Constructor Summary
ConstructorsConstructorDescriptionSkeinDigest(int stateSizeBits, int digestSizeBits) Constructs a Skein digest with an internal state size and output size.SkeinDigest(int stateSizeBits, int digestSizeBits, CryptoServicePurpose purpose) SkeinDigest(SkeinDigest digest) -
Method Summary
Modifier and TypeMethodDescriptioncopy()Produce a copy of this object with its configuration and in its current state.intdoFinal(byte[] out, int outOff) close the digest, producing the final digest value.return the algorithm nameintReturn the size in bytes of the internal buffer the digest applies it's compression function to.intreturn the size, in bytes, of the digest produced by this message digest.voidinit(SkeinParameters params) Optionally initialises the Skein digest with the provided parameters.
SeeSkeinParametersfor details on the parameterisation of the Skein hash function.voidreset()reset the digest back to it's initial state.voidRestore a copied object state into this object.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.
-
Field Details
-
SKEIN_256
public static final int SKEIN_256256 bit block size - Skein-256- See Also:
-
SKEIN_512
public static final int SKEIN_512512 bit block size - Skein-512- See Also:
-
SKEIN_1024
public static final int SKEIN_10241024 bit block size - Skein-1024- See Also:
-
-
Constructor Details
-
SkeinDigest
public SkeinDigest(int stateSizeBits, int digestSizeBits) Constructs a Skein digest with an internal state size and output size.- Parameters:
stateSizeBits- the internal state size in bits - one ofSKEIN_256,SKEIN_512orSKEIN_1024.digestSizeBits- the output/digest size to produce in bits, which must be an integral number of bytes.
-
SkeinDigest
-
SkeinDigest
-
-
Method Details
-
reset
Description copied from interface:MemoableRestore a copied object state into this object.Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
-
copy
Description copied from interface:MemoableProduce 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.
-
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.
-
getByteLength
public int getByteLength()Description copied from interface:ExtendedDigestReturn the size in bytes of the internal buffer the digest applies it's compression function to.- Specified by:
getByteLengthin interfaceExtendedDigest- Returns:
- byte length of the digests internal buffer.
-
init
Optionally initialises the Skein digest with the provided parameters.
SeeSkeinParametersfor details on the parameterisation of the Skein hash function.- Parameters:
params- the parameters to apply to this engine, ornullto use no parameters.
-
reset
public void reset()Description copied from interface:Digestreset the digest back to it's initial state. -
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.
-