org.bouncycastle.crypto.engines

Class IDEAEngine

Implemented Interfaces:
BlockCipher

public class IDEAEngine
extends java.lang.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 int
BLOCK_SIZE

Constructor Summary

IDEAEngine()
standard constructor.

Method Summary

String
getAlgorithmName()
int
getBlockSize()
void
init(boolean forEncryption, CipherParameters params)
initialise an IDEA cipher.
int
processBlock(byte[] in, int inOff, byte[] out, int outOff)
void
reset()

Field Details

BLOCK_SIZE

protected static final int BLOCK_SIZE

Field Value:
8

Constructor Details

IDEAEngine

public IDEAEngine()
standard constructor.

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 forEncryption,
                 CipherParameters params)
initialise an IDEA cipher.
Specified by:
init in interface BlockCipher

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


processBlock

public int processBlock(byte[] in,
                        int inOff,
                        byte[] out,
                        int outOff)
Specified by:
processBlock in interface BlockCipher


reset

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