public class

HC256Engine

extends Object
implements StreamCipher
java.lang.Object
   ↳ org.bouncycastle.crypto.engines.HC256Engine

Class Overview

HC-256 is a software-efficient stream cipher created by Hongjun Wu. It generates keystream from a 256-bit secret key and a 256-bit initialization vector.

http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf

Its brother, HC-128, is a third phase candidate in the eStream contest. The algorithm is patent-free. No attacks are known as of today (April 2007). See http://www.ecrypt.eu.org/stream/hcp3.html

Summary

Public Constructors
HC256Engine()
Public Methods
String getAlgorithmName()
Return the name of the algorithm the cipher implements.
void init(boolean forEncryption, CipherParameters params)
Initialise a HC-256 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.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.bouncycastle.crypto.StreamCipher

Public Constructors

public HC256Engine ()

Public Methods

public String getAlgorithmName ()

Return the name of the algorithm the cipher implements.

Returns
  • the name of the algorithm the cipher implements.

public void init (boolean forEncryption, CipherParameters params)

Initialise a HC-256 cipher.

Parameters
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.
Throws
IllegalArgumentException if the params argument is inappropriate (ie. the key is not 256 bit long).

public void processBytes (byte[] in, int inOff, int len, byte[] out, int outOff)

process a block of bytes from in putting the result into out.

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.

public void reset ()

reset the cipher. This leaves it in the same state it was at after the last init (if there was one).

public byte returnByte (byte in)

encrypt/decrypt a single byte returning the result.

Parameters
in the byte to be processed.
Returns
  • the result of processing the input byte.