org.bouncycastle.crypto.engines

Class SerpentEngine

public class SerpentEngine extends Object implements BlockCipher

Serpent is a 128-bit 32-round block cipher with variable key lengths, including 128, 192 and 256 bit keys conjectured to be at least as secure as three-key triple-DES.

Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a candidate algorithm for the NIST AES Quest.>

For full details see the The Serpent home page

Method Summary
StringgetAlgorithmName()
intgetBlockSize()
voidinit(boolean encrypting, CipherParameters params)
initialise a Serpent cipher.
intprocessBlock(byte[] in, int inOff, byte[] out, int outOff)
Process one block of input from the array in and write it to the out array.
voidreset()

Method Detail

getAlgorithmName

public String getAlgorithmName()

getBlockSize

public int getBlockSize()

init

public void init(boolean encrypting, CipherParameters params)
initialise a Serpent cipher.

Parameters: encrypting whether or not we are for encryption. params the parameters required to set up the cipher.

Throws: IllegalArgumentException if the params argument is inappropriate.

processBlock

public final int processBlock(byte[] in, int inOff, byte[] out, int outOff)
Process one block of input from the array in and write it to the out array.

Parameters: in the array containing the input data. inOff offset into the in array the data starts at. out the array the output data will be copied into. outOff the offset into the out array the output will start at.

Returns: the number of bytes processed and produced.

Throws: DataLengthException if there isn't enough data in in, or space in out. IllegalStateException if the cipher isn't initialised.

reset

public void reset()