ThingWorx Edge C SDK > Porting to Another Platform > SSL/TLS Support
SSL/TLS Support
The C SDK has a pluggable security layer. As of release 2.0.0, it defaults to using the OpenSSL library that is provided with the SDK for full TLS 1.1 compliant certificate-based authentication and 128-bit AES encryption.
Good reasons for using the OpenSSL library include compliance with cipher suites supported by Tomcat (critical for connecting to an instance of ThingWorx platform), HW-based acceleration, and/or a need for a FIPS compliant implementation based on OpenSSL.
If you choose to use some library other than the provided OpenSSL library, point TW_TLS_INCLUDE to the required header file for your implementation. In addition, you need to set up the C SDK to use your implementation by following the template provided in the file, twTemplateSSL.h, located in the subdirectory, /src/tls, of the C SDK installation. This file contains a template for developing an SSL/TLS wrapper layer for your SSL/TLS implementation.
The NO_TLS option will result in clear-text communications between your application and ThingWorx platform. The NO_TLS option is provided as a convenience for development purposes, but is NOT recommended for any production implementations. If you choose to use that setting you must also #define NO_TLS.
#define TW_TLS_INCLUDE "twOpenSSL.h"
#define TW_TLS_INCLUDE "twNoTls.h"
#define NO_TLS
A much more practical way to build without using HTTPS for development purposes is to use the function, twApi_DisableEncryption(). For details, see also the Doxygen documentation provided with the SDK bundle.