All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class cryptix.provider.cipher.IDEA

java.lang.Object
   |
   +----java.security.IJCE_Traceable
           |
           +----java.security.Cipher
                   |
                   +----cryptix.provider.cipher.IDEA

public final class IDEA
extends Cipher
implements SymmetricCipher
IDEA is a block cipher with a key length of 16 bytes and a block length of 8 bytes. It is highly popular, being the original cipher in PGP, and has received a lot of cryptanalytic attention.

IDEA was written by Dr. X. Lai and Prof. J. Massey.

References:

  1. See the IDEA page for more details.

  2. The algorithm is subject to patent claims by Ascom Systec Ltd (applied for May 1991), and is licensable.

Copyright © 1995-1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.3 $

Author:
Systemics Ltd, David Hopwood, Raif S. Naffah

Constructor Index

 o IDEA()
Constructs an IDEA cipher object, in the UNINITIALIZED state.

Method Index

 o clone()
Always throws a CloneNotSupportedException (cloning of ciphers is not supported for security reasons).
 o engineBlockSize()
SPI: Returns the length of an input block, in bytes.
 o engineInitDecrypt(Key)
SPI: Initializes this cipher for decryption, using the specified key.
 o engineInitEncrypt(Key)
SPI: Initializes this cipher for encryption, using the specified key.
 o engineUpdate(byte[], int, int, byte[], int)
SPI: This is the main engine method for updating data.
 o finalize()
Cleans up resources used by this instance, if necessary.
 o getLinkStatus()
Gets an object representing the native linking status of this class.
 o main(String[])
Entry point for very basic self_test.
 o self_test()
Do some basic tests.

Constructors

 o IDEA
 public IDEA()
Constructs an IDEA cipher object, in the UNINITIALIZED state. This calls the Cipher constructor with implBuffering false, implPadding false and the provider set to "Cryptix".

Methods

 o getLinkStatus
 public static LinkStatus getLinkStatus()
Gets an object representing the native linking status of this class.

 o finalize
 protected final void finalize()
Cleans up resources used by this instance, if necessary.

Overrides:
finalize in class Object
 o clone
 public final Object clone() throws CloneNotSupportedException
Always throws a CloneNotSupportedException (cloning of ciphers is not supported for security reasons).

Overrides:
clone in class Cipher
 o engineBlockSize
 protected int engineBlockSize()
SPI: Returns the length of an input block, in bytes.

Returns:
the length in bytes of an input block for this cipher.
Overrides:
engineBlockSize in class Cipher
 o engineInitEncrypt
 protected void engineInitEncrypt(Key key) throws InvalidKeyException, CryptixException
SPI: Initializes this cipher for encryption, using the specified key.

Parameters:
key - the key to use for encryption.
Throws: InvalidKeyException
if one of the following occurs:
  • key.getEncoded() == null;
  • The length of the user key array is not KEY_LENGTH.
Overrides:
engineInitEncrypt in class Cipher
 o engineInitDecrypt
 protected void engineInitDecrypt(Key key) throws InvalidKeyException, CryptixException
SPI: Initializes this cipher for decryption, using the specified key.

Parameters:
key - the key to use for encryption.
Throws: InvalidKeyException
if one of the following occurs:
  • key.getEncoded() == null;
  • The length of the user key array is not KEY_LENGTH.
Overrides:
engineInitDecrypt in class Cipher
 o engineUpdate
 protected int engineUpdate(byte in[],
                            int inOffset,
                            int inLen,
                            byte out[],
                            int outOffset)
SPI: This is the main engine method for updating data.

in and out may be the same array, and the input and output regions may overlap.

Parameters:
in - the input data.
inOffset - the offset into in specifying where the data starts.
inLen - the length of the subarray.
out - the output array.
outOffset - the offset indicating where to start writing into the out array.
Returns:
the number of bytes written.
Throws: CryptixException
if the native library is being used, and it reports an error.
Overrides:
engineUpdate in class Cipher
 o main
 public static void main(String argv[])
Entry point for very basic self_test.

 o self_test
 public static void self_test() throws Throwable
Do some basic tests. Three of the certification data are included only, no output, success or exception. If you want more, write a test program!

See Also:
IDEA

All Packages  Class Hierarchy  This Package  Previous  Next  Index