Bouncy Castle Cryptography 1.11 API Specification: Class CAST5Engine
|
Bouncy Castle Cryptography 1.11 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.bouncycastle.crypto.engines.CAST5Engine
A class that provides CAST key encryption operations, such as encoding data and generating keys. All the algorithms herein are from the Internet RFC's RFC2144 - CAST5 (64bit block, 40-128bit key) RFC2612 - CAST6 (128bit block, 128-256bit key) and implement a simplified cryptography interface.
Field Summary | |
protected int[] |
_Km
|
protected int[] |
_Kr
|
protected static int |
BLOCK_SIZE
|
protected static int |
M32
|
protected static int |
MAX_ROUNDS
|
protected static int |
RED_ROUNDS
|
protected static int[] |
S1
|
protected static int[] |
S2
|
protected static int[] |
S3
|
protected static int[] |
S4
|
protected static int[] |
S5
|
protected static int[] |
S6
|
protected static int[] |
S7
|
protected static int[] |
S8
|
Constructor Summary | |
CAST5Engine()
|
Method Summary | |
protected void |
Bits32ToBytes(int in,
byte[] b,
int offset)
|
protected void |
Bits32ToInts(int in,
int[] b,
int offset)
|
protected int |
BytesTo32bits(byte[] b,
int i)
|
protected void |
CAST_Decipher(int L16,
int R16,
int[] result)
|
protected void |
CAST_Encipher(int L0,
int R0,
int[] result)
Does the 16 rounds to encrypt the block. |
protected int |
decryptBlock(byte[] src,
int srcIndex,
byte[] dst,
int dstIndex)
Decrypt the given input starting at the given offset and place the result in the provided buffer starting at the given offset. |
protected int |
encryptBlock(byte[] src,
int srcIndex,
byte[] dst,
int dstIndex)
Encrypt the given input starting at the given offset and place the result in the provided buffer starting at the given offset. |
protected int |
F1(int D,
int Kmi,
int Kri)
The first of the three processing functions for the encryption and decryption. |
protected int |
F2(int D,
int Kmi,
int Kri)
The second of the three processing functions for the encryption and decryption. |
protected int |
F3(int D,
int Kmi,
int Kri)
The third of the three processing functions for the encryption and decryption. |
java.lang.String |
getAlgorithmName()
Return the name of the algorithm the cipher implements. |
int |
getBlockSize()
Return the block size for this cipher (in bytes). |
void |
init(boolean encrypting,
CipherParameters params)
initialise a CAST cipher. |
protected int |
IntsTo32bits(int[] b,
int i)
|
int |
processBlock(byte[] in,
int inOff,
byte[] out,
int outOff)
Process one block of input from the array in and write it to the out array. |
void |
reset()
Reset the cipher. |
protected void |
setKey(byte[] key)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected static final int M32
protected static final int[] S1
protected static final int[] S2
protected static final int[] S3
protected static final int[] S4
protected static final int[] S5
protected static final int[] S6
protected static final int[] S7
protected static final int[] S8
protected static final int MAX_ROUNDS
protected static final int RED_ROUNDS
protected static final int BLOCK_SIZE
protected int[] _Kr
protected int[] _Km
Constructor Detail |
public CAST5Engine()
Method Detail |
public void init(boolean encrypting, CipherParameters params)
init
in interface BlockCipher
forEncryption
- whether or not we are for encryption.params
- the parameters required to set up the cipher.java.lang.IllegalArgumentException
- if the params argument is
inappropriate.public java.lang.String getAlgorithmName()
BlockCipher
getAlgorithmName
in interface BlockCipher
org.bouncycastle.crypto.BlockCipher
public int processBlock(byte[] in, int inOff, byte[] out, int outOff)
BlockCipher
processBlock
in interface BlockCipher
org.bouncycastle.crypto.BlockCipher
in
- the array containing the input data.inOff
- offset into the in array the data starts at.out
- the array the output data will be copied into.outOff
- the offset into the out array the output will start at.DataLengthException
- if there isn't enough data in in, or
space in out.java.lang.IllegalStateException
- if the cipher isn't initialised.public void reset()
BlockCipher
reset
in interface BlockCipher
public int getBlockSize()
BlockCipher
getBlockSize
in interface BlockCipher
org.bouncycastle.crypto.BlockCipher
protected void setKey(byte[] key)
protected int encryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
src
- The plaintext buffersrcIndex
- An offset into srcdst
- The ciphertext bufferdstIndex
- An offset into dstprotected int decryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
src
- The plaintext buffersrcIndex
- An offset into srcdst
- The ciphertext bufferdstIndex
- An offset into dstprotected final int F1(int D, int Kmi, int Kri)
D
- the input to be processedKmi
- the mask to be used from Km[n]Kri
- the rotation value to be usedprotected final int F2(int D, int Kmi, int Kri)
D
- the input to be processedKmi
- the mask to be used from Km[n]Kri
- the rotation value to be usedprotected final int F3(int D, int Kmi, int Kri)
D
- the input to be processedKmi
- the mask to be used from Km[n]Kri
- the rotation value to be usedprotected final void CAST_Encipher(int L0, int R0, int[] result)
L0
- the LH-32bits of the plaintext blockR0
- the RH-32bits of the plaintext blockprotected final void CAST_Decipher(int L16, int R16, int[] result)
protected final void Bits32ToInts(int in, int[] b, int offset)
protected final int IntsTo32bits(int[] b, int i)
protected final void Bits32ToBytes(int in, byte[] b, int offset)
protected final int BytesTo32bits(byte[] b, int i)
|
Bouncy Castle Cryptography 1.11 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |