org.bouncycastle.crypto.engines
Class HC128Engine
java.lang.Object
org.bouncycastle.crypto.engines.HC128Engine
- StreamCipher
public class HC128Engine
extends java.lang.Object
HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
generates keystream from a 128-bit secret key and a 128-bit initialization
vector.
http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
It is a third phase candidate in the eStream contest, and is patent-free.
No attacks are known as of today (April 2007). See
http://www.ecrypt.eu.org/stream/hcp3.html
String | getAlgorithmName() - Return the name of the algorithm the cipher implements.
|
void | init(boolean forEncryption, CipherParameters params) - Initialise a HC-128 cipher.
|
void | 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.
|
getAlgorithmName
public String getAlgorithmName()
Return the name of the algorithm the cipher implements.
- getAlgorithmName in interface StreamCipher
- the name of the algorithm the cipher implements.
init
public void init(boolean forEncryption,
CipherParameters params)
throws IllegalArgumentException
Initialise a HC-128 cipher.
- init in interface StreamCipher
forEncryption
- whether or not we are for encryption. Irrelevant, as
encryption and decryption are the same.params
- the parameters required to set up the cipher.
processBytes
public void processBytes(byte[] in,
int inOff,
int len,
byte[] out,
int outOff)
throws DataLengthException
process a block of bytes from in putting the result into out.
- processBytes in interface StreamCipher
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.
reset
public void reset()
reset the cipher. This leaves it in the same state
it was at after the last init (if there was one).
- reset in interface StreamCipher
returnByte
public byte returnByte(byte in)
encrypt/decrypt a single byte returning the result.
- returnByte in interface StreamCipher
in
- the byte to be processed.
- the result of processing the input byte.