org.bouncycastle.crypto.engines
Class SerpentEngine
java.lang.Object
|
+--org.bouncycastle.crypto.engines.SerpentEngineBase
|
+--org.bouncycastle.crypto.engines.SerpentEngine
- All Implemented Interfaces:
- BlockCipher
- public final class SerpentEngine
- extends SerpentEngineBase
Serpent is a 128-bit 32-round block cipher with variable key lengths,
including 128, 192 and 256 bit keys conjectured to be at least as
secure as three-key triple-DES.
Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
candidate algorithm for the NIST AES Quest.
For full details see The Serpent home page
Method Summary |
protected void |
decryptBlock(byte[] input,
int inOff,
byte[] output,
int outOff)
Decrypt one block of ciphertext. |
protected void |
encryptBlock(byte[] input,
int inOff,
byte[] output,
int outOff)
Encrypt one block of plaintext. |
protected int[] |
makeWorkingKey(byte[] key)
Expand a user-supplied key material into a session key. |
Methods inherited from class org.bouncycastle.crypto.engines.SerpentEngineBase |
getAlgorithmName, getBlockSize, ib0, ib1, ib2, ib3, ib4, ib5, ib6, ib7, init, inverseLT, LT, processBlock, reset, rotateLeft, rotateRight, sb0, sb1, sb2, sb3, sb4, sb5, sb6, sb7 |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SerpentEngine
public SerpentEngine()
makeWorkingKey
protected int[] makeWorkingKey(byte[] key)
throws java.lang.IllegalArgumentException
- Expand a user-supplied key material into a session key.
- Overrides:
makeWorkingKey
in class SerpentEngineBase
- Parameters:
key
- The user-key bytes (multiples of 4) to use.- Throws:
java.lang.IllegalArgumentException
-
encryptBlock
protected void encryptBlock(byte[] input,
int inOff,
byte[] output,
int outOff)
- Encrypt one block of plaintext.
- Overrides:
encryptBlock
in class SerpentEngineBase
- Parameters:
input
- the array containing the input data.inOff
- offset into the in array the data starts at.output
- the array the output data will be copied into.outOff
- the offset into the out array the output will start at.
decryptBlock
protected void decryptBlock(byte[] input,
int inOff,
byte[] output,
int outOff)
- Decrypt one block of ciphertext.
- Overrides:
decryptBlock
in class SerpentEngineBase
- Parameters:
input
- the array containing the input data.inOff
- offset into the in array the data starts at.output
- the array the output data will be copied into.outOff
- the offset into the out array the output will start at.