A Java implementation of Authenticated Encryption (AE) or Authenticated Encryption with Associated Data (AEAD)
See https://en.wikipedia.org/wiki/Authenticated_encryption
Note that this code requires Java 8 and that the "Java Cryptography Extension (JCE)" files have been downloaded from Orcale. http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html