org.bouncycastle.crypto.engines

Class IDEAEngine

public class IDEAEngine extends Object implements BlockCipher

A class that provides a basic International Data Encryption Algorithm (IDEA) engine.

This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM" implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (baring 1 typo at the end of the mulinv function!).

It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/

Note: This algorithm is patented in the USA, Japan, and Europe including at least Austria, France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland and the United Kingdom. Non-commercial use is free, however any commercial products are liable for royalties. Please see www.mediacrypt.com for further details. This announcement has been included at the request of the patent holders.

Field Summary
protected static intBLOCK_SIZE
Constructor Summary
IDEAEngine()
standard constructor.
Method Summary
StringgetAlgorithmName()
intgetBlockSize()
voidinit(boolean forEncryption, CipherParameters params)
initialise an IDEA cipher.
intprocessBlock(byte[] in, int inOff, byte[] out, int outOff)
voidreset()

Field Detail

BLOCK_SIZE

protected static final int BLOCK_SIZE

Constructor Detail

IDEAEngine

public IDEAEngine()
standard constructor.

Method Detail

getAlgorithmName

public String getAlgorithmName()

getBlockSize

public int getBlockSize()

init

public void init(boolean forEncryption, CipherParameters params)
initialise an IDEA cipher.

Parameters: forEncryption 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 int processBlock(byte[] in, int inOff, byte[] out, int outOff)

reset

public void reset()