The wolfSSL embedded SSL/TLS library (formerly CyaSSL) 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 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.



References


wolfSSL Product Page

wolfSSL examples repository on GitHub

TI Company Page

TI micro controllers Page

TI Tools & Software Page

TI TivaWare™ Page

TI Support & Community Forum

TI Code Composer Studio version 6.0 IDE

Using CyaSSL with TI-RTOS

Using wolfSSL with TI-RTOS

 

wolfCrypt FIPS Module

The CMVP has issued FIPS 140-2 Certificate #2425 for the wolfCrypt Module developed by wolfSSL Inc.

wolfSSL Texas Instruments Support

Copyright 2016 wolfSSL Inc.  All rights reserved.

Questions?

Please feel free to contact us with any questions you might have.

wolfSSL 3.9.10

Release 3.9.10 includes medium level vulnerability fix, configure option changes, extended master secret support, ARMv8 support, and more.

embedded ssl

Questions? +1 (425) 245-8247