protected void processMainBlock(byte[] output, int outOff)
{
if (output.length < (outOff + BLOCK_SIZE))
{
throw new OutputLengthException("Output buffer too short");
}
if (forEncryption)
{
xor(Checksum, mainBlock);
mainBlockPos = 0;
}
xor(OffsetMAIN, getLSub(OCB_ntz(++mainBlockCount)));
xor(mainBlock, OffsetMAIN);
mainCipher.processBlock(mainBlock, 0, mainBlock, 0);
xor(mainBlock, OffsetMAIN);
System.arraycopy(mainBlock, 0, output, outOff, 16);
if (!forEncryption)
{
xor(Checksum, mainBlock);
System.arraycopy(mainBlock, BLOCK_SIZE, mainBlock, 0, macSize);
mainBlockPos = macSize;
}
}