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.

wolfSSL is dual licensed under both the GPLv2 as well as a standard commercial license.  For licensing information, please see the wolfSSL License Page, or contact us directly.

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 Logo

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.