|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.bouncycastle.crypto.engines.CamelliaEngine
public class CamelliaEngine
Camellia - based on RFC 3713.
Field Summary | |
---|---|
private long |
_k1
|
private long |
_k10
|
private long |
_k11
|
private long |
_k12
|
private long |
_k13
|
private long |
_k14
|
private long |
_k15
|
private long |
_k16
|
private long |
_k17
|
private long |
_k18
|
private long |
_k19
|
private long |
_k2
|
private long |
_k20
|
private long |
_k21
|
private long |
_k22
|
private long |
_k23
|
private long |
_k24
|
private long |
_k3
|
private long |
_k4
|
private long |
_k5
|
private long |
_k6
|
private long |
_k7
|
private long |
_k8
|
private long |
_k9
|
private long |
_ke1
|
private long |
_ke2
|
private long |
_ke3
|
private long |
_ke4
|
private long |
_ke5
|
private long |
_ke6
|
private boolean |
_keyIs128
|
private long |
_kw1
|
private long |
_kw2
|
private long |
_kw3
|
private long |
_kw4
|
private static int |
BLOCK_SIZE
|
private boolean |
initialised
|
private static long |
MASK32
|
private static long |
MASK8
|
private byte[] |
SBOX1
|
private byte[] |
SBOX2
|
private byte[] |
SBOX3
|
private byte[] |
SBOX4
|
private static long |
SIGMA1
|
private static long |
SIGMA2
|
private static long |
SIGMA3
|
private static long |
SIGMA4
|
private static long |
SIGMA5
|
private static long |
SIGMA6
|
Constructor Summary | |
---|---|
CamelliaEngine()
|
Method Summary | |
---|---|
private long |
bytesToWord(byte[] src,
int srcOff)
|
private long |
f(long in,
long ke)
|
private long |
fl(long in,
long ke)
|
private long |
flInv(long in,
long ke)
|
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 the cipher. |
private long |
lRot128high(long a,
long b,
int rotation)
|
private long |
lRot128low(long a,
long b,
int rotation)
|
private int |
lRot32(int value,
int rotation)
|
private byte |
lRot8(byte value,
int rotation)
|
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. |
private int |
processBlock128(byte[] in,
int inOff,
byte[] out,
int outOff)
|
private int |
processBlock192or256(byte[] in,
int inOff,
byte[] out,
int outOff)
|
void |
reset()
Reset the cipher. |
private void |
setKey(boolean forEncryption,
byte[] key)
|
private void |
wordToBytes(long word,
byte[] dst,
int dstOff)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private boolean initialised
private boolean _keyIs128
private static final int BLOCK_SIZE
private static final long MASK8
private static final long MASK32
private static final long SIGMA1
private static final long SIGMA2
private static final long SIGMA3
private static final long SIGMA4
private static final long SIGMA5
private static final long SIGMA6
private long _kw1
private long _kw2
private long _kw3
private long _kw4
private long _k1
private long _k2
private long _k3
private long _k4
private long _k5
private long _k6
private long _k7
private long _k8
private long _k9
private long _k10
private long _k11
private long _k12
private long _k13
private long _k14
private long _k15
private long _k16
private long _k17
private long _k18
private long _k19
private long _k20
private long _k21
private long _k22
private long _k23
private long _k24
private long _ke1
private long _ke2
private long _ke3
private long _ke4
private long _ke5
private long _ke6
private final byte[] SBOX1
private final byte[] SBOX2
private final byte[] SBOX3
private final byte[] SBOX4
Constructor Detail |
---|
public CamelliaEngine()
Method Detail |
---|
private void setKey(boolean forEncryption, byte[] key)
public void init(boolean forEncryption, CipherParameters params) throws java.lang.IllegalArgumentException
BlockCipher
init
in interface BlockCipher
forEncryption
- if true the cipher is initialised for
encryption, if false for decryption.params
- the key and other data required by the cipher.
java.lang.IllegalArgumentException
- if the params argument is
inappropriate.public java.lang.String getAlgorithmName()
BlockCipher
getAlgorithmName
in interface BlockCipher
public int getBlockSize()
BlockCipher
getBlockSize
in interface BlockCipher
public int processBlock(byte[] in, int inOff, byte[] out, int outOff) throws DataLengthException, java.lang.IllegalStateException
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.
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
private byte lRot8(byte value, int rotation)
private int lRot32(int value, int rotation)
private long lRot128high(long a, long b, int rotation)
private long lRot128low(long a, long b, int rotation)
private long fl(long in, long ke)
private long flInv(long in, long ke)
private long f(long in, long ke)
private long bytesToWord(byte[] src, int srcOff)
private void wordToBytes(long word, byte[] dst, int dstOff)
private int processBlock128(byte[] in, int inOff, byte[] out, int outOff) throws DataLengthException, java.lang.IllegalStateException
DataLengthException
java.lang.IllegalStateException
private int processBlock192or256(byte[] in, int inOff, byte[] out, int outOff) throws DataLengthException, java.lang.IllegalStateException
DataLengthException
java.lang.IllegalStateException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |