public class RC6Engine extends java.lang.Object implements BlockCipher
Modifier and Type | Field and Description |
---|---|
private static int |
_noRounds |
private int[] |
_S |
private static int |
bytesPerWord |
private boolean |
forEncryption |
private static int |
LGW |
private static int |
P32 |
private static int |
Q32 |
private static int |
wordSize |
Constructor and Description |
---|
RC6Engine()
Create an instance of the RC6 encryption algorithm
and set some defaults
|
Modifier and Type | Method and Description |
---|---|
private int |
bytesToWord(byte[] src,
int srcOff) |
private int |
decryptBlock(byte[] in,
int inOff,
byte[] out,
int outOff) |
private int |
encryptBlock(byte[] in,
int inOff,
byte[] out,
int outOff) |
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 forEncryption,
CipherParameters params)
initialise a RC5-32 cipher.
|
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.
|
private int |
rotateLeft(int x,
int y)
Perform a left "spin" of the word.
|
private int |
rotateRight(int x,
int y)
Perform a right "spin" of the word.
|
private void |
setKey(byte[] key)
Re-key the cipher.
|
private void |
wordToBytes(int word,
byte[] dst,
int dstOff) |
private static final int wordSize
private static final int bytesPerWord
private static final int _noRounds
private int[] _S
private static final int P32
private static final int Q32
private static final int LGW
private boolean forEncryption
public RC6Engine()
public java.lang.String getAlgorithmName()
BlockCipher
getAlgorithmName
in interface BlockCipher
public int getBlockSize()
BlockCipher
getBlockSize
in interface BlockCipher
public void init(boolean forEncryption, 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 int processBlock(byte[] in, int inOff, byte[] out, int outOff)
BlockCipher
processBlock
in interface 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.public void reset()
BlockCipher
reset
in interface BlockCipher
private void setKey(byte[] key)
inKey
- the key to be usedprivate int encryptBlock(byte[] in, int inOff, byte[] out, int outOff)
private int decryptBlock(byte[] in, int inOff, byte[] out, int outOff)
private int rotateLeft(int x, int y)
x
- word to rotatey
- number of bits to rotate % wordSizeprivate int rotateRight(int x, int y)
x
- word to rotatey
- number of bits to rotate % wordSizeprivate int bytesToWord(byte[] src, int srcOff)
private void wordToBytes(int word, byte[] dst, int dstOff)