WOLFSSL TEXAS INSTRUMENTS SUPPORT
The wolfSSL embedded SSL/TLS library and wolfCrypt (CTaoCrypt) embedded crypto engine now support building with Texas Instruments Real Time Operating System (TI-RTOS). To make it easy for developers to get started with wolfSSL, wolfCrypt, and TI-RTOS, wolfSSL offers several example projects which can be found on GitHub.
wolfSSL Embedded SSL/TLS for TI-RTOS
Developed with embedded devices and applications in mind, the wolfSSL embedded SSL/TLS library has been written from the ground up focusing on several key priorities - including performance, feature set, low memory usage, and portability. wolfSSL is progressive in its support for current and upcoming protocol and cipher standards, including both client and server support for TLS 1.2, DTLS 1.2, AES-GCM, AES-CCM, and ECC to name a few. The combination of these traits make wolfSSL the perfect fit for secure communication on TI-RTOS-based devices and applications. For a full list of features offered by wolfSSL, please see the product page.
Building wolfSSL with TI-RTOS
To enable TI-RTOS support, define TIRTOS when building wolfSSL. The TIRTOS define turns on settings specific to the TI-RTOS library and supported compilers.
To see a list of specific preprocessor defines used to build wolfSSL TI-RTOS, see the above define located in the <wolfssl_root>/wolfssl/wolfcrypt/settings.h file of the wolfSSL download package.
Example Code Compose Studio (CCS) Projects
wolfSSL has provided several examples on GitHub which developers can use to get going quickly with wolfSSL and TI-RTOS on the Tiva C Series TM4C1294XL Connected Launchpad.
wolfCrypt Test Application (wolfssl_tests)
This project tests the wolfCrypt cryptography modules.
wolfCrypt Benchmark Application (wolfssl_tirtos_benchmark)
This project builds the wolfCrypt benchmark application which can be used to benchmark cryptography speeds for AES, Camellia, ARC4, Rabbit, ChaCha, 3DES, MD5, Poly1305, SHA, SHA-256, SHA-512, RSA, DH, and ECC cipher suites. Results of running the wolfCrypt benchmark on the above board with the optimization settings used in the project yielded the following results (reference only):
AES 25 kB took 0.038 seconds, 0.642 MB/s
Camellia 25 kB took 0.032 seconds, 0.763 MB/s
ARC4 25 kB took 0.006 seconds, 4.069 MB/s
RABBIT 25 kB took 0.005 seconds, 4.883 MB/s
CHACHA 25 kB took 0.007 seconds, 3.488 MB/s
3DES 25 kB took 0.164 seconds, 0.149 MB/s
MD5 25 kB took 0.003 seconds, 8.138 MB/s
POLY1305 25 kB took 0.004 seconds, 6.104 MB/s
SHA 25 kB took 0.006 seconds, 4.069 MB/s
SHA-256 25 kB took 0.014 seconds, 1.744 MB/s
SHA-512 25 kB took 0.042 seconds, 0.581 MB/s
RSA 2048 encryption took 88.000 milliseconds, avg over 1 iterations
RSA 2048 decryption took 1456.000 milliseconds, avg over 1 iterations
DH 2048 key generation 661.000 milliseconds, avg over 1 iterations
DH 2048 key agreement 665.000 milliseconds, avg over 1 iterations
ECC 256 key generation 130.400 milliseconds, avg over 5 iterations
EC-DHE key agreement 118.000 milliseconds, avg over 5 iterations
EC-DSA sign time 136.800 milliseconds, avg over 5 iterations
EC-DSA verify time 253.800 milliseconds, avg over 5 iterations
wolfSSL Client and Server Examples for TI-RTOS TCP/IP Demo Projects
When using the TI-RTOS TCP/IP stack, developers typically reference the TI-RTOS demo projects. To make it easier for developers to get started with integrating wolfSSL into TI-RTOS and the TI TCP/IP based client or server applications, wolfSSL has created an example SSL client and SSL server which are based on the Tiva TM4C1294NCPDT examples found in CCS under “Project -> Examples”. Search for TI-RTOS for TivaC -> TCP Echo examples -> Driver Examples -> EK-TM4C1294 -> TI Target Examples -> Ethernet Examples for a reference.
The wolfSSL examples can be found in the GitHub repository linked at the top of this page.
The project README provides insight for working with TI-RTOS TCP/IP stack.
When testing the above SSL client or server on a TI-RTOS based device, it is recommended to test against one of the standard wolfSSL example applications running on a desktop machine. The standard wolfSSL example applications are located in the wolfSSL root directory under the <wolfssl_root>/examples directory. If working with CyaSSL 3.1 or later you will need to run these from the wolfSSL root directory, for examples: “./examples/server/server -b”
For more information about building and running these standard example applications on a desktop machine, please refer to Chapter 3 of the wolfSSL Manual.
Please contact wolfSSL with any questions about using wolfSSL on TI-RTOS-based devices.
About Texas Instruments
Texas Instruments designs and manufactures analog, digital signal processing and DLP® chip technologies that help customers develop products that matter! Innovation is the foundation upon which TI is built. Today their analog and embedded processing products are shaping the future of electronics. Headquartered in Dallas, Texas, TI has over 100,000 analog ICs and embedded processors, along with software, tools, and the industry's largest sales/support staff. For more information, visit the Texas Instruments website at www.ti.com.