# Changelog — WGSecure (WGS) Toutes les modifications notables de ce projet sont documentées ici. Format basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/). Ce projet suit le [Versionnage Sémantique](https://semver.org/lang/fr/). --- ## [0.2.0] — 2026-06-01 ### Ajouté - **Onglet "À propos"** dans le panneau admin : logo bouclier, version, branding JT-Tools by Johnny - **Icône bouclier vectorielle** générée par QPainter (7 résolutions : 16→256 px) - Vert connecté / Rouge déconnecté / Orange connexion en cours / Bleu app / Violet admin - **Icône barre des tâches** : installation automatique de `~/.local/share/icons/wgsecure.png` et `~/.local/share/applications/wgsecure.desktop` au premier démarrage - **Thème sombre uniforme** sur les 6 onglets du panneau admin (CSS partagé `_TAB_CSS`) - Fond `#1c2833`, texte blanc, champs semi-transparents - Bandeau coloré par onglet (bleu/navy/teal/bleu/rouge) - TabBar cohérente avec onglet actif mis en évidence - **Makefile** : compilation binaire Linux (`make linux`) et Windows (`make windows` via Wine) - **README** enrichi avec badges shields.io (version, Python, PyQt6, plateformes) et emojis ### Corrigé - **Bug MDP vide** : `set_admin_password("")` effaçait incorrectement — hashait la chaîne vide, forçant une demande de mot de passe vide après suppression - **Menu systray incomplet** : `QAction` en variables locales GC'd par Python avant affichage → toutes les actions passent désormais `self` comme parent Qt - **Section infos invisible** : `QWidget` sans `autoFillBackground` ne peignait pas son fond ; remplacé par `QFrame` avec `setAutoFillBackground(True)` et couleurs explicites - **Bouton agrandir persistant** : `setWindowFlag` seul ignoré par Mutter/XWayland → `setWindowFlags()` complet sans `WindowMaximizeButtonHint` ### Amélioré - Fenêtre principale agrandie 380×460 → 400×520 pour afficher les 6 lignes d'infos - Police des labels infos : 11 → 12 px, couleurs explicites `#2c3e50` - Panneau admin : largeur 620 → 700 px pour éviter le débordement des onglets - `app.setWindowIcon()` posé sur `QApplication` (multi-tailles) + `setDesktopFileName()` - Page About : icône 96 → 86 px (−10 %), texte en blanc sur fond sombre `#1c2833` --- ## [0.1.0] — 2026-06-01 ### Ajouté - Interface graphique PyQt6 avec icône systray (Linux & Windows) - **Mode User** (défaut) : connexion / déconnexion WireGuard en un clic, statut en temps réel - **Mode Admin** (`--admin` ou via le menu) protégé par mot de passe - Panneau Admin avec 5 onglets : - **WireGuard** : configuration serveur (adresse, port UDP, clé publique, DNS, IP client) - **Clés** : génération de paires Curve25519 (clé privée / publique), aperçu config exportable - **MFA** : génération de secret TOTP, QR Code compatible Google Authenticator / Aegis - **Test connexion** : vérification UDP du serveur avant tunnel - **Sécurité** : gestion du mot de passe administrateur (SHA-256 + salt) - Surcouche MFA : dialogue TOTP avec minuterie de validité (fenêtre glissante ±1) - Génération de clés WireGuard via `cryptography` (X25519, sans `wg` binaire) - Écriture automatique du fichier `.conf` WireGuard avec permissions `0600` - Connexion via `wg-quick` (Linux) ou `wireguard /installtunnel` (Windows) - Statut temps réel : trafic RX/TX, dernier handshake - Réduction dans le systray à la fermeture de la fenêtre principale - Configuration persistante JSON (`~/.wgsecure/config.json`) --- *Versions planifiées :* - `0.3.0` — Import/export de profils WireGuard (.conf), support multi-profils - `0.4.0` — MFA par clé matérielle (FIDO2/YubiKey) - `0.5.0` — Paquet installable (Windows .exe / Linux .deb)