wolfSSL CSharp Wrappers
This directory contains the CSharp wrapper for the wolfSSL TLS layer with examples.
wolfSSL_CSharp: wolfSSL TLS layer wrappers (library).wolfCrypt-Test: wolfCrypt layer wrapper testing.user_settings.h: wolfCrypt wrapper user settings.
Examples:
wolfSSL-DTLS-PSK-ServerwolfSSL-DTLS-ServerwolfSSL-Example-IOCallbackswolfSSL-TLS-ClientwolfSSL-TLS-PSK-ClientwolfSSL-TLS-PSK-ServerwolfSSL-TLS-ServerwolfSSL-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.
To successfully run and build the solution on Windows Visual Studio you will
need to open a new solution wolfSSL_CSharp.sln located in wrapper\CSharp\wolfSSL_CSharp.sln.
Select the CPU type, configuration, and target file.
select Build and either Rebuild Solution or Build Solution.
Linux (Ubuntu) using mono
Prerequisites for linux:
apt-get update
apt-get upgrade
apt-get install mono-complete
Build wolfSSL and install
./autogen.sh
cp wrapper/CSharp/user_settings.h .
./configure --enable-usersettings
make
make check
sudo make install
Build and run the wolfCrypt test wrapper
From the wrapper/CSharp directory (cd wrapper/CSharp):
Compile wolfCrypt test:
mcs wolfCrypt-Test/wolfCrypt-Test.cs wolfSSL_CSharp/wolfCrypt.cs wolfSSL_CSharp/wolfSSL.cs wolfSSL_CSharp/X509.cs -OUT:wolfcrypttest.exe
mono wolfcrypttest.exe
Build and run the wolfSSL client/server test
From the wrapper/CSharp 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/wolfCrypt.cs wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs wolfSSL_CSharp/wolfSSL.cs wolfSSL_CSharp/X509.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