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.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected byte[] buf  
      protected int bufOff  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.