69 lines
3.7 KiB
Markdown
69 lines
3.7 KiB
Markdown
# 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)
|