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.
- cdto the newly cloned project.
- Run makein command line to get output file in./obj64.
- To run server, you need to build one folder as root of server.
- cdto that folder and execute server file with- ./.../server. Here,- serveris the file in- ./obj64folder.
- There are three parameters: -hhelp;-lcache basket #;-pport.
- 
To run client, you also need to build one folder as root of client. 
- 
cdto that folder and execute server file with./.../client. Here,clientis the file in./obj64folder.
- 
There are six parameters: -hhelp;-sserver IP;-Pput file name;-Gget file name;-Ssave 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