Rijndael (GNU cryptographic primitives and tools)
Keywords: gnu.crypto.cipher.Rijndael,Rijndael class

Overview | Package | Class | Tree | Serialized | Deprecated | Index | Help
| For the latest news and information visit The GNU Crypto project
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## gnu.crypto.cipher
Class Rijndael

    java.lang.Object
      |
      +--gnu.crypto.cipher.BaseCipher
            |
            +--gnu.crypto.cipher.Rijndael

All Implemented Interfaces:
  java.lang.Cloneable, IBlockCipher, gnu.crypto.cipher.IBlockCipherSpi

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.

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
`java.util.Iterator` | `blockSizes()` Returns an `Iterator` over the supported block sizes.
`java.lang.Object` | `clone()` Returns a clone of this instance.
`void` | `decrypt(byte[] in, int i, byte[] out, int j, java.lang.Object k, int bs)` Decrypts exactly one block of ciphertext.
`void` | `encrypt(byte[] in, int i, byte[] out, int j, java.lang.Object k, int bs)` Encrypts exactly one block of plaintext.
`static int` | `getRounds(int ks, int bs)` Returns the number of rounds for a given Rijndael's key and block sizes.
`java.util.Iterator` | `keySizes()` Returns an `Iterator` over the supported key sizes.
`java.lang.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 java.lang.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 java.util.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 java.util.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 java.lang.Object makeKey(byte[] k,
                                    int bs)
                             throws java.security.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:
    `java.lang.IllegalArgumentException` - if the block size is not 16, 24 or 32.
    `java.security.InvalidKeyException` - if the key data is invalid.

### encrypt

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

  Description copied from interface: `gnu.crypto.cipher.IBlockCipherSpi`

  Encrypts exactly one block of plaintext.

  Parameters:
    `in` - the plaintext.
    `i` - index of `in` from which to start considering data.
    `out` - the ciphertext.
    `j` - index of `out` from which to store the result.
    `k` - the session key to use.
    `bs` - the block size to use.

### decrypt

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

  Description copied from interface: `gnu.crypto.cipher.IBlockCipherSpi`

  Decrypts exactly one block of ciphertext.

  Parameters:
    `in` - the ciphertext.
    `i` - index of `in` from which to start considering data.
    `out` - the plaintext.
    `j` - index of `out` from which to store the result.
    `k` - the session key to use.
    `bs` - the block size to use.

### 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`
  Overrides:
    `selfTest` in class `BaseCipher`
  Returns:
    `true` if the implementation passes simple correctness tests. Returns `false` otherwise.

Overview | Package | Class | Tree | Serialized | Deprecated | Index | Help
| For the latest news and information visit The GNU Crypto project
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001, 2002, 2003, 2004 Free Software Foundation, Inc.