org.gudy.bouncycastle.crypto
Class StreamBlockCipher

java.lang.Object
  extended by org.gudy.bouncycastle.crypto.StreamBlockCipher
All Implemented Interfaces:
StreamCipher

public class StreamBlockCipher
extends java.lang.Object
implements StreamCipher

a wrapper for block ciphers with a single byte block size, so that they can be treated like stream ciphers.


Constructor Summary
StreamBlockCipher(BlockCipher cipher)
          basic constructor.
 
Method Summary
 java.lang.String getAlgorithmName()
          return the name of the algorithm we are wrapping.
 void init(boolean forEncryption, CipherParameters params)
          initialise the underlying 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 underlying cipher.
 byte returnByte(byte in)
          encrypt/decrypt a single byte returning the result.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StreamBlockCipher

public StreamBlockCipher(BlockCipher cipher)
basic constructor.

Parameters:
cipher - the block cipher to be wrapped.
Throws:
java.lang.IllegalArgumentException - if the cipher has a block size other than one.
Method Detail

init

public void init(boolean forEncryption,
                 CipherParameters params)
initialise the underlying cipher.

Specified by:
init in interface StreamCipher
Parameters:
forEncryption - true if we are setting up for encryption, false otherwise.
param - the necessary parameters for the underlying cipher to be initialised.

getAlgorithmName

public java.lang.String getAlgorithmName()
return the name of the algorithm we are wrapping.

Specified by:
getAlgorithmName in interface StreamCipher
Returns:
the name of the algorithm we are wrapping.

returnByte

public byte returnByte(byte in)
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)
                  throws DataLengthException
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 stars at.
Throws:
DataLengthException - if the output buffer is too small.

reset

public void reset()
reset the underlying 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