Staging:CC3220 AES Demo Application (Texas Instruments NDA restrictions applicable)

= Overview =

The Advance Encryption Standard (AES) security modules provide hardware-accelerated data encryption and decryption operations based on a binary key. The AES is a symmetric cipher module that supports a 128-, 192-, or 256-bit key in hardware for both encryption and decryption. The AES module is based on a symmetric algorithm, meaning that the encryption and decryption keys are identical. To encrypt data means to convert it from plain text to an unintelligible form called cipher text. Decrypting cipher text converts previously encrypted data back to its original plain text form.

= Application details =

The application is a reference to usage of AES DriverLib functions on CC3220. Developer/User can refer to this simple application and re-use the functions in their applications. This application can be used with or without "Uart Terminal".

If the user wishes to use "Uart Terminal" to give some inputs and follow the execution path prints, then they might do so by defining "USER-INPUT" in the aes_main.c file.


 * aesdemo: This command allows the user to excercise the AES funcitonality on CC3220. The command needs two parameters aes-mode and key-len.


 * - aes-mode is the AES algorithm that user can choose, the value can be ECB or CBC or CTR or ICM or CFB.


 * - key-len is the length of the key that user needs to define, the value can be 128 or 192 or 256.

Further, user will be prompted for more inputs for "key" and "plain text input"

Not defining or un-defining the USER-INPUT will allow the user to follow the execution path on the IAR or CCS IDE, in the "debugging" mode and no input is needed to be given by the user.

Source Files briefly explained

 * main.c - The main file that contains the core-logic for encryption and decryption. The functions in the file uses DriverLib calls to perform encryption and decryption.

 Supporting files 


 * aes_userinput.c - This file is used in the USER-INPUT mode. The function in the file reads the input from the user, parses the input string and feed the core-logic functions in the aes_main.c
 * pinmux.c - Generated by the PinMUX utility. UART0 pins are brought out in this file.
 * startup_*.c - IDE specific startup functions (not required when working with TI-RTOS)
 * uart_if.c - Functions to display information on UART

= Usage =


 * 1) Setup a serial communication application (HyperTerminal/TeraTerm). For detail info visit Terminal setup. On the host PC, open a hyperterminal, with the following settings
 * 2) *Port: Enumerated COM port (XDS110 Class Application/User UART)
 * 3) *Baud rate: 115200
 * 4) *Data: 8 bit
 * 5) *Parity: None
 * 6) *Stop: 1 bit
 * 7) *Flow control: None
 * 8) Run the reference application (/IAR/CCS).
 * 9) *Flash the bin
 * 10) *Open the project in IAR/CCS. Build and download the application to the board
 * 11) On the Hyperterminal, a prompt appears
 * 12) *The AES commands need to be issued and the results can be seen


 * Terminal snapshot when user gives input message to encrypt and decrypt



= Limitations/Known Issues =

None.