org.bouncycastle.crypto.engines
Class RC4Engine

java.lang.Object
  extended by org.bouncycastle.crypto.engines.RC4Engine
All Implemented Interfaces:
StreamCipher

public class RC4Engine
extends java.lang.Object
implements StreamCipher


Field Summary
private  byte[] engineState
           
private static int STATE_LENGTH
           
private  byte[] workingKey
           
private  int x
           
private  int y
           
 
Constructor Summary
RC4Engine()
           
 
Method Summary
 java.lang.String getAlgorithmName()
          Return the name of the algorithm the cipher implements.
 void init(boolean forEncryption, CipherParameters params)
          initialise a RC4 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.
private  void setKey(byte[] keyBytes)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STATE_LENGTH

private static final int STATE_LENGTH
See Also:
Constant Field Values

engineState

private byte[] engineState

x

private int x

y

private int y

workingKey

private byte[] workingKey
Constructor Detail

RC4Engine

public RC4Engine()
Method Detail

init

public void init(boolean forEncryption,
                 CipherParameters params)
initialise a RC4 cipher.

Specified by:
init in interface StreamCipher
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.

getAlgorithmName

public java.lang.String getAlgorithmName()
Description copied from interface: StreamCipher
Return the name of the algorithm the cipher implements.

Specified by:
getAlgorithmName in interface StreamCipher
Returns:
the name of the algorithm the cipher implements.

returnByte

public byte returnByte(byte in)
Description copied from interface: StreamCipher
encrypt/decrypt a single byte returning the result.

Specified by:
returnByte in interface StreamCipher
Parameters:
in - the byte to be processed.
Returns:
the result of processing the input byte.

processBytes

public void 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 interface StreamCipher
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.

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 interface StreamCipher

setKey

private void setKey(byte[] keyBytes)