For the latest news and information visit
The GNU Crypto project

gnu.crypto.cipher
Class Square

java.lang.Object
  |
  +--gnu.crypto.cipher.BaseCipher
        |
        +--gnu.crypto.cipher.Square
All Implemented Interfaces:
java.lang.Cloneable, IBlockCipher, IBlockCipherSpi

public final class Square
extends BaseCipher

Square is a 128-bit key, 128-bit block cipher algorithm developed by Joan Daemen, Lars Knudsen and Vincent Rijmen.

References:

  1. The block cipher Square.
    Joan Daemen, Lars Knudsen and Vincent Rijmen.

Version:
$Revision: 1.6 $

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
Square()
          Trivial 0-arguments constructor.
 
Method Summary
(package private) static void ()
           
 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.
 java.util.Iterator keySizes()
          Returns an Iterator over the supported key sizes.
 java.lang.Object makeKey(byte[] uk, 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
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Square

public Square()
Trivial 0-arguments constructor.
Method Detail

static void ()

clone

public java.lang.Object clone()
Description copied from interface: IBlockCipher

Returns a clone of this instance.

Overrides:
clone in class BaseCipher
Following copied from interface: gnu.crypto.cipher.IBlockCipher
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.

Following copied from interface: gnu.crypto.cipher.IBlockCipher
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.

Following copied from interface: gnu.crypto.cipher.IBlockCipher
Returns:
an Iterator over the supported key sizes.

makeKey

public java.lang.Object makeKey(byte[] uk,
                                int bs)
                         throws java.security.InvalidKeyException
Description copied from interface: IBlockCipherSpi

Expands a user-supplied key material into a session key for a designated block size.

Following copied from interface: gnu.crypto.cipher.IBlockCipherSpi
Parameters:
k - the user-supplied key material.
bs - the desired block size in bytes.
Returns:
an Object encapsulating the session key.
Throws:
java.lang.IllegalArgumentException - if the block size is invalid.
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: IBlockCipherSpi

Encrypts exactly one block of plaintext.

Following copied from interface: gnu.crypto.cipher.IBlockCipherSpi
Parameters:
in - the plaintext.
inOffset - index of in from which to start considering data.
out - the ciphertext.
outOffset - index of out from which to store the result.
k - the session key to use.
bs - the block size to use.
Throws:
java.lang.IllegalArgumentException - if the block size is invalid.
ArrayIndexOutOfBoundsException - if there is not enough room in either the plaintext or ciphertext buffers.

decrypt

public void decrypt(byte[] in,
                    int i,
                    byte[] out,
                    int j,
                    java.lang.Object k,
                    int bs)
Description copied from interface: IBlockCipherSpi

Decrypts exactly one block of ciphertext.

Following copied from interface: gnu.crypto.cipher.IBlockCipherSpi
Parameters:
in - the ciphertext.
inOffset - index of in from which to start considering data.
out - the plaintext.
outOffset - index of out from which to store the result.
k - the session key to use.
bs - the block size to use.
Throws:
java.lang.IllegalArgumentException - if the block size is invalid.
ArrayIndexOutOfBoundsException - if there is not enough room in either the plaintext or ciphertext buffers.

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

Overrides:
selfTest in class BaseCipher
Following copied from interface: gnu.crypto.cipher.IBlockCipher
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 Free Software Foundation, Inc.. All Rights Reserved.