Skip to content

MRITARI/sonkkokoodi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sönkkökoodi

⚠️ DISCLAIMER: Made by 100% AI do not use for secure communication.

Do not trust your life, your corporate secrets, or your illicit cookie recipes to this software. It is a cryptographic experiment completely generated by an LLM.

Sönkkökoodi is a portable, frameless, C++ Qt6 chat application that communicates over a completely "dumb" broadcast Python TCP server.

Instead of relying on the server to handle routing, accounts, or security, the server is entirely blind and stateless. All security, identity verification, and message routing are handled client-side using OpenSSL.

Features

  • Zero-Knowledge Infrastructure: The Python relay server stores no state, no database, and cannot read the messages. It simply takes raw bytes and broadcasts them to connected sockets.
  • Cryptographic Identity: Generates a persistent secp256r1 (prime256v1) ECDSA keypair on first launch. Every packet is cryptographically signed to prevent impersonation.
  • Authenticated Encryption: All payloads are encrypted using AES-256-GCM. Tampered packets are immediately dropped.
  • Ephemeral Key Exchange: Uses an automatic ECDH (Elliptic Curve Diffie-Hellman) handshake to establish a shared room key the moment you connect.
  • Hash Ratcheting (Perfect Forward Secrecy): The AES room key is automatically hashed and rotated every 15 messages. If a key is compromised later, past messages remain unreadable.
  • TOFU (Trust On First Use): Automatically pins the ECDSA Public Keys of other users. If someone tries to spoof a known alias, the UI flags them as a (SPOOFER).
  • Encrypted Local Vault: Chat history and notes are saved locally to disk using a key derived from your password via PBKDF2-HMAC-SHA256 (100,000 iterations). When you lock the app, the decryption key is scrubbed from RAM.
  • Dynamic OTA Installer: Includes a standalone C++ installer that directly hits the GitHub API to fetch and extract the latest releases.

Repository Structure

  • main.cpp - The core Sönkkökoodi chat application.
  • installer.cpp - The standalone GUI installer that fetches from GitHub Releases.
  • server.py - The blind asyncio Python broadcast relay.
  • CMakeLists.txt - Build configuration.

🛠️ Build Instructions (Windows)

This project is built using MSYS2 / MinGW-w64.

1. Install Dependencies

Open your MSYS2 UCRT64 terminal and install the required toolchains:

pacman -S mingw-w64-ucrt-x86_64-toolchain
pacman -S mingw-w64-ucrt-x86_64-cmake
pacman -S mingw-w64-ucrt-x86_64-qt6
pacman -S mingw-w64-ucrt-x86_64-openssl

2. Compile

Navigate to the repository folder and run:

mkdir build
cd build
cmake -G "MinGW Makefiles" ..
mingw32-make -j8

This will output sonkkokoodi.exe and sonkkokoodi_installer.exe.


🚀 Deployment

The Server

The Python server is designed to be highly resilient against open-internet DoS attacks. It enforces strict payload limits, connection caps, and token-bucket rate limiting.

  1. Install Python 3.7+ on your VPS.
  2. Run the server: python3 server.py
  3. (Optional but recommended) Run it as a systemd service and open port 9999 on your firewall.

The Client Installer

To distribute the app to users:

  1. Compile the project.
  2. Gather sonkkokoodi.exe and all required Qt6/MinGW .dll files into a zip file.
  3. Upload the .zip as an asset to a GitHub Release.
  4. Send users the compiled sonkkokoodi_installer.exe. It will automatically fetch the zip, extract it securely to their AppData folder, and create a desktop shortcut.

About

Sönkkökoodia vaa

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors