String cipher = "f20bdba6ff29eed7b046d1df9fb7000058b1ffb4210a580f748b4ac714c001bd4a61044426fb515dad3f21f18aa577c0bdf302936266926ff37dbf7035d5eeb4";
final byte blockLength = 16;
ByteSequence bytes = ByteSequence.fromHexString(cipher);
ByteSequence plain = ByteSequence.EMPTY_SEQUENCE;
BlockSequence blocks = new BlockSequence(blockLength, bytes);
for (int i = 1; i < blocks.length(); i++) {
ByteSequence iv = blocks.blockAt(i - 1);
ByteSequence block = blocks.blockAt(i);
boolean lastBlock = (i == blocks.length() - 1);
try {
ByteSequence plainBlock = decryptBlock(iv, block);
if (lastBlock) {
byte paddingLength = plainBlock
.byteAt(plainBlock.length() - 1);