Class SICBlockCipher

    • Constructor Detail

      • SICBlockCipher

        public SICBlockCipher​(BlockCipher c)
        Deprecated.
        use newInstance() method.
        Basic constructor.
        Parameters:
        c - the block cipher to be used.
    • Method Detail

      • newInstance

        public static CTRModeCipher newInstance​(BlockCipher cipher)
        Return a new SIC/CTR mode cipher based on the passed in base cipher
        Parameters:
        cipher - the base cipher for the SIC/CTR mode.
      • init

        public void init​(boolean forEncryption,
                         CipherParameters params)
                  throws java.lang.IllegalArgumentException
        Description copied from interface: BlockCipher
        Initialise the cipher.
        Specified by:
        init in interface BlockCipher
        Specified by:
        init in interface StreamCipher
        Parameters:
        forEncryption - if true the cipher is initialised for encryption, if false for decryption.
        params - the key and other data required by the cipher.
        Throws:
        java.lang.IllegalArgumentException - if the params argument is inappropriate.
      • getAlgorithmName

        public java.lang.String getAlgorithmName()
        Description copied from interface: BlockCipher
        Return the name of the algorithm the cipher implements.
        Specified by:
        getAlgorithmName in interface BlockCipher
        Specified by:
        getAlgorithmName in interface StreamCipher
        Returns:
        the name of the algorithm the cipher implements.
      • getBlockSize

        public int getBlockSize()
        Description copied from interface: BlockCipher
        Return the block size for this cipher (in bytes).
        Specified by:
        getBlockSize in interface BlockCipher
        Returns:
        the block size for this cipher in bytes.
      • processBlock

        public int processBlock​(byte[] in,
                                int inOff,
                                byte[] out,
                                int outOff)
                         throws DataLengthException,
                                java.lang.IllegalStateException
        Description copied from interface: BlockCipher
        Process one block of input from the array in and write it to the out array.
        Specified by:
        processBlock in interface BlockCipher
        Parameters:
        in - the array containing the input data.
        inOff - offset into the in array the data starts at.
        out - the array the output data will be copied into.
        outOff - the offset into the out array the output will start at.
        Returns:
        the number of bytes processed and produced.
        Throws:
        DataLengthException - if there isn't enough data in input , or space in out.
        java.lang.IllegalStateException - if the cipher isn't initialised.
      • processBytes

        public int processBytes​(byte[] in,
                                int inOff,
                                int len,
                                byte[] out,
                                int outOff)
                         throws DataLengthException
        Description copied from interface: StreamCipher
        process a block of bytes from in putting the result into out.
        Specified by:
        processBytes in interface StreamCipher
        Overrides:
        processBytes in class StreamBlockCipher
        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 starts at.
        Returns:
        the number of bytes produced - should always be len.
        Throws:
        DataLengthException - if the output buffer is too small.
      • reset

        public void reset()
        Description copied from interface: BlockCipher
        Reset the cipher. After resetting the cipher is in the same state as it was after the last init (if there was one).
        Specified by:
        reset in interface BlockCipher
        Specified by:
        reset in interface StreamCipher
      • skip

        public long skip​(long numberOfBytes)
        Description copied from interface: SkippingCipher
        Skip numberOfBytes forwards, or backwards.
        Specified by:
        skip in interface SkippingCipher
        Parameters:
        numberOfBytes - the number of bytes to skip (positive forward, negative backwards).
        Returns:
        the number of bytes actually skipped.
      • seekTo

        public long seekTo​(long position)
        Description copied from interface: SkippingCipher
        Reset the cipher and then skip forward to a given position.
        Specified by:
        seekTo in interface SkippingCipher
        Parameters:
        position - the number of bytes in to set the cipher state to.
        Returns:
        the byte position moved to.
      • getPosition

        public long getPosition()
        Description copied from interface: SkippingCipher
        Return the current "position" of the cipher
        Specified by:
        getPosition in interface SkippingCipher
        Returns:
        the current byte position.