AES ciphering APIs (setup operation, load key/iv, process ciphering)

This change provides an example of a AES ciphering operation from a
trusted application (TA) using the GPD TEE Core Internal API.

AES TA implements the basics for setting a AES/CTR ciphering session
using the TEE Core Internal API:
- Opening a session toward the AES TA creates AES ciphering session.
- A TA command allows to setup and allocate the ciphering resources.
- A TA command allows to load the AES key.
- A TA command allows to reset the initial vector.
- A TA command allows to cipher an input buffer into an output buffer.

The sample application creates an AES128-CTR encryption session,
provides the AES key and and initial vector then request encryption of
a data buffer. Then it sets up a decryption session, provide the same
key and initial vector and request decryption of the encrypted content.
Finally it checks clear and decoded data are the same.

Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
diff --git a/Makefile b/Makefile
index 9fb6b46..31019fa 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,7 @@
 
 EXAMPLE_LIST := hello_world
 EXAMPLE_LIST += random
+EXAMPLE_LIST += aes
 
 .PHONY: all
 all: examples prepare-for-rootfs