| package org.bouncycastle.crypto; |
| |
| |
| /** |
| * base interface that a public/private key block cipher needs |
| * to conform to. |
| */ |
| public interface AsymmetricBlockCipher |
| { |
| /** |
| * initialise the cipher. |
| * |
| * @param forEncryption if true the cipher is initialised for |
| * encryption, if false for decryption. |
| * @param param the key and other data required by the cipher. |
| */ |
| public void init(boolean forEncryption, CipherParameters param); |
| |
| /** |
| * returns the largest size an input block can be. |
| * |
| * @return maximum size for an input block. |
| */ |
| public int getInputBlockSize(); |
| |
| /** |
| * returns the maximum size of the block produced by this cipher. |
| * |
| * @return maximum size of the output block produced by the cipher. |
| */ |
| public int getOutputBlockSize(); |
| |
| /** |
| * process the block of len bytes stored in in from offset inOff. |
| * |
| * @param in the input data |
| * @param inOff offset into the in array where the data starts |
| * @param len the length of the block to be processed. |
| * @return the resulting byte array of the encryption/decryption process. |
| * @exception InvalidCipherTextException data decrypts improperly. |
| * @exception DataLengthException the input data is too large for the cipher. |
| */ |
| public byte[] processBlock(byte[] in, int inOff, int len) |
| throws InvalidCipherTextException; |
| } |