public class

IDEAEngine

extends Object
implements BlockCipher
java.lang.Object
   ↳ org.bouncycastle.crypto.engines.IDEAEngine

Class Overview

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 1: 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.

Note 2: Due to the requests concerning the above, this algorithm is now only included in the extended Bouncy Castle provider and JCE signed jars. It is not included in the default distributions.

Summary

Constants
int BLOCK_SIZE
Public Constructors
IDEAEngine()
standard constructor.
Public Methods
String getAlgorithmName()
Return the name of the algorithm the cipher implements.
int getBlockSize()
Return the block size for this cipher (in bytes).
void init(boolean forEncryption, CipherParameters params)
initialise an IDEA 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()
Reset the cipher.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.bouncycastle.crypto.BlockCipher

Constants

protected static final int BLOCK_SIZE

Constant Value: 8 (0x00000008)

Public Constructors

public IDEAEngine ()

standard constructor.

Public Methods

public String getAlgorithmName ()

Return the name of the algorithm the cipher implements.

Returns
  • the name of the algorithm the cipher implements.

public int getBlockSize ()

Return the block size for this cipher (in bytes).

Returns
  • the block size for this cipher in bytes.

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.

public 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.

public void reset ()

Reset the cipher. After resetting the cipher is in the same state as it was after the last init (if there was one).