Skip to content

Releases

Le Salon 1.9.0 — compatibilité FiSH

Choose a tag to compare

@MrTHP MrTHP released this 11 Nov 16:10

Le Salon 1.9.0 — compatibilité FiSH

Cette version ajoute un second niveau de chiffrement pour parler aux clients IRC qui ne connaissent pas RelayCrypt : FiSH en mode ECB, avec RelayCrypt toujours prioritaire.

Chiffrement

  • RelayCrypt reste le défaut : XChaCha20-Poly1305, clés dérivées par Argon2id, stockage local en 0600. Entre deux clients Le Salon, rien ne change.
  • FiSH (Blowfish ECB) pour mIRC, HexChat, irssi, ZNC et les autres clients compatibles : messages sortants en +OK <base64 FiSH>, détection et déchiffrement des messages entrants.
  • RelayCrypt prioritaire : si une clé RelayCrypt existe pour la cible, FiSH est ignoré. /encrypt remove cible permet de forcer FiSH.
  • Sujets de salon chiffrés et déchiffrés avec le même mécanisme.
  • Détection des variantes : +OK et mcps en ECB ; les messages CBC (+OK *, mcps *) affichent un message explicite « non pris en charge ».
  • Clés FiSH par réseau et par cible, dans ~/.config/le-salon/fish_keys.json en 0600.
  • Placeholders si la clé est absente, la clé est incorrecte ou le message est en CBC : le client n'affiche pas de charabia.

Commandes

Commande Effet
/setkey [cible] clé définit une clé FiSH (4 à 56 octets), pour la cible active si elle est omise
/delkey [cible] supprime la clé FiSH
/showkey [cible] affiche la clé FiSH
/fish [list|status] état des clés FiSH du réseau actif
/keyx indique que DH1080 n'est pas pris en charge dans cette version

Les clés FiSH s'échangent hors bande : utilise /showkey sur l'autre client, puis /setkey ici. Les clés blow.ini chiffrées ne sont pas importées.

Sécurité et limites

  • FiSH ECB est un format de compatibilité, pas un chiffrement moderne : pas d'authentification, pas d'intégrité, motifs répétés visibles, clés échangées manuellement et sans forward secrecy.
  • DH1080 et CBC ne sont pas implémentés. DH1080 n'authentifie personne (MITM possible sans vérification hors bande) et CBC n'apporte pas d'intégrité. Le mode ECB + clé manuelle couvre l'essentiel des clients FiSH.
  • Les clés FiSH doivent faire 4 à 56 octets (limite Blowfish).
  • L'historique local reste en clair, comme pour RelayCrypt ; il est protégé par les permissions du dossier utilisateur, pas par une clé au repos.
  • SECURITY.md et le README sont mis à jour.

Tests

  • 83 tests noyau + 2 tests réseau + 8 tests application ;
  • vecteurs golden FiSH vérifiés (clé blowfish, qwertyui → +OK qKKBR.riU410) ;
  • priorité RelayCrypt, aller-retour privé/salon/sujet, stockage par réseau et permissions 0600 testés ;
  • cargo fmt --check et cargo audit verts en CI.

Téléchargements

Linux x86_64

Fichier : Le-Salon-1.9.0-x86_64.AppImage

SHA-256 :

c0528c04f3b9ef5756263edbe185283e40ed0c0ff71c477d5f861a12719a0fe8

macOS universel (arm64 + Intel)

Fichier : Le-Salon-1.9.0-macos-universal.zip

SHA-256 :

d2ffe360df84fe1b64d7220ad9664da18420dc5bf85ea65d709588b55dee0809

Installation

sha256sum Le-Salon-1.9.0-x86_64.AppImage
chmod +x Le-Salon-1.9.0-x86_64.AppImage
./Le-Salon-1.9.0-x86_64.AppImage

macOS :

unzip Le-Salon-1.9.0-macos-universal.zip
xattr -dr com.apple.quarantine "Le Salon.app"
open "Le Salon.app"

Le Salon 1.8.0 — parité Relay côté client

Choose a tag to compare

@MrTHP MrTHP released this 10 Nov 19:28

Le Salon 1.8.0 — parité Relay côté client

Cette version ajoute l'essentiel des fonctions de conversation, de confort et de sécurité disponibles dans Relay, directement dans le client desktop natif.

