132 lines
3.7 KiB
Markdown
132 lines
3.7 KiB
Markdown
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.
|
|
|