Class 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.
    • 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.
        param - 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.