Conversations

  • historique local persistant et recherche globale (Ctrl+Shift+F) avec retour au message exact ;
  • brouillons récupérables après redémarrage, expiration 7 jours ;
  • réponses IRCv3 (+draft/reply) avec aperçu dans le compositeur ;
  • réactions emoji (+draft/react / +draft/unreact), persistées ;
  • messages sauvegardés avec note et libellé (Ctrl+Shift+S) ;
  • activité récente : mentions et messages privés ;
  • messages multilignes (draft/multiline) via /paste ;
  • bulles de messages optionnelles et favoris épinglés ;
  • palette de commandes (Ctrl+K) ;
  • sons, heures calmes (/quiet) et sourdine par tampon (/mute).

Médias et partage

  • aperçus inline des images et des vignettes YouTube ;
  • retrait des métadonnées EXIF/XMP des JPEG/PNG avant upload public ;
  • liens expirants pour partager un message (/share) ou un extrait (/excerpt) ;
  • paste links automatiques pour les textes de 5 lignes ou plus (/paste) ;
  • upload litterbox, DCC, messages planifiés et Jitsi conservés.

Réseau et sécurité

  • proxy SOCKS5 (/proxy hôte:port), avec authentification optionnelle dans l'URL ;
  • chiffrement RelayCrypt v1 : XChaCha20-Poly1305, clés dérivées par Argon2id, stockage local en 0600 ;
  • commandes /encrypt generate|set|set-key|list|remove ;
  • TLS rustls, SASL PLAIN et vérification des certificats inchangés.

Thèmes et modération

  • import/export de thèmes JSON depuis le menu Affichage ;
  • modération guidée : aperçu exact des commandes KICK / MODE +b avant envoi ;
  • annulation possible avant exécution.

Tests

  • 72 tests noyau + 2 tests réseau + 8 tests application ;
  • cargo fmt --check et cargo audit verts en CI ;
  • builds Linux et macOS universel construits par la CI GitHub.

Téléchargements

Linux x86_64

Fichier : Le-Salon-1.8.0-x86_64.AppImage

SHA-256 :

5360f4c521624d6c6b3789c9bd035319a1f31a94d62527eb7803a3753cf56c4d

macOS universel (arm64 + Intel)

Fichier : Le-Salon-1.8.0-macos-universal.zip

SHA-256 :

dba0e1841fd47506ed1895215ae432cbea7face02fc0977a93129b1dee976961

Installation

sha256sum Le-Salon-1.8.0-x86_64.AppImage
chmod +x Le-Salon-1.8.0-x86_64.AppImage
./Le-Salon-1.8.0-x86_64.AppImage

macOS :

unzip Le-Salon-1.8.0-macos-universal.zip
xattr -dr com.apple.quarantine "Le Salon.app"
open "Le Salon.app"

Limites

  • RelayCrypt protège contre les observateurs du réseau IRC, pas contre le serveur IRC lui-même.
  • Les liens de partage et les paste links utilisent litterbox : publics pendant 72 h.
  • Les aperçus inline nécessitent un accès réseau au moment de l'affichage.
  • Les fonctions serveur de Relay (comptes, synchronisation multi-appareils, PWA, push, stockage serveur) restent hors périmètre.

Le Salon 1.7.1 — correctif des conversations privées

Choose a tag to compare

@MrTHP MrTHP released this 10 Nov 14:35

Le Salon 1.7.1 — correctif des conversations privées

Release de correctif pour les réseaux qui prennent en charge la capacité
IRCv3 echo-message.

Correctifs

Conversations privées

  • /msg pseudo texte et /query pseudo n'ouvrent plus une conversation avec
    son propre pseudo lorsque le serveur renvoie l'écho du message.
  • Les échos de nos propres PRIVMSG, NOTICE et ACTION sont désormais
    routés vers la conversation du destinataire.
  • Les TAGMSG de typing renvoyés par le serveur sont ignorés côté client :
    ils ne créent plus de faux buffer privé.
  • Les échos de NOTICE sont dédupliqués avec l'écho local.
  • Le client ne répond plus à l'écho de ses propres requêtes CTCP.
  • La déduplication ne supprime plus deux messages identiques envoyés
    rapidement avec echo-message.

