Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.bouncycastle.crypto.macs
Class SkeinMac

    java.lang.Object
      org.bouncycastle.crypto.macs.SkeinMac

All Implemented Interfaces:
  Mac

public class SkeinMac
extends java.lang.Object
implements Mac

Implementation of the Skein parameterised MAC 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:
  `SkeinEngine`, `SkeinParameters`

Field Summary
`static int` | `SKEIN_1024` 1024 bit block size - Skein MAC-1024
`static int` | `SKEIN_256` 256 bit block size - Skein MAC-256
`static int` | `SKEIN_512` 512 bit block size - Skein MAC-512

Constructor Summary
`SkeinMac(int stateSizeBits, int digestSizeBits)` Constructs a Skein MAC with an internal state size and output size.
`SkeinMac(SkeinMac mac)`

Method Summary
`int` | `doFinal(byte[] out, int outOff)` Compute the final stage of the MAC writing the output to the out parameter.
`java.lang.String` | `getAlgorithmName()` Return the name of the algorithm the MAC implements.
`int` | `getMacSize()` Return the block size for this MAC (in bytes).
`void` | `init(CipherParameters params)` Initialises the Skein digest with the provided parameters.
`void` | `reset()` Reset the MAC.
`void` | `update(byte in)` add a single byte to the mac for processing.
`void` | `update(byte[] in, int inOff, int len)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### SKEIN_256

    public static final int SKEIN_256

  256 bit block size - Skein MAC-256

  See Also:
    Constant Field Values

### SKEIN_512

    public static final int SKEIN_512

  512 bit block size - Skein MAC-512

  See Also:
    Constant Field Values

### SKEIN_1024

    public static final int SKEIN_1024

  1024 bit block size - Skein MAC-1024

  See Also:
    Constant Field Values

Constructor Detail

### SkeinMac

    public SkeinMac(int stateSizeBits,
                    int digestSizeBits)

  Constructs a Skein MAC with an internal state size and output size.

Parameters:
  `stateSizeBits` - the internal state size in bits - one of `SKEIN_256`, `SKEIN_512` or `SKEIN_1024`.
  `digestSizeBits` - the output/MAC size to produce in bits, which must be an integral number of bytes.

### SkeinMac

    public SkeinMac(SkeinMac mac)

Method Detail

### getAlgorithmName

    public java.lang.String getAlgorithmName()

  Description copied from interface: `Mac`
  Return the name of the algorithm the MAC implements.

  Specified by:
    `getAlgorithmName` in interface `Mac`
  Returns:
    the name of the algorithm the MAC implements.

### init

    public void init(CipherParameters params)
              throws java.lang.IllegalArgumentException

  Initialises the Skein digest with the provided parameters. See `SkeinParameters` for details on the parameterisation of the Skein hash function.

  Specified by:
    `init` in interface `Mac`
  Parameters:
    `params` - an instance of `SkeinParameters` or `KeyParameter`.
  Throws:
    `java.lang.IllegalArgumentException` - if the params argument is inappropriate.

### getMacSize

    public int getMacSize()

  Description copied from interface: `Mac`
  Return the block size for this MAC (in bytes).

  Specified by:
    `getMacSize` in interface `Mac`
  Returns:
    the block size for this MAC in bytes.

### reset

    public void reset()

  Description copied from interface: `Mac`
  Reset the MAC. At the end of resetting the MAC should be in the in the same state it was after the last init (if there was one).

  Specified by:
    `reset` in interface `Mac`

### update

    public void update(byte in)

  Description copied from interface: `Mac`
  add a single byte to the mac for processing.

  Specified by:
    `update` in interface `Mac`
  Parameters:
    `in` - the byte to be processed.

### update

    public void update(byte[] in,
                       int inOff,
                       int len)

  Specified by:
    `update` in interface `Mac`
  Parameters:
    `in` - the array containing the input.
    `inOff` - the index in the array the data begins at.
    `len` - the length of the input starting at inOff.

### doFinal

    public int doFinal(byte[] out,
                       int outOff)

  Description copied from interface: `Mac`
  Compute the final stage of the MAC writing the output to the out parameter.

  doFinal leaves the MAC in the same state it was after the last init.

  Specified by:
    `doFinal` in interface `Mac`
  Parameters:
    `out` - the array the MAC is to be output to.
    `outOff` - the offset into the out buffer the output is to start at.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD