Initial version of API and AES

Includes tests and benchmark.