@Override
        protected Cipher initialValue() {
          try {
            return EngineFactory.CIPHER.getInstance("AES/CTR/NOPADDING");
          } catch (GeneralSecurityException ex) {
            throw new IllegalStateException(ex);
          }
        }
This class implements the EAX mode using AES.

<p>EAX is an encryption mode proposed by Bellare, Rogaway and Wagner
(http://web.cs.ucdavis.edu/~rogaway/papers/eax.pdf). The encryption mode is an alternative to CCM
and has been proposed as a NIST standard:
http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/eax/eax-spec.pdf

<p>The parameter choices have been restricted to a small set of options:

<ul>
  <li>The tag size is always 16 bytes
  <li>Nonces are chosen by the implementation at random. Their size is 12 or 16 bytes.
</ul>

<p>Plans: The current implementation is slow since it uses JCA and only assumes that the
encryption modes "AES/ECB/NOPADDING" and "AES/CTR/NOPADDING" are implemented. Our plan is to
implement a native version of EAX.

@since 1.0.0
java_src/src/main/java/com/google/crypto/tink/subtle/AesEaxJce.java