--------------------------------------------------------------------------------
------------------------------------ README ------------------------------------
--------------------------------------------------------------------------------

        TSS Server and TSS Client Reference Applications (April 27, 2017)
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

This README provides guidance for how to build and run the TSS Client and Server
Reference Applications.  The reference applications have been built and tested
in Linux (Ubuntu 16.04).  Currently, the reference applications connect and
establish a tunnel over SSL.  Once the tunnel is established, both applications
create and initialize a virtual network interface, known as a “tap”.  The host
machines may then route IP data through the SSL tunnels via the virtual 
interfaces.  Default values are as follows:

			    TSS Server		    TSS Client
Virtual Interface (VI) Name: 	tap0			tap0
IP Address of VI:		192.168.1.1		192.168.1.2
Netmask of VI:			255.255.255.0		255.255.255.0
Server Listening Port:		55000


--------------------------------------------------------------------------------

From the source directory, run “make all” to build both the tss_server and 
tss_client executables.
        > make all


The TSS Server application requires a certificate file and a key file in order 
to establish the SSL tunnel with the TSS Client application.  It can be started
as follows:
        > sudo ./tss_server -c cert.crt -k priv.key

The TSS Client application requires an IP:port connection to be provided as a
command line argument.  The address specified should be the IP address of the
physical network interface of the machine hosting the TSS_Server application. 
The port number specified should be the port the TSS_Server application is
listening on (default: 55000).
        > sudo ./tss_client -c 1.2.3.4:55000


--------------------------------------------------------------------------------

Details regarding the creation of certificate and key files can be found on
various websites.  The following command creates a 2048-bit private key
(priv.key) and a self-signed certificate (cert.crt):

        > openssl req -newkey rsa:2048 -nodes -keyout priv.key \
                      -x509 -days 365 -out cert.crt

Certificate and Key generation credit: 
   https://www.digitalocean.com/community/tutorials/openssl-essentials-working-with-ssl-certificates-private-keys-and-csrs


