public byte[] getMac() {
    byte[] res = new byte[mac.getMacSize()];

    mac.doFinal(res, 0);

    return res;
  }
 public void write(byte[] b, int off, int len) throws IOException {
   mac.update(b, off, len);
 }
 public void write(int b) throws IOException {
   mac.update((byte) b);
 }