#!/bin/bash

usage() {
    cat <<EOF
Usage: start_servers <options>

Starts a set of TLS servers.

The following servers are started:

Port 44330: openssl1.0.2, supporting rsa & ecdsa certificates
Port 44331: openssl1.1.1f, supporting rsa & ecdsa certificates
Port 44332: openssl3.0.0, supporting rsa & ecdsa certificates
Port 44333: libressl, supporting rsa, ecdsa and dsa certificates
Port 44334: tlslite-ng, supporting rsa, ecdsa and dsa certificates
Port 44335: gnu-tls, supporting rsa, ecdsa, dsa, ed25519 and ed448 certificates
Port 44336: mbedtls, supporting rsa and ecdsa certificates
EOF
    exit 1
}
while [[ "$#" -gt 0 ]]; do
    case $1 in
        -h|--help) usage ;;
    esac
    shift
done

./start_ca_servers

# Start openssl1.0.2 on port 44330
./start_openssl --version openssl1_0_2 --port 44330 --cert1 server-rsa --cert2 server-ecdsa -- -www &

# Start openssl1.1.1f on port 44331
./start_openssl --version openssl1_1_1 --port 44331 --cert1 server-rsa --cert2 server-ecdsa -- -www &

# Start openssl3.0.0 on port 44332
./start_openssl --version openssl3_0_0 --port 44332 --cert1 server-rsa --cert2 server-ecdsa -- -www &

# Start libressl on port 44333
./start_libressl --port 44333 --cert1 server-rsa --cert2 server-ecdsa --ca-file ca-certificates -- -www &

cipherlist=chacha20-poly1305,aes256gcm,aes128gcm,aes256ccm,aes128ccm,aes256,aes128,3des,aes128ccm_8,aes256ccm_8,rc4
# Start tlslite-ng on port 44334
./start_tlslite --port 44334 --cert rsa --cert2 ecdsa --cert3 dsa -- --cipherlist $cipherlist &

# Start gnu-tls on port 44335
./start_gnutls --port 44335 --cert rsa --cert2 ecdsa --cert3 dsa -- --disable-client-cert &

# Start mbedtls on port 44336
./start_mbedtls --port 44336 --cert rsa --cert2 ecdsa &
