Class SkeinEngine

  • All Implemented Interfaces:
    Memoable

    public class SkeinEngine
    extends java.lang.Object
    implements Memoable
    Implementation of the Skein family of parameterised hash functions 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.

    This implementation is the basis for SkeinDigest and SkeinMac, implementing the parameter based configuration system that allows Skein to be adapted to multiple applications. Initialising the engine with SkeinParameters allows standard and arbitrary parameters to be applied during the Skein hash function.

    Implemented: 256, 512 and 1024 bit internal states.

  • Full 96 bit input length. Parameters defined in the Skein specification, and arbitrary other pre and post message parameters. Arbitrary output size in 1 byte intervals.

Not implemented: Sub-byte length input (bit padding). Tree hashing.

See Also:
SkeinParameters