Desktop application for the Confy encrypted communication system.
A secure desktop application for peer-to-peer encrypted messaging using the Confy communication system. This desktop client provides a user-friendly graphical interface for establishing encrypted connections with other peers, exchanging cryptographic keys, and communicating with end-to-end encryption using industry-standard algorithms.
Learn more about the project at github.com/confy-security
Made with dedication by students from Brazil π§π·.
- End-to-End Encryption - Messages are encrypted using AES-256 in CFB mode
- Digital Signatures - Messages are signed using RSA with PSS padding for authenticity
- Secure Key Exchange - RSA-4096 key exchange with OAEP padding
- Modern UI - Intuitive desktop interface for secure messaging
- Debug Mode - Detailed logging for troubleshooting and development
- Cross-Platform - Works on Windows, macOS, and Linux
- WebSocket Support - Secure peer-to-peer communication over WebSocket (WSS)
- Python: 3.13 or higher
- OS: Windows, macOS, or Linux
- RAM: Minimum 4GB recommended
- Disk Space: 200MB for application and dependencies
Install using an AUR helper like yay:
yay -S confy-appDownload the latest installer for your operating system from the Releases page.
Clone the repository and install dependencies using Poetry:
git clone https://github.com/confy-security/app.git
cd app
poetry installThen run the application:
poetry run python -m confyOr use the task runner:
task runTo build a standalone executable for your platform:
task buildThe executable will be created in the dist/ directory.
To package the application as a native binary for your operating system:
task packageThis creates a platform-specific package that can be distributed independently.
git clone https://github.com/confy-security/app.git
cd appEnsure you have the following installed:
Important
Due to application dependencies, we recommend using specifically Python 3.13.7 during development.
poetry config virtualenvs.create true
poetry config virtualenvs.in-project trueThis creates the virtual environment in a .venv directory within the project.
poetry installOn Windows:
.venv\Scripts\Activate.ps1On Linux or macOS:
source .venv/bin/activateNow you're ready to start developing! π
- RSA Key Generation - Each client generates a 4096-bit RSA key pair
- Public Key Exchange - Public keys are exchanged securely over WebSocket
- AES Key Generation - A random 256-bit AES key is generated
- Encrypted Key Distribution - AES key is encrypted with peer's RSA public key
- Secure Communication - All messages are encrypted with the shared AES key and signed
- Message Encryption - AES-256 in CFB mode
- Key Encryption - RSA-4096 with OAEP padding
- Signatures - RSA-4096 with PSS padding and SHA-256
- Cryptography Library - Uses the
cryptographylibrary (actively maintained)
Configure the application using environment variables:
# Enable debug mode for detailed logging
export DEBUG=true
# Or create a .env file
echo "DEBUG=false" > .envCreate a .env file in your project root:
DEBUG=falseConfigure the server address in the application settings:
- Secure WebSocket -
wss://example.com(recommended) - WebSocket -
ws://example.com(use only for testing) - HTTPS -
https://example.com(automatically converts to WSS) - HTTP -
http://example.com(automatically converts to WS)
The application stores your connection history for quick access to previously used servers.
Once you have the development environment set up, you can use these commands:
| Command | Description |
|---|---|
task run |
Run the application |
task test |
Execute tests |
task build |
Build the application |
task package |
Package as native binary |
task lint |
Check code quality |
task format |
Format code |
task mypy |
Run type checking |
task radon |
Check code complexity |
task bandit |
Security analysis |
Note
Make sure the virtual environment is activated before running these commands.
"Error connecting to server"
- Verify the server address is correct
- Ensure the server is running and accessible
- Check your network connectivity
- For WSS connections, verify the SSL certificate is valid
"Connection refused"
- Confirm the server is listening on the specified address and port
- Check if a firewall is blocking the connection
"AES key has not been established yet"
- Wait a moment for the key exchange to complete
- Ensure both peers are connected
- Check if the server is properly relaying messages
"Failed to encrypt/verify message"
- This indicates an issue with the encryption layer
- Try reconnecting to the server
- Check if both peers are running compatible application versions
Slow response times or freezing
- Check your network latency to the server
- Consider using a server closer to your location
- Check system resources (RAM, CPU)
- Try restarting the application
- Launch the application
- Enter your user ID
- Enter the recipient's user ID
- Configure the server address
- Click "Connect"
- Once connected, type your message in the message input field
- Press Enter or click "Send"
- Your message will be encrypted and transmitted securely
- Verify Recipients - Ensure you're communicating with the intended person
- Secure Connections - Always use WSS (WebSocket Secure) in production
- User ID Security - Store your user ID securely
- Session Management - Disconnect when finished communicating
Enable debug mode to see detailed information:
DEBUG=true task runThis will display:
- Key exchange details
- Message encryption/decryption information
- Connection status changes
- Signature verification steps
Configure a custom server address in the application settings or environment:
SERVER_URL=wss://custom-server.com:8080 task runConfy Desktop relies on well-maintained and secure libraries:
- Desktop Framework - Modern Python UI framework for cross-platform development
- WebSocket Support - Secure peer-to-peer communication
- Encryption - Industry-standard cryptographic primitives
- Configuration - Settings management and environment variables
All dependencies are installed automatically with Poetry.
Run the test suite:
task testRun tests with coverage:
task test --covIf you encounter any issues, please report them:
- Check if the issue already exists on GitHub Issues
- Provide clear reproduction steps
- Include your Python version and OS
- Attach relevant logs with
DEBUG=true
See CONTRIBUTING.md for more information.
For security vulnerabilities, please follow responsible disclosure:
DO NOT open a public GitHub issue.
Instead, email: confy@henriquesebastiao.com
See SECURITY.md for detailed information.
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
- Setting up the development environment
- Code standards and style guidelines
- Testing requirements
- Pull request process
Confy Desktop is open source software licensed under the GPL-3.0 license.
- Confy Security - github.com/confy-security
- Contributing Guide - CONTRIBUTING.md
- Security Policy - SECURITY.md
- Code of Conduct - CODE_OF_CONDUCT.md
- CLI Client - github.com/confy-security/cli
For questions and support:
- Check existing issues and discussions on GitHub
- Review the CONTRIBUTING.md guide
- Contact the team at confy@henriquesebastiao.com
This project was created with dedication by Brazilian students π§π· as part of the Confy Security initiative.
Built with β€οΈ by the Confy Security Team
