int outOff)
throws DataLengthException, IllegalStateException
{
if ((inOff + blockSize) > in.length)
{
throw new DataLengthException("input buffer too short");
}
if ((outOff + blockSize) > out.length)
{
throw new DataLengthException("output buffer too short");
}
cipher.processBlock(FR, 0, FRE, 0);
for (int n = 0; n < blockSize; n++)
out[outOff + n] = encryptByte(in[inOff + n], n);