public class SkeinDigest extends java.lang.Object implements ExtendedDigest, Memoable
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.
SkeinEngine
,
SkeinParameters
Modifier and Type | Field and Description |
---|---|
static int |
SKEIN_1024
1024 bit block size - Skein-1024
|
static int |
SKEIN_256
256 bit block size - Skein-256
|
static int |
SKEIN_512
512 bit block size - Skein-512
|
Constructor and Description |
---|
SkeinDigest(int stateSizeBits,
int digestSizeBits)
Constructs a Skein digest with an internal state size and output size.
|
SkeinDigest(SkeinDigest digest) |
Modifier and Type | Method and 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 name
|
int |
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.
|
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.
|
public static final int SKEIN_256
public static final int SKEIN_512
public static final int SKEIN_1024
public SkeinDigest(int stateSizeBits, int digestSizeBits)
stateSizeBits
- the internal state size in bits - one of SKEIN_256
, SKEIN_512
or
SKEIN_1024
.digestSizeBits
- the output/digest size to produce in bits, which must be an integral number of
bytes.public SkeinDigest(SkeinDigest digest)
public void reset(Memoable other)
Memoable
Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
public Memoable copy()
Memoable
The returned object may be used simply to store the state, or may be used as a similar object starting from the copied state.
public java.lang.String getAlgorithmName()
Digest
getAlgorithmName
in interface Digest
public int getDigestSize()
Digest
getDigestSize
in interface Digest
public int getByteLength()
ExtendedDigest
getByteLength
in interface ExtendedDigest
public void init(SkeinParameters params)
SkeinParameters
for details on the parameterisation of the Skein hash function.params
- the parameters to apply to this engine, or null
to use no parameters.public void reset()
Digest
public void update(byte in)
Digest
public void update(byte[] in, int inOff, int len)
Digest
public int doFinal(byte[] out, int outOff)
Digest