wolfssl/wrapper/CSharp
Daniel Pouzzner a3fb5029f8 clean up trailing whitespace and misplaced CRLFs, add missing final newlines, remove stray UTF8 nonprintables (BOMs) and ASCIIfy stray homoglyphs (spaces and apostrophes), guided by expanded coverage in wolfssl-multi-test check-source-text. 2024-09-05 14:52:18 -05:00
..
wolfSSL-DTLS-PSK-Server update copyright to 2024 2024-07-19 13:15:05 -06:00
wolfSSL-DTLS-Server update copyright to 2024 2024-07-19 13:15:05 -06:00
wolfSSL-Example-IOCallbacks update copyright to 2024 2024-07-19 13:15:05 -06:00
wolfSSL-TLS-Client update copyright to 2024 2024-07-19 13:15:05 -06:00
wolfSSL-TLS-PSK-Client update copyright to 2024 2024-07-19 13:15:05 -06:00
wolfSSL-TLS-PSK-Server update copyright to 2024 2024-07-19 13:15:05 -06:00
wolfSSL-TLS-Server update copyright to 2024 2024-07-19 13:15:05 -06:00
wolfSSL-TLS-ServerThreaded update copyright to 2024 2024-07-19 13:15:05 -06:00
wolfSSL_CSharp update copyright to 2024 2024-07-19 13:15:05 -06:00
README.md clean up trailing whitespace and misplaced CRLFs, add missing final newlines, remove stray UTF8 nonprintables (BOMs) and ASCIIfy stray homoglyphs (spaces and apostrophes), guided by expanded coverage in wolfssl-multi-test check-source-text. 2024-09-05 14:52:18 -05:00
include.am Add documentation for the CSharp wrapper. 2023-01-16 11:13:25 -08:00
wolfSSL_CSharp.sln setup of default build config 2022-05-19 14:54:22 -06:00

README.md

wolfSSL CSharp Wrappers

This directory contains the CSharp wrapper for the wolfSSL TLS layer with examples.

  • wolfSSL_CSharp: wolfSSL TLS layer wrappers (library)

Examples:

  • wolfSSL-DTLS-PSK-Server
  • wolfSSL-DTLS-Server
  • wolfSSL-Example-IOCallbacks
  • wolfSSL-TLS-Client
  • wolfSSL-TLS-PSK-Client
  • wolfSSL-TLS-PSK-Server
  • wolfSSL-TLS-Server
  • wolfSSL-TLS-ServerThreaded

Windows

A Visual Studio solution wolfSSL_CSharp.sln is provided. This will allow you to build the wrapper library and examples. It includes the wolfSSL Visual Studio project directly.

Linux (Ubuntu) using mono

Prerequisites for linux:

apt-get update
apt-get upgrade
apt-get install mono-complete

Build wolfSSL and install

./autogen.sh
./configure --enable-wolftpm
make
make check
sudo make install

Build and run the wrapper

From the wolfssl root directory:

cd wrapper/CSharp

Compile server:

mcs wolfSSL_CSharp/wolfSSL.cs wolfSSL_CSharp/X509.cs \
wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs -OUT:server.exe

Compile client:

mcs wolfSSL_CSharp/wolfSSL.cs wolfSSL_CSharp/X509.cs \
wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs -OUT:client.exe

Run the example

In one terminal instance run the server:

mono server.exe

And in another terminal instance run the client:

mono client.exe

Enabling SNI

To enable SNI, just pass the -S argument with the specified hostname to the client:

mono client.exe -S hostname

And run the server with the -S flag:

mono server.exe -S