private void processBlock(byte[] in, int inOff) { xor(c, 0, in, inOff, cTemp); engine.processBlock(cTemp, 0, c, 0); }
public int doFinal(byte[] out, int outOff) throws DataLengthException, IllegalStateException { if (bufOff % buf.length != 0) { throw new DataLengthException("input must be a multiple of blocksize"); } //Last block xor(c, 0, buf, 0, cTemp); xor(cTemp, 0, kDelta, 0, c); engine.processBlock(c, 0, c, 0); if (macSize + outOff > out.length) { throw new OutputLengthException("output buffer too short"); } System.arraycopy(c, 0, out, outOff, macSize); return macSize; }