Messagerie chiffrée de bout en bout. Serveur Python + Client Flutter.
acrypcom/
├── server/ # Serveur Python (FastAPI + WebSocket)
│ ├── main.py
│ ├── database.py
│ ├── security.py
│ ├── sockets.py
│ └── requirements.txt
├── app/ # Client Flutter (Android)
│ ├── lib/
│ │ ├── main.dart
│ │ ├── crypto/ # Chiffrement X25519 + AES-GCM
│ │ ├── data/ # API, WebSocket, DB, Notifications
│ │ └── presentation/ # UI (login, chat, profil, accueil)
│ ├── android/
│ └── pubspec.yaml
├── .gitignore
└── README.md
cd server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python -m uvicorn main:app --host 0.0.0.0 --port 8000Le serveur écoute sur http://0.0.0.0:8000.
cd app
flutter pub get
flutter build apk --debug
adb install build/app/outputs/flutter-apk/app-debug.apk- Ouvrez l'app
- Cliquez sur "Configuration Serveur Local"
- Entrez l'IP du serveur :
IP_DU_SERVEUR:8000 - Créez un compte
- Recherchez un utilisateur et démarrez une conversation
- Chiffrement E2EE : X25519 + AES-GCM 256
- Clé unique par message (dérivation HKDF)
- Rotation de clés toutes les 60s
- Anti-rejeu (UUID + timestamp)
- Padding aléatoire sur les payloads
- Mots de passe hachés avec PBKDF2-SHA256 + sel
- Aucune donnée personnelle requise