|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--xjava.security.IJCE_Traceable | +--xjava.security.Cipher | +--cryptix.provider.cipher.CAST5
A subclass of Cipher to implement the CAST5 (a.k.a. CAST-128) algorithm in Java, as per RFC 2144 dated May 1997.
In this RFC, Carlisle Adams (the CA in CAST, ST standing for Stafford Tavares) describes CAST5 as:
"...a DES-like Substitution-Permutation Network (SPN) cryptosystem which appears to have good resistance to differential cryptanalysis, linear cryptanalysis, and related-key cryptanalysis. This cipher also possesses a number of other desirable cryptographic properties, including avalanche, Strict Avalanche Criterion (SAC), Bit Independence Criterion (BIC), no complementation property, and an absence of weak and semi-weak keys."
CAST5 is a symmetric block cipher with a block-size of 8 bytes and a variable key-size of up to 128 bits. Its authors and their employer (Entrust Technologies, a Nortel majority-owned company) made it available worldwide on a royalty-free basis for commercial and non-commercial uses.
The CAST5 encryption algorithm has been designed to allow a key size that can vary from 40 bits to 128 bits, in 8-bit increments (that is, the allowable key sizes are 40, 48, 56, 64, ..., 112, 120, and 128 bits. For variable keysize operation, the specification is as follows:
References:
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.6 $
Fields inherited from class xjava.security.Cipher |
DECRYPT, ENCRYPT, UNINITIALIZED |
Fields inherited from class xjava.security.IJCE_Traceable |
tracing |
Constructor Summary | |
CAST5()
Constructs a CAST5 cipher object, in the UNINITIALIZED state. |
Method Summary | |
java.lang.Object |
clone()
Always throws a CloneNotSupportedException (cloning of ciphers is not supported for security reasons). |
protected int |
engineBlockSize()
SPI: Returns the length of an input block, in bytes. |
protected void |
engineInitDecrypt(java.security.Key key)
SPI: Initializes this cipher for decryption, using the specified key. |
protected void |
engineInitEncrypt(java.security.Key key)
SPI: Initializes this cipher for encryption, using the specified key. |
protected int |
engineUpdate(byte[] in,
int inOffset,
int inLen,
byte[] out,
int outOffset)
SPI: This is the main engine method for updating data. |
protected void |
finalize()
Cleans up resources used by this instance, if necessary. |
static LinkStatus |
getLinkStatus()
Gets an object representing the native linking status of this class. |
Methods inherited from class xjava.security.IJCE_Traceable |
|
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public CAST5()
java.security.Cipher#UNINITIALIZED
Method Detail |
public static LinkStatus getLinkStatus()
protected final void finalize()
finalize
in class java.lang.Object
public final java.lang.Object clone() throws java.lang.CloneNotSupportedException
clone
in class Cipher
xjava.security.Cipher
java.lang.CloneNotSupportedException
- if the cipher is not cloneable.protected int engineBlockSize()
engineBlockSize
in class Cipher
protected void engineInitEncrypt(java.security.Key key) throws java.security.KeyException
engineInitEncrypt
in class Cipher
key
- the key to use for encryption.java.security.KeyException
- when one of the following occurs:protected void engineInitDecrypt(java.security.Key key) throws java.security.KeyException
engineInitDecrypt
in class Cipher
key
- the key to use for decryption.java.security.KeyException
- when one of the following occurs:protected int engineUpdate(byte[] in, int inOffset, int inLen, byte[] out, int outOffset)
in and out may be the same array, and the input and output regions may overlap.
engineUpdate
in class Cipher
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.CryptixException
- if the native library is being used, and it
reports an error.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |