CS610 – Project #2
Creating a Dropbox®-like client-server application (with a few security enhancements).
Add some functionality to your application so that it supports multiple users and some security. The server will need to authenticate itself to users so that they know they are talking to the legitimate server. The users will also need to authenticate themselves to the server so that the server can make decisions about what files it will allow a user to upload/download. Although files can still be stored unencrypted on the server, communication between the client(s) and server should be cryptographically protected. I strongly recommend that you do not write cryptographic functions yourself, but instead use a well-known and trusted library like OpenSSL (https://www.openssl.org/). Once authenticated, a user should only be allowed to upload/download files to/from his or her cloud storage on the server and not to/from other users’ cloud storage.
Submit a design document and a tarred copy of your code using the “Project 2” link under “Assignments” in Canvas.
Your design document should explain the high-level design of the functionality you added for this project. Do not append this to your design document for Project 1 and do not re-explain to me the functionality you implemented in Project 1 (assuming it hasn’t changed – if your design and implementation of the Project 1 functionality has changed significantly then you will need to cover that in your Project 2 design document). Make sure to describe any non-standard libraries you use and how you use them. You don’t have to tell me about iostream, fstream, or any other standard programming libraries, but if you use socket, cryptographic, or other “specialized” libraries please describe
Your tarfile should include a file named README that explains how to compile and run your programs, how to use the client, and any known bugs either contains. Leave your server running on stu until your project has been
I will probably need at least two user accounts in order to test your programs
DescriptionIn this final assignment, the students will demonstrate their ability to apply two majorconstructs of the C programming language – Fu
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of