• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.bouncycastle.crypto;
2 
3 /**
4  * the interface stream ciphers conform to.
5  */
6 public interface StreamCipher
7 {
8     /**
9      * Initialise the cipher.
10      *
11      * @param forEncryption if true the cipher is initialised for
12      *  encryption, if false for decryption.
13      * @param params the key and other data required by the cipher.
14      * @exception IllegalArgumentException if the params argument is
15      * inappropriate.
16      */
init(boolean forEncryption, CipherParameters params)17     public void init(boolean forEncryption, CipherParameters params)
18         throws IllegalArgumentException;
19 
20     /**
21      * Return the name of the algorithm the cipher implements.
22      *
23      * @return the name of the algorithm the cipher implements.
24      */
getAlgorithmName()25     public String getAlgorithmName();
26 
27     /**
28      * encrypt/decrypt a single byte returning the result.
29      *
30      * @param in the byte to be processed.
31      * @return the result of processing the input byte.
32      */
returnByte(byte in)33     public byte returnByte(byte in);
34 
35     /**
36      * process a block of bytes from in putting the result into out.
37      *
38      * @param in the input byte array.
39      * @param inOff the offset into the in array where the data to be processed starts.
40      * @param len the number of bytes to be processed.
41      * @param out the output buffer the processed bytes go into.
42      * @param outOff the offset into the output byte array the processed data starts at.
43      * @return the number of bytes produced - should always be len.
44      * @exception DataLengthException if the output buffer is too small.
45      */
processBytes(byte[] in, int inOff, int len, byte[] out, int outOff)46     public int processBytes(byte[] in, int inOff, int len, byte[] out, int outOff)
47         throws DataLengthException;
48 
49     /**
50      * reset the cipher. This leaves it in the same state
51      * it was at after the last init (if there was one).
52      */
reset()53     public void reset();
54 }
55