Skip to content
8naamaPublic

About

Encrypted TCP messaging system with Python server and C++ clients for a University project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

26 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

MessageU

Encrypted TCP messaging system with Python server and C++ clients for University project.

Prerequisites

  • Server: Python 3.12+.
  • Client: C++17, Boost.Asio, Crypto++ (RSA-1024, AES-128-CBC)
  • CMake/Make

Server

The server runs by default at localhost:1357, unless defined to use a different port at myport.info. It listens for incoming TCP traffic from Clients and responds to the incoming requests.

Supported requests

  1. Registration of a new user
  2. List existing clients (not including the requester client)
  3. Get Public key of another client
  4. Send message to another client (saves the waiting message in DB)
  5. List awaiting messages (of the requester client)

Client

The client program prints a menu to the console to allow the user to choose the wanted action to commit. It communicates with the server as defnied at server.info (or uses default localhost:1357)

Supported actions

  1. Register (only available if my.info is not existing or invalid)
  2. List clients (available contacts)
  3. Request public key of another client
  4. Request to get awaiting messages
  5. Send a text message to another client
  6. Request symmetric key of another client
  7. Send symmetric key to another client
  8. Send a file to another client
  9. Exit the program

How to run the program

Server

Can be started from the root of the project with:

make start-server

Or from src/server with:

python3 main.py

Client

Build the client from the root of the project with:

make rebuild

This will generate the binary file in src/client/build folder. You can copy it to any path that you'd like to start the client from, or start from there (and add a server.info file if needed). And start the client with:

./client

Note

server.info and my.info (if already registered) should exist in the same path of the executable, where you run the program from in order to be recognized.

About

Encrypted TCP messaging system with Python server and C++ clients for a University project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages