package org.bouncycastle.crypto;


base interface that a public/private key block cipher needs to conform to.
/** * base interface that a public/private key block cipher needs * to conform to. */
public interface AsymmetricBlockCipher {
initialise the cipher.
Params:
  • forEncryption – if true the cipher is initialised for encryption, if false for decryption.
  • param – the key and other data required by the cipher.
/** * 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.
Returns:maximum size for an input block.
/** * 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.
Returns:maximum size of the output block produced by the cipher.
/** * 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.
Params:
  • in – the input data
  • inOff – offset into the in array where the data starts
  • len – the length of the block to be processed.
Throws:
Returns:the resulting byte array of the encryption/decryption process.
/** * 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; }