Éditeur de texte Atom : comment chiffrer ou signer simplement un document via GPG

Avec un Gist en bonus
Éditeur de texte Atom : comment chiffrer ou signer simplement un document via GPG

Si GPG permet de chiffrer simplement un fichier, ce n'est pas toujours aussi simple lorsqu'il s'agit de faire de même avec un morceau de texte... Ce qui peut pourtant s'avérer pratique pour protéger du contenu sensible dans un document. Heureusement, un package pour Atom permet de le faire. Nous en avons profité pour l'améliorer un peu.

GnuPG est un outil qui permet de chiffrer ou de signer simplement tout type de contenu. S'il est souvent évoqué dans le cadre de la gestion des emails du fait de sa nature asymétrique, il permet bien plus.

Il est ainsi très utilisé pour la distribution de fichiers avec signature par les développeurs, dans les différentes distributions Linux pour le déploiement de paquets, etc. Existant depuis près de 20 ans, il a beaucoup évolué depuis et dispose d'un écosystème assez complet.

Ainsi, on le retrouve intégré de manière native ou via des plugins à de nombreux outils où il permet d'ajouter une couche de chiffrement qui peut parfois s'avérer utile. C'est notamment le cas dans des éditeurs de texte, pour permettre aux développeurs de protéger facilement certaines données ou de partager simplement un texte chiffré/signé depuis une application qu'ils ont toujours sous la main.

C'est notamment le cas de Vim ou encore de SublimeText 3. Pour notre article du jour, nous avons décidé de nous attarder sur l'intégration à Atom, développé par les équipes de GitHub.

Le chiffrement/signature d'un texte en quelques clics

Celui-ci est pensé comme un outil simple, multi-plateforme et open source. Il permet d'éditer un simple texte aussi bien qu'un document en Markdown ou bien du code dans de nombreux langages. Il se veut surtout « hackable » et propose pour cela à n'importe qui de le compléter via des packages.

C'est par ce biais que l'on peut rajouter un module permettant de gérer GPG. Son installation est simple puisqu'il suffit de se rendre dans la section Install des paramètres (CTRL+,) et de chercher atom-gpg. La procédure ne prend que quelques secondes, et l'on pourra ensuite directement accéder aux paramètres du module :

Atom-gpgAtom-gpg

Dans la partie Settings, deux champs permettent de préciser l'emplacement de GPG et du trousseau de clés. Si votre installation est classique, inutile de les remplir. Vous devrez ensuite préciser la liste des destinataires, soit via une liste écrite, soit via un fichier. 

Ici, de premières subtilités émergent. Dans le premier cas, il faut indiquer un ou plusieurs destinataires à travers leur email ou l'ID de leur clé, séparés par une virgule. Si vous optez plutôt pour un fichier, il est possible de ne pas préciser de chemin précis. Dans ce cas, le module ira chercher le fichier dans le répertoire principal du projet en cours. Pratique si vous voulez adapter l'utilisation de l'extension à différents cas.

La section suivante, Keybindings, détaille les raccourcis claviers qui sont mis en place par défaut, mais comme nous allons le voir, ceux-ci peuvent poser problème et nécessitent une modification. 

Quoi qu'il en soit, une fois un ou plusieurs destinataires entrés, ainsi que les éventuels paramètres nécessaires pour que le module puisse accéder à GPG et votre trousseau de clés, vous pouvez commencer à éditer un texte à chiffrer ou à signer.

Pour cela, on crée un nouveau fichier (CTRL+N) dans lequel vous pouvez taper ce que bon vous semble. Sélectionnez du texte, effectuez un clic droit et sélectionnez GPG Encrypt. Le tour est joué, le texte sélectionné est chiffré. Vous pouvez faire de même pour la signature ou le déchiffrement (mais il faudra disposer de la clef privée associée).

Une première correction...

Par défaut, ces opérations peuvent être effectuées avec la combinaison des touches CTRL+MAJ+E, D ou S. Mais comme vous pourrez facilement le vérifier, le second choix est déjà occupé par la fonction de déduplication de texte. Un problème qui peut simplement être corrigé.

Pour cela, il faut indiquer à Atom quelle fonction est prioritaire. Bien entendu, vous pouvez aussi décider de modifier la combinaison de touches de l'une ou l'autre des fonctionnalités (File > Settings > Keybindings). Mais E, D et S sont assez proches et facilement accessibles, ce qui nous convient plutôt bien pour l'usage visé.

Il faut donc éditer le fichier keymap.cson qui est accessible via le menu File > Keymap afin de lui ajouter deux lignes de code permettant d'indiquer quelle commande effectuer de manière prioritaire :

'.editor':
    'ctrl-shift-d':'atom-gpg:decrypt-selections'

... avant un changement plus en profondeur

Et si nous allions un peu plus loin ? En effet, il est possible d'utiliser les raccourcis non pas de manière identique aux fonctions accessibles depuis un clic droit, mais de manière complémentaire. Ainsi, ces combinaisons de touches pourraient être exploitées pour sélectionner automatiquement tout le texte du document et le (dé)chiffrer/signer entièrement.

Cette fois encore, il faudra éditer le fichier de keymap afin d'attribuer de nouvelles fonctions à nos touches, mais aussi le script d'initialisation d'Atom afin de les déclarer. Celui-ci prend le nom d'init.coffee et se base sur CoffeeScript. Il est accessible via le menu File > Keymap.

Nous sommes ainsi arrivés au résultat suivant résumé dans un Gist :

Il vous suffit de rajouter ces lignes aux deux fichiers concernés, puis de les enregistrer et de relancer Atom. Vous aurez alors le fonctionnement recherché : un clic droit pour (dé)chiffrer/signer la sélection et les raccourcis CTRL+MAJ+E, D, ou S pour l'intégralité du document.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !