Staging:CC3220 DES Demo Application

Overview
The DES module provides hardware-accelerated data encryption and decryption functions. The module runs either the single DES or the triple DES (3DES) algorithm in compliance with the FIPS 46-3 standard and supports the following operating modes:


 * Electronic codebook (ECB)
 * Cipher block chaining (CBC)
 * Cipher feedback (CFB)

The DES 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 DES 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 des_main.c file.


 * desdemo: This command allows the user to exercise the DES functionality on CC3220. The command needs a parameter, des-mode.


 * - des-mode is the DES algorithm that user can choose, the value can be ECB or CBC or CFB or TECB or TCBC or TCFB.

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 


 * des_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 des_main.c
 * pinmux.c - Generated by the PinMUX utility. UARTA0 pins are brought out in this file.
 * cc_launchpad.c - Contains mandatory board specific initialization. Also initializes the peripherals exercised.
 * 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 DES commands need to be issued and the results can be seen



Limitations/Known Issues
None