Bouncy Castle Cryptography Library 1.45

## org.bouncycastle.crypto
Class BufferedAsymmetricBlockCipher

    java.lang.Object
      org.bouncycastle.crypto.BufferedAsymmetricBlockCipher

    public class BufferedAsymmetricBlockCipher

extends java.lang.Object

a buffer wrapper for an asymmetric block cipher, allowing input to be accumulated in a piecemeal fashion until final processing.

Field Summary
`protected byte[]` `buf`
`protected int` `bufOff`

Constructor Summary
`BufferedAsymmetricBlockCipher(AsymmetricBlockCipher cipher)` base constructor.

Method Summary
`byte[]` `doFinal()` process the contents of the buffer using the underlying cipher.
`int` `getBufferPosition()` return the amount of data sitting in the buffer.
`int` `getInputBlockSize()` returns the largest size an input block can be.
`int` `getOutputBlockSize()` returns the maximum size of the block produced by this cipher.
`AsymmetricBlockCipher` `getUnderlyingCipher()` return the underlying cipher for the buffer.
`void` `init(boolean forEncryption, CipherParameters params)` initialise the buffer and the underlying cipher.
`void` `processByte(byte in)` add another byte for processing.
`void` `processBytes(byte[] in, int inOff, int len)` add len bytes to the buffer for processing.
`void` `reset()` Reset the buffer and the underlying cipher.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### buf

    protected byte[] buf

### bufOff

    protected int bufOff

Constructor Detail

### BufferedAsymmetricBlockCipher

    public BufferedAsymmetricBlockCipher(AsymmetricBlockCipher cipher)

  base constructor.

  Parameters:
    `cipher` - the cipher this buffering object wraps.

Method Detail

### getUnderlyingCipher

    public AsymmetricBlockCipher getUnderlyingCipher()

  return the underlying cipher for the buffer.

  Returns:
    the underlying cipher for the buffer.

### getBufferPosition

    public int getBufferPosition()

  return the amount of data sitting in the buffer.

  Returns:
    the amount of data sitting in the buffer.

### init

    public void init(boolean forEncryption,
                     CipherParameters params)

  initialise the buffer and the underlying cipher.

  Parameters:
    `forEncryption` - if true the cipher is initialised for encryption, if false for decryption.
    `params` - the key and other data required by the cipher.

### getInputBlockSize

    public int getInputBlockSize()

  returns the largest size an input block can be.

  Returns:
    maximum size for an input block.

### getOutputBlockSize

    public int getOutputBlockSize()

  returns the maximum size of the block produced by this cipher.

  Returns:
    maximum size of the output block produced by the cipher.

### processByte

    public void processByte(byte in)

  add another byte for processing.

  Parameters:
    `in` - the input byte.

### processBytes

    public void processBytes(byte[] in,
                             int inOff,
                             int len)

  add len bytes to the buffer for processing.

  Parameters:
    `in` - the input data
    `inOff` - offset into the in array where the data starts
    `len` - the length of the block to be processed.

### doFinal

    public byte[] doFinal()
                   throws InvalidCipherTextException

  process the contents of the buffer using the underlying cipher.

  Returns:
    the result of the encryption/decryption process on the buffer.
  Throws:
    `InvalidCipherTextException` - if we are given a garbage block.

### reset

    public void reset()

  Reset the buffer and the underlying cipher.

Bouncy Castle Cryptography Library 1.45