40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
## TLS server using picoTCP via wolfSSL custom callbacks
|
|
|
|
This TLS server runs in userspace, using picoTCP as compiled-in TCP/IP stack.
|
|
|
|
`picotcp-server` has been tested on Linux using latest picoTCP master, and wolfSSL 4.5.0.
|
|
|
|
|
|
### Requirements
|
|
|
|
- PicoTCP v.1.7 or later
|
|
- wolfSSL (default configuration)
|
|
- Access to `/dev/net/tun` on the host system (typically root privileges)
|
|
|
|
### How to compile picotcp-server
|
|
|
|
- clone or download [picoTCP](https://github.com/tass-belgium/picotcp.git)
|
|
- compile picoTCP with `make ARCH=shared TAP=1 WOLFSSL=1`
|
|
- modify `PICOTCP_PATH` at the top of Makefile, pointing to the picoTCP root directory
|
|
- run `make`
|
|
|
|
### Testing picotcp-server
|
|
|
|
Run `picotcp-server` with no arguments. If the executable was run with the right permissions (i.e. accessing `/dev/net/tun`), a `tap0` device will be created, and the picoTCP endpoint address is set to `10.0.0.1/24`.
|
|
|
|
The TLS server listens to port 11111 by default, and can be reached using the [TLS client example](../tls/client-tls.c).
|
|
|
|
Example:
|
|
|
|
```(bash)
|
|
# Server side:
|
|
./picotcp-server
|
|
|
|
# On client side:
|
|
ip addr add dev tap0 10.0.0.2/24
|
|
ip link set tap0 up
|
|
|
|
./client-tls 10.0.0.1
|
|
|
|
```
|