MultiBlockCipher (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.crypto

## Interface MultiBlockCipher

- All Superinterfaces:
    BlockCipher
  All Known Subinterfaces:
    CBCModeCipher, CFBModeCipher, CTRModeCipher
  All Known Implementing Classes:
    AESEngine, CBCBlockCipher, CFBBlockCipher, DefaultMultiBlockCipher, G3413CFBBlockCipher, G3413CTRBlockCipher, G3413OFBBlockCipher, GCFBBlockCipher, GOFBBlockCipher, KCTRBlockCipher, OFBBlockCipher, SICBlockCipher, StreamBlockCipher

      public interface MultiBlockCipher
      extends BlockCipher

  Base interface for a cipher engine capable of processing multiple blocks at a time.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getMultiBlockSize()` Return the multi-block size for this cipher (in bytes).
    `int` | `processBlocks(byte[] in, int inOff, int blockCount, byte[] out, int outOff)` Process blockCount blocks from input in offset inOff and place the output in out from offset outOff.

    - ### Methods inherited from interface org.bouncycastle.crypto.BlockCipher

      `getAlgorithmName, getBlockSize, init, processBlock, reset`

- - ### Method Detail

    - #### getMultiBlockSize

          int getMultiBlockSize()

      Return the multi-block size for this cipher (in bytes).
      Returns:
        the multi-block size for this cipher in bytes.

    - #### processBlocks

          int processBlocks(byte[] in,
                            int inOff,
                            int blockCount,
                            byte[] out,
                            int outOff)
                     throws DataLengthException,
                            java.lang.IllegalStateException

      Process blockCount blocks from input in offset inOff and place the output in out from offset outOff.
      Parameters:
        `in` - input data array.
        `inOff` - start of input data in in.
        `blockCount` - number of blocks to be processed.
        `out` - output data array.
        `outOff` - start position for output data.
      Returns:
        number of bytes written to out.
      Throws:
        `DataLengthException`
        `java.lang.IllegalStateException`