For the latest news and information visit
The GNU Crypto project

gnu.crypto.cipher
Class Rijndael

java.lang.Object
  extended by gnu.crypto.cipher.BaseCipher
      extended by gnu.crypto.cipher.Rijndael
All Implemented Interfaces:
IBlockCipher, IBlockCipherSpi, Cloneable

public final class Rijndael
extends BaseCipher

Rijndael --pronounced Reindaal-- is the AES. It is a variable block-size (128-, 192- and 256-bit), variable key-size (128-, 192- and 256-bit) symmetric key block cipher.

References:

  1. The Rijndael Block Cipher - AES Proposal.
    Vincent Rijmen and Joan Daemen.

Version:
$Revision: 1.9 $

Field Summary
 
Fields inherited from class gnu.crypto.cipher.BaseCipher
currentBlockSize, currentKey, defaultBlockSize, defaultKeySize, lock, name
 
Fields inherited from interface gnu.crypto.cipher.IBlockCipher
CIPHER_BLOCK_SIZE, KEY_MATERIAL
 
Constructor Summary
Rijndael()
          Trivial 0-arguments constructor.
 
Method Summary
 Iterator blockSizes()
          Returns an Iterator over the supported block sizes.
 Object clone()
          Returns a clone of this instance.
 void decrypt(byte[] in, int i, byte[] out, int j, Object k, int bs)
           
 void encrypt(byte[] in, int i, byte[] out, int j, Object k, int bs)
           
static int getRounds(int ks, int bs)
          Returns the number of rounds for a given Rijndael's key and block sizes.
 Iterator keySizes()
          Returns an Iterator over the supported key sizes.
 Object makeKey(byte[] k, int bs)
          Expands a user-supplied key material into a session key for a designated block size.
 boolean selfTest()
          A correctness test that consists of basic symmetric encryption / decryption test(s) for all supported block and key sizes, as well as one (1) variable key Known Answer Test (KAT).
 
Methods inherited from class gnu.crypto.cipher.BaseCipher
currentBlockSize, decryptBlock, defaultBlockSize, defaultKeySize, encryptBlock, init, name, reset, testKat, testKat
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Rijndael

public Rijndael()
Trivial 0-arguments constructor.

Method Detail

getRounds

public static int getRounds(int ks,
                            int bs)

Returns the number of rounds for a given Rijndael's key and block sizes.

Parameters:
ks - the size of the user key material in bytes.
bs - the desired block size in bytes.
Returns:
the number of rounds for a given Rijndael's key and block sizes.

clone

public Object clone()
Description copied from interface: IBlockCipher

Returns a clone of this instance.

Specified by:
clone in interface IBlockCipher
Specified by:
clone in class BaseCipher
Returns:
a clone copy of this instance.

blockSizes

public Iterator blockSizes()
Description copied from interface: IBlockCipher

Returns an Iterator over the supported block sizes. Each element returned by this object is an Integer.

Returns:
an Iterator over the supported block sizes.

keySizes

public Iterator keySizes()
Description copied from interface: IBlockCipher

Returns an Iterator over the supported key sizes. Each element returned by this object is an Integer.

Returns:
an Iterator over the supported key sizes.

makeKey

public Object makeKey(byte[] k,
                      int bs)
               throws InvalidKeyException
Expands a user-supplied key material into a session key for a designated block size.

Parameters:
k - the 128/192/256-bit user-key to use.
bs - the block size in bytes of this Rijndael.
Returns:
an Object encapsulating the session key.
Throws:
IllegalArgumentException - if the block size is not 16, 24 or 32.
InvalidKeyException - if the key data is invalid.

encrypt

public void encrypt(byte[] in,
                    int i,
                    byte[] out,
                    int j,
                    Object k,
                    int bs)

decrypt

public void decrypt(byte[] in,
                    int i,
                    byte[] out,
                    int j,
                    Object k,
                    int bs)

selfTest

public boolean selfTest()
Description copied from interface: IBlockCipher

A correctness test that consists of basic symmetric encryption / decryption test(s) for all supported block and key sizes, as well as one (1) variable key Known Answer Test (KAT).

Specified by:
selfTest in interface IBlockCipher
Specified by:
selfTest in interface IBlockCipherSpi
Overrides:
selfTest in class BaseCipher
Returns:
true if the implementation passes simple correctness tests. Returns false otherwise.

For the latest news and information visit
The GNU Crypto project

Copyright © 2001, 2002, 2003 Free Software Foundation, Inc. All Rights Reserved.