Package org.bouncycastle.crypto.engines
Class ISAACEngine
- java.lang.Object
-
- org.bouncycastle.crypto.engines.ISAACEngine
-
- All Implemented Interfaces:
StreamCipher
public class ISAACEngine extends java.lang.Object implements StreamCipher
Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count). see: https://www.burtleburtle.net/bob/rand/isaacafa.html
-
-
Constructor Summary
Constructors Constructor Description ISAACEngine()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getAlgorithmName()
Return the name of the algorithm the cipher implements.void
init(boolean forEncryption, CipherParameters params)
initialise an ISAAC cipher.int
processBytes(byte[] in, int inOff, int len, byte[] out, int outOff)
process a block of bytes from in putting the result into out.void
reset()
reset the cipher.byte
returnByte(byte in)
encrypt/decrypt a single byte returning the result.
-
-
-
Method Detail
-
init
public void init(boolean forEncryption, CipherParameters params)
initialise an ISAAC cipher.- Specified by:
init
in interfaceStreamCipher
- Parameters:
forEncryption
- whether or not we are for encryption.params
- the parameters required to set up the cipher.- Throws:
java.lang.IllegalArgumentException
- if the params argument is inappropriate.
-
returnByte
public byte returnByte(byte in)
Description copied from interface:StreamCipher
encrypt/decrypt a single byte returning the result.- Specified by:
returnByte
in interfaceStreamCipher
- Parameters:
in
- the byte to be processed.- Returns:
- the result of processing the input byte.
-
processBytes
public int processBytes(byte[] in, int inOff, int len, byte[] out, int outOff)
Description copied from interface:StreamCipher
process a block of bytes from in putting the result into out.- Specified by:
processBytes
in interfaceStreamCipher
- Parameters:
in
- the input byte array.inOff
- the offset into the in array where the data to be processed starts.len
- the number of bytes to be processed.out
- the output buffer the processed bytes go into.outOff
- the offset into the output byte array the processed data starts at.- Returns:
- the number of bytes produced - should always be len.
-
getAlgorithmName
public java.lang.String getAlgorithmName()
Description copied from interface:StreamCipher
Return the name of the algorithm the cipher implements.- Specified by:
getAlgorithmName
in interfaceStreamCipher
- Returns:
- the name of the algorithm the cipher implements.
-
reset
public void reset()
Description copied from interface:StreamCipher
reset the cipher. This leaves it in the same state it was at after the last init (if there was one).- Specified by:
reset
in interfaceStreamCipher
-
-