Tests

  • Tests de régression ajoutés pour /msg avec echo-message et typing.
  • 63 tests noyau + 2 tests réseau verts.
  • CI : format, cargo audit, tests Linux/macOS et builds AppImage/macOS.

Téléchargements

Linux x86_64

Fichier : Le-Salon-1.7.1-x86_64.AppImage (construit par la CI GitHub sur
Ubuntu 24.04)

SHA-256 :

cddbf19d071838fdf28ad85d4599b618f772d4878e52b628eb503a0b62d10f97

macOS universel (arm64 + Intel)

Fichier : Le-Salon-1.7.1-macos-universal.zip (signature ad-hoc)

SHA-256 :

d96fccf2dd106cda9811c7e9db1b98f0e924d49a8508a4e28972dfed24a53d01

Installation

Linux

sha256sum Le-Salon-1.7.1-x86_64.AppImage
chmod +x Le-Salon-1.7.1-x86_64.AppImage
./Le-Salon-1.7.1-x86_64.AppImage

macOS

unzip Le-Salon-1.7.1-macos-universal.zip
xattr -dr com.apple.quarantine "Le Salon.app"
open "Le Salon.app"

Notes

  • Aucun changement de configuration ni de format de données.
  • Les protections de sécurité de la 1.6.1 et les fonctionnalités de la 1.7.0
    restent incluses.

Le Salon 1.7.0 — toasts, préférences et thème Tux

Choose a tag to compare

@MrTHP MrTHP released this 08 Nov 06:03

Le Salon 1.7.0 — toasts, préférences et thème Tux

Mise à jour d'interface : notifications visuelles dans la fenêtre, panneau de
configuration complet et nouveau thème Linux. Les correctifs de sécurité de
la 1.6.1 restent inclus.

Nouveautés

Toasts dans la fenêtre

  • popup dans le coin supérieur droit pendant 2, 3 ou 5 secondes ;
  • déclenché pour les mentions et messages privés par défaut, ou pour
    tous les messages au choix ;
  • texte nettoyé (codes mIRC, contrôles, caractères de direction Unicode) ;
  • file limitée à 4 toasts, corps limité à 180 caractères / 3 lignes ;
  • désactivable dans les préférences ; les notifications système restent
    configurables séparément.

Fenêtre Préférences

Accessible par Ctrl+P, Fichier → Préférences… ou le menu du tray :

  • thème (aperçu des 19 palettes) et langue (auto / français / anglais) ;
  • notifications bureau et toasts in-app ;
  • portée des notifications : mentions/privés ou tous les messages ;
  • durée des toasts ;
  • confirmation explicite avant un upload litterbox public ;
  • rappel des protections de sécurité non désactivables.

La fenêtre ne touche jamais aux secrets : elle ne reçoit que des réglages
d'interface, les mots de passe restent dans le formulaire de connexion et le
trousseau système, indexés par réseau.

Thème Tux (Linux)

Nouveau thème sombre inspiré de Tux : fond quasi noir, accents jaune bec,
vert terminal et touches cyan. La liste passe à 19 thèmes.

Sécurité

  • Les textes de toast/notification sont nettoyés avant affichage et la file
    est bornée (pas de spam mémoire).
  • Les préférences ne contiennent ni hôte, ni compte, ni mot de passe ; elles
    ne peuvent pas réécrire les secrets d'un autre réseau.
  • Les protections 1.6.1 restent actives : SASL exige TLS + certificat
    vérifié, --no-tls/--insecure/--sasl-password sont éphémères, secrets
    par réseau, config.toml/scheduled.json en 0600 dans un dossier 0700.
  • cargo fmt --check et cargo audit sont exécutés en CI : 0 vulnérabilité
    bloquante ; 14 avertissements de crates non maintenues via GPUI. L'avis
    grid reste documenté comme non atteignable.
  • Tests : 61 tests noyau + 2 tests réseau + 8 tests app + e2e (TCP, TLS,
    refus SASL sans TLS), tous verts.

AppImage Linux

Fichier : Le-Salon-1.7.0-x86_64.AppImage (construit par la CI GitHub sur
Ubuntu 24.04)

SHA-256 :

f664841263fe9054dd90f6d364825af1631265e423cc82c706e2ce8614767a6a

Vérification :

