@Nullable
        @Override
        protected Cipher initialValue() {
          try {
            Cipher cipher = EngineFactory.CIPHER.getInstance(CIPHER_NAME);
            if (!isValid(cipher)) {
              return null;
            }
            return cipher;
          } catch (GeneralSecurityException ex) {
            // ChaCha20Poly1305 is not supported.
            return null;
          }
        }
ChaCha20Poly1305Jce implements an AEAD for ChaCha20Poly1305, as described in <a
href="https://tools.ietf.org/html/rfc8439#section-2.8">RFC 8439, section 2.8</a>.

<p>It uses the JCE, and requires that algorithm "ChaCha20-Poly1305" is present.
java_src/src/main/java/com/google/crypto/tink/aead/internal/ChaCha20Poly1305Jce.java