Class StreamBlockCipher

  • All Implemented Interfaces:
    StreamCipher

    public class StreamBlockCipher
    extends java.lang.Object
    implements StreamCipher
    a wrapper for block ciphers with a single byte block size, so that they can be treated like stream ciphers.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getAlgorithmName()
      return the name of the algorithm we are wrapping.
      void init​(boolean forEncryption, CipherParameters params)
      initialise the underlying cipher.
      void processBytes​(byte[] in, int inOff, int len, byte[] out, int outOff)
      process a block of bytes from in putting the result into out.
      void reset()
      reset the underlying cipher.
      byte returnByte​(byte in)
      encrypt/decrypt a single byte returning the result.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • oneByte

        private byte[] oneByte
    • Constructor Detail

      • StreamBlockCipher

        public StreamBlockCipher​(BlockCipher cipher)
        basic constructor.
        Parameters:
        cipher - the block cipher to be wrapped.
        Throws:
        java.lang.IllegalArgumentException - if the cipher has a block size other than one.
    • Method Detail

      • init

        public void init​(boolean forEncryption,
                         CipherParameters params)
        initialise the underlying cipher.
        Specified by:
        init in interface StreamCipher
        Parameters:
        forEncryption - true if we are setting up for encryption, false otherwise.
        param - the necessary parameters for the underlying cipher to be initialised.
      • getAlgorithmName

        public java.lang.String getAlgorithmName()
        return the name of the algorithm we are wrapping.
        Specified by:
        getAlgorithmName in interface StreamCipher
        Returns:
        the name of the algorithm we are wrapping.
      • returnByte

        public byte returnByte​(byte in)
        encrypt/decrypt a single byte returning the result.
        Specified by:
        returnByte in interface StreamCipher
        Parameters:
        in - the byte to be processed.
        Returns:
        the result of processing the input byte.
      • processBytes

        public void processBytes​(byte[] in,
                                 int inOff,
                                 int len,
                                 byte[] out,
                                 int outOff)
                          throws DataLengthException
        process a block of bytes from in putting the result into out.
        Specified by:
        processBytes in interface StreamCipher
        Parameters:
        in - the input byte array.
        inOff - the offset into the in array where the data to be processed starts.
        len - the number of bytes to be processed.
        out - the output buffer the processed bytes go into.
        outOff - the offset into the output byte array the processed data stars at.
        Throws:
        DataLengthException - if the output buffer is too small.
      • reset

        public void reset()
        reset the underlying cipher. This leaves it in the same state it was at after the last init (if there was one).
        Specified by:
        reset in interface StreamCipher