sha256sum Le-Salon-1.7.0-x86_64.AppImage
chmod +x Le-Salon-1.7.0-x86_64.AppImage
./Le-Salon-1.7.0-x86_64.AppImage --version

Limites connues

  • Les toasts affichent le contenu des messages : désactive-les si ton écran
    est visible ou partagé.
  • Les uploads litterbox restent publics 72 h ; la confirmation est active par
    défaut.
  • DCC SEND reste non chiffré et l'offre est visible par le serveur IRC.
  • Voir SECURITY.md
    pour le détail des garanties et limites.

Installation

Télécharger l'AppImage ci-dessous, ou compiler :

cargo build --release -p le-salon
sh tools/build-appimage-le-salon.sh

Le Salon 1.6.1 — correctifs de sécurité

Choose a tag to compare

@MrTHP MrTHP released this 08 Nov 05:03

Le Salon 1.6.1 — correctifs de sécurité

Cette version corrige les problèmes identifiés lors de l'audit du code et
durcit les valeurs par défaut. Mise à jour recommandée pour toute
installation 1.6.0.

Correctifs principaux

  • SASL sans TLS bloqué : AUTHENTICATE PLAIN exige désormais TLS et
    la vérification du certificat. Le client refuse la connexion avant tout
    échange réseau, au lieu d'envoyer le mot de passe en base64 sur un canal
    non sûr.
  • Flags CLI éphémères : --no-tls, --insecure et --sasl-password
    ne sont plus écrits dans config.toml. Un -k ponctuel ne désactive plus
    la vérification pour les lancements suivants. --sasl-password n'est plus
    mémorisé dans le trousseau ; LE_SALON_SASL_PASSWORD est préféré.
  • Secrets par réseau : le trousseau indexe les mots de passe par
    (hôte, compte). Changer l'hôte ou le compte efface le champ pour éviter
    d'envoyer le secret d'un réseau à un autre. Migration automatique de
    l'ancienne entrée unique.
  • Fichiers privés : config.toml et scheduled.json sont créés en
    0600 dans un dossier 0700.
  • Liens média : validation par hôte exact (fini
    https://evil.example/youtube.com/watch) ; l'hôte est affiché dans le
    bouton ; antislash et contrôles bidi refusés.
  • Upload litterbox : confirmation explicite avant l'envoi, rappel que le
    fichier est public 72 h ; seuls les liens HTTPS sont acceptés.
  • DCC : écoute uniquement sur l'interface locale annoncée, avertissement
    sur le caractère non chiffré et la visibilité de l'offre pour le serveur.
  • Affichage : contrôles de direction Unicode retirés (usurpation visuelle).
  • CTCP : VERSION ne divulgue plus la version exacte ; TIME ne répond
    plus (fuite de fuseau horaire).
  • CI : cargo fmt --check et cargo audit ajoutés ; SECURITY.md décrit
    les garanties, limites et le processus de signalement.

AppImage Linux

Fichier : Le-Salon-1.6.1-x86_64.AppImage (construit par la CI GitHub sur Ubuntu 24.04)

SHA-256 :

d8578ccd581c9787015ef20884b1877b1b389d391e40c81ca4205b8ace5d5b1d

Vérification :

sha256sum Le-Salon-1.6.1-x86_64.AppImage
chmod +x Le-Salon-1.6.1-x86_64.AppImage
./Le-Salon-1.6.1-x86_64.AppImage --version

Comportements modifiés

  • SASL nécessite TLS + certificat vérifié ; les connexions SASL en clair sont
    refusées.
  • irc:// ne désactive plus TLS silencieusement ; utiliser ircs:// ou
    décocher explicitement TLS.
  • --sasl-password, --no-tls et --insecure ne modifient plus la
    configuration persistante.
  • CTCP TIME ne répond plus.
  • Les uploads demandent une confirmation.

Limites connues

Voir SECURITY.md.
L'avis grid (GHSA-38c5-483c-4qqp) est présent via taffy 0.9, mais taffy
n'appelle jamais la fonction vulnérable ; il sera supprimé lors d'une montée
de GPUI. cargo audit ne signale aucune vulnérabilité bloquante.

Installation

Télécharger l'AppImage ci-dessous, ou compiler :

cargo build --release -p le-salon
sh tools/build-appimage-le-salon.sh