wolfssl/wrapper/CSharp/README.md

92 lines
1.5 KiB
Markdown

# 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
```