@Override
  public byte[] decrypt(final byte[] ciphertext, final byte[] associatedData)
      throws GeneralSecurityException {
    if (outputPrefix.length == 0) {
      return rawDecrypt(ciphertext, associatedData);
    }
    if (!isPrefix(outputPrefix, ciphertext)) {
      throw new GeneralSecurityException("Decryption failed (OutputPrefix mismatch).");
    }
    byte[] copiedCiphertext =
        Arrays.copyOfRange(ciphertext, outputPrefix.length, ciphertext.length);
    return rawDecrypt(copiedCiphertext, associatedData);
  }
Computes an OMAC.

@param ecb A cipher initialized with the key of this class using AES/ECB/NOPadding and
    encryption mode.
@param tag The OMAC tag (0 for nonce, 1 for aad, 2 for ciphertext)
@param data The array containing the data to MAC.
@param offset The start of the data to MAC.
@param length The length of the data to MAC.
@return The 16 byte long OMAC
@throws IllegalBlockSizeException, BadPaddingException This should not happen.
java_src/src/main/java/com/google/crypto/tink/subtle/AesEaxJce.java