goofy ahh private (hoepfully) TCP Chat
How to Use Client?
Download the client.c, Makefile, setup.sh and runClient.sh files
Get dependencies liboqs using ./setup.sh on any linux terminal (tested on WSL/Termux/VMWare using Ubuntu/Kali)
Compile using make <br?
Execute using ./runClient.sh for 1st time or simply ./client for subsequent executions
Enter the public host IP 152.67.7.144
Enter the port 25021
Enter the password (if in allowlist) else the golden passkey
Beep Boop - You're in!...as long as my server.c is running ;)
Log 1 ("the first 04:04")
03.Sep.2025
ADDED 'client.c' and 'server.c'
Features as of this commit:
- Standard 1on1 TCP based CLI chat service
- Password authentication
- Private to public IP tunelling via Cloudboot.in
Log 2 ("they are watching")
06.Sep.2025
UPDATED 'client.c' and 'server.c'
ADDED 'firewall.conf'
Features as of this commit:
- Added an in-code, toy firewall via IP allowlisting
- Accomodate spaces in between chat message sentences
- Fixed a potential security risk in variable handling
Log 3 ("Uh uh uh! You didn't say the magic word!")
11.Sep.2025
UPDATED 'client.c' and 'server.c'
Features as of this commit:
- Added a golden passkey, when entered, skips the firewall checking
- Added colors to console lines at important checkpoints
- Added sound pings as notifcation for message receipt
- Improved console text formatting
Log 4 ("for the unkown listeners of the night")
27.Sep.2025
UPDATED 'client.c' and 'server.c'
Features as of this commit:
- Added two-way encryption in chat messages using the Vigenere Cipher
- Added Diffie-Hellman Exchange protocol to generate & exchange server & client side keys
- Added the rotating dash waiting animation using threads
- Optimized functions and scope of variables as necessary
Log 5 ("Keep em coming")
03.Oct.2025
UPDATED 'client.c' and 'server.c'
Features as of this commit:
- Added asynchronous texting for using separate threads for sending() & receiving()
- Added clientside RTT latency checker keys
- Optimized client code by removing stale functions
Log 6 ("Repair, Reflect and Re-emerge")
08.Oct.2025
UPDATED 'client.c' and 'server.c'
ADDED 'motd.txt'
Features as of this commit:
- Remodelled chat threads and fixed a major practical issue* of asynchronous chat using the ncurses library
- Significant terminal UI overhaul
- Added rate limiting for clients via Token Bucket principle
- Added a word of the day for each chat session
Log 7 ("Wanted dead or and alive")
21.Oct.2025
UPDATED 'client.c' and 'server.c'
ADDED 'Makefile'
ADDED 'setup.sh'
ADDED './runServer.c' and './runClient'
Features as of this commit:
- Added postquantum cryptographic security via the CRYSTALS-Kyber 768 algorithm for the shared session key, replacing Diffie Hellman Key Exchange
- Added the AES-GCM 256 standard cipher for encrypt/decryption of chat messages, along with its innate HMAC principle, replacing Vigenere Cipher
- Optimized the workflow for first time users via Makefile and setup.sh files
- Code revision to remove obselete functions
- Updated the token refill rate for rate limiting
This project requires the Open Quantum Safe (OQS) library (liboqs) for its post-quantum cryptography. The setup.sh script will automatically clone and build it.
liboqs: https://github.com/open-quantum-safe/liboqsliboqsis licensed under the MIT license.