edu.vt.middleware.crypt.symmetric
Class Blowfish

java.lang.Object
  extended by edu.vt.middleware.crypt.AbstractAlgorithm
      extended by edu.vt.middleware.crypt.AbstractEncryptionAlgorithm
          extended by edu.vt.middleware.crypt.symmetric.SymmetricAlgorithm
              extended by edu.vt.middleware.crypt.symmetric.Blowfish
All Implemented Interfaces:
Algorithm, EncryptionAlgorithm

public class Blowfish
extends SymmetricAlgorithm

Provider of symmetric encryption/decryption operations using Blowfish cipher.

Version:
$Revision: 3 $
Author:
Middleware Services

Field Summary
static String ALGORITHM
          Algorithm name.
static int DEFAULT_KEY_LENGTH
          Default key size for this algorithm in bits.
static int[] KEY_LENGTHS
          Available key lengths in bits.
static int MAX_KEY_LENGTH
          Maximum key length in bits.
static int MIN_KEY_LENGTH
          Minimum key length in bits.
 
Fields inherited from class edu.vt.middleware.crypt.symmetric.SymmetricAlgorithm
DEFAULT_MODE, DEFAULT_PADDING, iv, paramSpec
 
Fields inherited from class edu.vt.middleware.crypt.AbstractEncryptionAlgorithm
cipher, cipherMode, key, mode, padding
 
Fields inherited from class edu.vt.middleware.crypt.AbstractAlgorithm
algorithm, logger, randomByteSize, randomProvider
 
Constructor Summary
Blowfish()
          Creates a default CAST5 symmetric encryption algorithm using CBC mode and PKCS5 padding.
Blowfish(String mode, String padding)
          Creates a default Blowfish symmetric encryption algorithm using the given mode and padding style.
 
Method Summary
 int[] getAllowedKeyLengths()
          Gets an array of key lengths that are acceptable for the cipher algorithm.
 int getDefaultKeyLength()
          Gets the default key length for this algorithm.
 int getMaxKeyLength()
          Gets the maximum key length for this algorithm.
 int getMinKeyLength()
          Gets the minimum key length for this algorithm.
 boolean isValidKeyLength(int bitLength)
          Determines whether the given key size in bits is valid for this symmetric cipher algorithm.
 
Methods inherited from class edu.vt.middleware.crypt.symmetric.SymmetricAlgorithm
generateKey, generateKey, generateKey, getAlgorithmParameterSpec, getChunkSize, getRandomIV, hasIV, newInstance, newInstance, newInstance, newInstance, setIV
 
Methods inherited from class edu.vt.middleware.crypt.AbstractEncryptionAlgorithm
crypt, crypt, decrypt, decrypt, decrypt, encrypt, encrypt, encrypt, getBlockSize, getCipherMode, getMode, getPadding, init, initCipher, initDecrypt, initEncrypt, setKey, toString
 
Methods inherited from class edu.vt.middleware.crypt.AbstractAlgorithm
getAlgorithm, getRandomData, setRandomProvider
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.vt.middleware.crypt.Algorithm
getAlgorithm, getRandomData, setRandomProvider
 

Field Detail

ALGORITHM

public static final String ALGORITHM
Algorithm name.

See Also:
Constant Field Values

MIN_KEY_LENGTH

public static final int MIN_KEY_LENGTH
Minimum key length in bits.

See Also:
Constant Field Values

MAX_KEY_LENGTH

public static final int MAX_KEY_LENGTH
Maximum key length in bits.

See Also:
Constant Field Values

DEFAULT_KEY_LENGTH

public static final int DEFAULT_KEY_LENGTH
Default key size for this algorithm in bits.

See Also:
Constant Field Values

KEY_LENGTHS

public static final int[] KEY_LENGTHS
Available key lengths in bits.

Constructor Detail

Blowfish

public Blowfish()
Creates a default CAST5 symmetric encryption algorithm using CBC mode and PKCS5 padding.


Blowfish

public Blowfish(String mode,
                String padding)
Creates a default Blowfish symmetric encryption algorithm using the given mode and padding style.

Parameters:
mode - Cipher mode name.
padding - Cipher padding style name.
Method Detail

getDefaultKeyLength

public int getDefaultKeyLength()
Gets the default key length for this algorithm.

Overrides:
getDefaultKeyLength in class SymmetricAlgorithm
Returns:
Default key length in bits.

getAllowedKeyLengths

public int[] getAllowedKeyLengths()
Gets an array of key lengths that are acceptable for the cipher algorithm. By convention the lengths are returned in descending sort order from longest to shortest. There are some ciphers (e.g. Blowfish) that allow key sizes to be any integral value in a range; in those cases only key sizes that are multiple of the cipher block length are returned. Thus this method always returns lengths that are acceptable, but not necessarily all possible lengths.

Overrides:
getAllowedKeyLengths in class SymmetricAlgorithm
Returns:
Array of key lengths in bits.

getMinKeyLength

public int getMinKeyLength()
Gets the minimum key length for this algorithm.

Overrides:
getMinKeyLength in class SymmetricAlgorithm
Returns:
Minimum key length in bits.

getMaxKeyLength

public int getMaxKeyLength()
Gets the maximum key length for this algorithm.

Overrides:
getMaxKeyLength in class SymmetricAlgorithm
Returns:
Maximum key length in bits.

isValidKeyLength

public boolean isValidKeyLength(int bitLength)
Determines whether the given key size in bits is valid for this symmetric cipher algorithm.

Overrides:
isValidKeyLength in class SymmetricAlgorithm
Parameters:
bitLength - Key size in bits.
Returns:
True if given value is a valid key size for this algorithm, false otherwise.


Copyright © 2003-2011 Virginia Tech. All Rights Reserved.