Example applications using the wolfSSL lightweight SSL/TLS library
Switch branches/tags
Nothing to show
Clone or download
JacobBarthelmeh Merge pull request #113 from cconlon/cmsexamples
Add PKCS#7/CMS Examples and OpenSSL Interop Test Script
Latest commit 35bb254 Nov 27, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
SGX_Linux fix spelling error on function and cast return value Jul 10, 2018
SGX_Windows Merge pull request #99 from JacobBarthelmeh/sgx Jul 30, 2018
android update Android Studio example project Nov 15, 2018
btle Added DEBUG_WOLFSSL to the debug flags in Makefile. Thanks Kaleb. Jul 31, 2017
certfields add cert field extraction example Aug 25, 2016
certgen Fix for wc_SignCert reponse code checking in CSR example. Jan 23, 2018
certmanager Added cert manager load buffer example (thanks Kaleb). Aug 12, 2018
certs add simple CMS examples for different content types Nov 15, 2018
crypto Some memory & merge conflict fixes Jun 1, 2017
custom-io-callbacks Update README.md Dec 27, 2016
dtls DTLS over IPv6: examples (#102) Jul 25, 2018
ecc Fix for free() issue on the ecc-stack example. Requires PR wolfSSL/wo… Jul 23, 2018
mynewt add mynewt test script for jenkins. Aug 22, 2018
pkcs7 conditionally compile CMS SignedData detached signature example based… Nov 27, 2018
psk Fixed tab indentations. Moved struct in client-psk-nonblocking to top… Jun 1, 2017
signature Add simple RSA sign and verify examples Nov 14, 2018
tirtos_ccs_examples Update README.md Nov 3, 2017
tls added define fixes to stop errors when executing make in tls dir Sep 6, 2018
utasker uTasker: remove hard tabs Apr 22, 2016
wolfCLU Merge pull request #94 from wolfSSL/keygen_sig_ver Jul 12, 2018
.gitignore add CMS SignedData example using CryptoDev callback Nov 16, 2018
.gitmodules Add Android Studio Gradle project example Aug 29, 2017
README.md First pass at a BTLE example for ECC encrypt scheme. Jul 18, 2017

README.md

wolfSSL Example Applications

This repository contains example applications, written in C, which demonstrate how to use the wolfSSL lightweight SSL/TLS library for secure communication.

Each directory represents a unique topic (SSL/TLS, DTLS, PSK, etc.) and contains a Makefile as well as a simple tutorial on the given topic.

Current Examples

utasker (uTasker wolfSSL Example Tasks)

This directory contains example uTasker client and server tasks that demonstrate using wolfSSL with the uTasker stack. These have been tested on the uTasker Simulator.

Please see the README.md in utasker/ for further usage and details.

android (Android NDK Examples)

This directory contains examples that demonstrate using wolfSSL and wolfSSLJNI on the Android platform, using the Android NDK toolchain.

Please see the README.md in android/ for further usage and details.

certfields (X509 field extraction)

This directory contains an example that demonstrate using the wolfSSL to read a DER encoded certificate and extract the public key and subject name information.

Please see the README.md in certfields/ for further usage and details.

certmanager (wolfSSL CertManager)

This directory contains examples that demonstrate using the wolfSSL CertManager (Certificate Manager) functionality.

Please see the README.md in certmanager/ for further usage and details.

wolfCLU (wolfSSL Command Line Utility)

This is a tool to provide command line access to wolfcrypt cryptographic libraries. wolfSSL command line utility will allow users to encrypt or decrypt a user specified file to any file name and extension.

Please see the README.md in clu/ for further usage and details.

Unique feature to wolfSSL CLU

The decision to allow for unique file extensions was prompted by automated tools available for brute forcing files. It will not provide extra security cryptographically however it will force attackers to check the header information on every single brute force attempt. This will provide further frustration and an extra step in any attempt to brute force a file encrypted with our utility.

DTLS (Datagram TLS)

This directory contains examples of using DTLS, with client and server examples demonstrating UDP, DTLS, non-blocking, session resumption, and multi-threading.

When compiling wolfSSL for use with these examples, wolfSSL will need to be compiled with DTLS support:

cd wolfssl-[version]
./configure --enable-dtls

Examples in this directory may be compiled using:

cd ./dtls
make

PSK (Pre-Shared Keys)

This directory contains examples of using PSK, with client and server examples demonstrating TCP/IP, PSK, non-blocking, session resumption, and multi-threading.

When compiling wolfSSL for use with these examples, wolfSSL will need to be compiled with PSK support:

cd wolfssl-[version]
./configure --enable-psk

Examples in this directory may be compiled using:

cd ./psk
make

SSL/TLS

This directory contains examples of using SSL/TLS, with client and server examples demonstrating TCP/IP, SSL/TLS, non-blocking, session resumption, and multi-threading.

Examples in this directory may be compiled using:

cd ./tls
make

BTLE

This directory contains examples for securing a Bluetooth Low Energy Link (BTLE). BTLE packets are small and throughput is low, so these examples demonstrate a way to exchange data securley without BTLE pariing.

Notes

When necessary, examples will use the example certificates and keys located in the ./certs directory. These certificates and keys have been pulled in from the main wolfSSL repository.

Support

Please contact wolfSSL at support@wolfssl.com with any questions, bug fixes, or suggested feature additions.