• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.bouncycastle.crypto;
2 
3 
4 /**
5  * base interface that a public/private key block cipher needs
6  * to conform to.
7  */
8 public interface AsymmetricBlockCipher
9 {
10     /**
11      * initialise the cipher.
12      *
13      * @param forEncryption if true the cipher is initialised for
14      *  encryption, if false for decryption.
15      * @param param the key and other data required by the cipher.
16      */
init(boolean forEncryption, CipherParameters param)17     public void init(boolean forEncryption, CipherParameters param);
18 
19     /**
20      * returns the largest size an input block can be.
21      *
22      * @return maximum size for an input block.
23      */
getInputBlockSize()24     public int getInputBlockSize();
25 
26     /**
27      * returns the maximum size of the block produced by this cipher.
28      *
29      * @return maximum size of the output block produced by the cipher.
30      */
getOutputBlockSize()31     public int getOutputBlockSize();
32 
33     /**
34      * process the block of len bytes stored in in from offset inOff.
35      *
36      * @param in the input data
37      * @param inOff offset into the in array where the data starts
38      * @param len the length of the block to be processed.
39      * @return the resulting byte array of the encryption/decryption process.
40      * @exception InvalidCipherTextException data decrypts improperly.
41      * @exception DataLengthException the input data is too large for the cipher.
42      */
processBlock(byte[] in, int inOff, int len)43     public byte[] processBlock(byte[] in, int inOff, int len)
44         throws InvalidCipherTextException;
45 }
46