This is one project from Lehigh CSE303 course which enables user to upload and download file in multiple secure methods.
- a server listening on certain port so that client can connect it to send and recieve files.
- a well-defined protocol for client and server so that they can send file fast and correctly.
- Using md5 to verify, public-private key to encrypt the content of file.
- Implemented LRU cache on both client and server.
##Preparation:
- Clone the repository.
cd
to the newly cloned project.- Run
make
in command line to get output file in./obj64
.
- To run server, you need to build one folder as root of server.
cd
to that folder and execute server file with./.../server
. Here,server
is the file in./obj64
folder.- There are three parameters:
-h
help;-l
cache basket #;-p
port.
-
To run client, you also need to build one folder as root of client.
-
cd
to that folder and execute server file with./.../client
. Here,client
is the file in./obj64
folder. -
There are six parameters:
-h
help;-s
server IP;-P
put file name;-G
get file name;-S
save file name; `-P port. -
You can build pem encryption file with:
openssl genrsa -out private.pem 2048 openssl rsa -in private.pem -outform PEM -pubout -out public.pem
and put them in ./obj64. Program would recognize them and encrypt or decrypt file automatically.
RSA, Openssl, md5, Socket