package org.bouncycastle.shaded.crypto; public abstract class DefaultMultiBlockCipher implements MultiBlockCipher { protected DefaultMultiBlockCipher() { } public int getMultiBlockSize() { return this.getBlockSize(); } public int processBlocks(byte[] in, int inOff, int blockCount, byte[] out, int outOff) throws DataLengthException, IllegalStateException { // TODO check if the underlying cipher supports the multiblock interface and call it directly? int resultLen = 0; int blockSize = this.getMultiBlockSize(); for (int i = 0; i != blockCount; i++) { resultLen += this.processBlock(in, inOff, out, outOff + resultLen); inOff += blockSize; } return resultLen; } }