mirror of https://github.com/wolfSSL/wolfssl.git
92 lines
1.5 KiB
Markdown
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
|
|
```
|