Package org.gudy.bouncycastle.crypto
Class StreamBlockCipher
- java.lang.Object
-
- 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.
-
-
Field Summary
Fields Modifier and Type Field Description private BlockCipher
cipher
private byte[]
oneByte
-
Constructor Summary
Constructors Constructor Description StreamBlockCipher(BlockCipher cipher)
basic constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.
-
-
-
Field Detail
-
cipher
private BlockCipher cipher
-
oneByte
private byte[] oneByte
-
-
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 interfaceStreamCipher
- 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 interfaceStreamCipher
- 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 interfaceStreamCipher
- 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 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 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 interfaceStreamCipher
-
-