org.bouncycastle.crypto.engines

Class SerpentEngine

Implemented Interfaces:
BlockCipher

public class SerpentEngine
extends java.lang.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

String
getAlgorithmName()
int
getBlockSize()
void
init(boolean encrypting, CipherParameters params)
initialise a Serpent cipher.
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.
void
reset()

Method Details

getAlgorithmName

public String getAlgorithmName()
Specified by:
getAlgorithmName in interface BlockCipher

getBlockSize

public int getBlockSize()
Specified by:
getBlockSize in interface BlockCipher

init

public void init(boolean encrypting,
                 CipherParameters params)
initialise a Serpent cipher.
Specified by:
init in interface BlockCipher
Parameters:
encrypting - whether or not we are for encryption.
params - the parameters required to set up the cipher.

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.
Specified by:
processBlock in interface BlockCipher
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.

reset

public void reset()
Specified by:
reset in interface BlockCipher