Based on the sslServer and sslClient programs,
implement a secure Upload/Download services as follows:
sslUpDnServer
<port#>
sslUpClient <hostname> <port#>
<file>
sslDnClient <hostname> <port#>
<file>
The sslUpClient uploads <file> to the sslUpDnServer which it turn downloads it to any sslDnClient. Each side (server or client)
makes sure that the certificate presented by the other side has CN =
<hostname>, where <hostname> is the name of the machine where the
process is running.
For example:
The current (Fall 2008) our fast hosts are: deneb, vega and antares.
deneb % sslUpDnServer
10203
vega %
sslUpClient
deneb 10203 file1
antares % sslDnClient deneb 10203 file2
If the sslUpDnServer runs on
deneb,
then deneb.pem should have CN=deneb
and the sslUpClient (sslDnClient) should check that the peer certificate has CN=deneb.
Similiarly, if the sslUpClient (sslDnClient) runs on vega (antares), then vega.pem
(antares.pem)
should have CN=vega (antares)
and the sslUpDnServer should check that the peer certificate has
CN=vega (antares).
Ø
Test your programs by generating the certificates
for the fast hosts; you can act as your own CA by signing these certificates.
Ø
Submit your programs as well as the generated
certificates. Just use the submit utility to submit your files (README, Makefile, src files, certificates)
to cs772.