Package org.bouncycastle.crypto.digests
Class SkeinDigest
- java.lang.Object
-
- org.bouncycastle.crypto.digests.SkeinDigest
-
- All Implemented Interfaces:
Digest
,ExtendedDigest
,Memoable
public class SkeinDigest extends java.lang.Object implements ExtendedDigest, Memoable
Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes, based on theThreefish
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:
SkeinEngine
,SkeinParameters
-
-
Field Summary
Fields Modifier and Type Field Description static int
SKEIN_1024
1024 bit block size - Skein-1024static int
SKEIN_256
256 bit block size - Skein-256static int
SKEIN_512
512 bit block size - Skein-512
-
Constructor Summary
Constructors Constructor Description SkeinDigest(int stateSizeBits, int digestSizeBits)
Constructs a Skein digest with an internal state size and output size.SkeinDigest(SkeinDigest digest)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.java.lang.String
getAlgorithmName()
return the algorithm nameint
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.void
init(SkeinParameters params)
Optionally initialises the Skein digest with the provided parameters.
SeeSkeinParameters
for details on the parameterisation of the Skein hash function.void
reset()
reset the digest back to it's initial state.void
reset(Memoable other)
Restore a copied object state into this object.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.
-
-
-
Field Detail
-
SKEIN_256
public static final int SKEIN_256
256 bit block size - Skein-256- See Also:
- Constant Field Values
-
SKEIN_512
public static final int SKEIN_512
512 bit block size - Skein-512- See Also:
- Constant Field Values
-
SKEIN_1024
public static final int SKEIN_1024
1024 bit block size - Skein-1024- See Also:
- Constant Field Values
-
-
Constructor Detail
-
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_512
orSKEIN_1024
.digestSizeBits
- the output/digest size to produce in bits, which must be an integral number of bytes.
-
SkeinDigest
public SkeinDigest(SkeinDigest digest)
-
-
Method Detail
-
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.
-
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.
-
getAlgorithmName
public java.lang.String getAlgorithmName()
Description copied from interface:Digest
return the algorithm name- Specified by:
getAlgorithmName
in interfaceDigest
- 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 interfaceDigest
- Returns:
- the size, in bytes, of the digest produced by this message 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 interfaceExtendedDigest
- Returns:
- byte length of the digests internal buffer.
-
init
public void init(SkeinParameters params)
Optionally initialises the Skein digest with the provided parameters.
SeeSkeinParameters
for details on the parameterisation of the Skein hash function.- Parameters:
params
- the parameters to apply to this engine, ornull
to use no parameters.
-
reset
public void reset()
Description copied from interface:Digest
reset the digest back to it's initial state.
-
update
public void update(byte in)
Description copied from interface:Digest
update the message digest with a single byte.
-
update
public void update(byte[] in, int inOff, int len)
Description copied from interface:Digest
update the message digest with a block of bytes.
-
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.
-
-