SecureMessenger
A secure messaging application with client-server architecture using encryption for private communications.
- End-to-end encryption using SSL/TLS
- User registration with unique usernames
- Real-time chat between online users
- Colorful interactive CLI interface
- Message history tracking
- Notifications for new messages
- Multi-user support
- C++17 compatible compiler
- CMake (version 3.10 or higher)
- Boost library (with system component)
- OpenSSL library
- Clone this repository
- Make sure you have the prerequisites installed
- Build using the provided Makefile:
make buildThis will:
- Create a build directory
- Configure CMake
- Compile both the server and client applications
Before running the server, you need to generate SSL certificates:
make generate_certsThis command creates:
server.key- Private key for the serverserver.crt- Self-signed certificate for SSL encryption
make run_serverOr manually:
./build/server [port]The default port is 8443 if not specified.
make run_client # Connects to localhost:8443Or specify a custom server:
make client ip=192.168.1.100 port=8443Or manually:
./build/client <server_ip> <port>- Start the server first
- Launch the client and enter your username
- Select a user to chat with from the list of online users
- Send messages by typing and pressing Enter
- Type
/backto return to the user selection screen
- Uses Boost.Asio for asynchronous networking
- OpenSSL for secure communication
- JSON for message serialization
- Multi-threaded design for responsive UI
/back- Return to user selection- Press Enter on an empty message to refresh the chat
Stop the server and clean the build files:
make stop_server
make clean