Commit graph

49 commits

Author SHA1 Message Date
Jean-Baptiste Daval
a5a78c66f7 Fix shebang for non-debian users 2018-03-10 19:27:47 +01:00
Rémi Oudin
e53e756e3f Ne crashe plus quand le clipboard est vide
Par ailleurs, ceci permet de ne pas conserver le mot de passe dans le
presse-papier, puisque celui-ci est réinitialisé à la chaine de
caractère vide par la suite.
2017-10-02 16:30:16 +02:00
Charlie Jacomme
83a489fa9d [client] Fonctions de restaurations de fichiers corrompues 2017-04-23 18:35:30 +02:00
Daniel STAN
2d5fd8e0cd ask key dropping => ask once and remember 2016-03-30 18:57:41 +02:00
Daniel STAN
39db981f90 draft: gestion des clés ssh 2015-11-10 00:27:32 +01:00
Daniel STAN
e1eaad381d fix possible import de client.py 2015-06-03 19:44:06 +02:00
Gabriel Detraz
14cf6e83fd Pour que ca marche sous mac aussi...
On enlève le path complet, pour gpg (/usr/bin..), on le remplcae par 'gpg'
2015-01-25 13:21:59 +01:00
Pierre-Elliott Bécue
e8ea0074e9 Le texte retourné quand on édite peut être vide.
* Par exemple, si le fichier n'est pas chiffré pour ma clef.
2014-10-24 22:50:31 +02:00
Daniel STAN
492d9f664a skip "whoami" key instead of popping 2014-04-24 12:03:18 +02:00
Daniel STAN
53eb46d652 fname doit être un unicode
On ne gère la conversion vers du binaire (utf-8) qu'au dernier
moment.
2014-03-12 20:58:54 +01:00
Vincent Le Gallic
64e40a0a80 [client] On ne crashe pas lamentablement à cause des allemands
La doc de GPG prétend que --with-colons output de l'UTF-8
regardless of any --display-charset. Eh bah c'est faux.

Je provide même un working example :
gpg --list-key --with-colons 095D9EC8C995AB203DC260FEECAA37C45C7E48CE
2014-01-29 00:31:55 +01:00
Daniel STAN
3b5c765dd3
client: show real target roles
Actual new target roles were not correctly shown in the editor. (Although the
list of new recipients was correct).
2014-01-28 12:09:28 +01:00
Daniel STAN
fb9581389a
contents should be unicode
Fix it. Like 88c699e48d
2014-01-27 22:41:44 +01:00
Daniel STAN
3ff1608c0a client: Ending newline
Text files always have a final "\n" character. Add it before
running the editor, otherwise, it will automatically add it and we would
think the file has changed.
2014-01-18 19:02:17 +01:00
Daniel STAN
f9956f913a subprocess: don't use wait()
http://docs.python.org/2/library/subprocess.html#subprocess.Popen.wait

Je n'avais pas lu le warning ...
2014-01-12 23:12:05 +01:00
Daniel STAN
34aa2a6469 rajout de --strict-recrypt-files
Autre manière de sélectionner les mots de passes à rechiffrer : on sélectionne
les mots de passes dont la liste des rôle est inclue dans la liste souhaitée.
2014-01-12 23:10:02 +01:00
Daniel STAN
88c699e48d [bugfix] recrypt-files: encrypt(...)[1]
encrypt ne renvoie plus une chaîne chiffrée mais une liste (sic)
[success, chaîne] depuis 0bdf2035.
On corrige ici pour éviter de defacer tous les mdps.
2014-01-12 23:09:31 +01:00
Daniel STAN
f446136ab1 [bugfix] client: keep prev roles by default
Lorsqu'on éditait un fichier, on écrasait nécessairement les roles
en place, car l'option.roles était parsée avec la supposition que
None = mes roles en écritures.
On corrige parse_roles en considérant (par défaut) que la valeur None
reste à None, ce qui permet de continuer à vérifier que les arguments
fournis sont valides.
Un peu de refactoring dans le code de edit_file a eu lieu au passage
(principalement des simplifications du code).
2013-11-06 17:23:13 +01:00
Vincent Le Gallic
ea2e3e4925 Fix de --recrypt-files 2013-08-19 15:27:13 +02:00
Vincent Le Gallic
0ae8886805 En fait la trust (qui est ici validity, merci l'obfuscation de GPG) marginale n'est pas suffisante 2013-08-18 23:16:05 +02:00
Daniel STAN
d220fa370f [keep-alive] feature connexion unique au serveur
C'était plus pratique que de faire un merge de la branche devel-keep-alive.
La feature n'est pas activée automatiquement pour les gens qui ont déjà
un fichier de config, mais elle est présente pour ceux qui en crée un.
2013-08-04 13:35:09 +02:00
Daniel STAN
23ff2d58ee répare les options --(no)?clipboard
Vincent me les as cassé lors du commit ab2f04c60f. En particulier
il a remplacé la variable de destination de --noclipboard en "clipboard"
sans changer la valeur à enregistrer (qui était False). Bref, quand on
tapait "--noclipboard" ça enregistrait False dans la variable "noclipboard" …
L'option --clipboard était devenue du code mort …

Voilà le comportement souhaité :
À moins que l'utilisateur ne précise une option, on essaie de deviner si un
clipboard est dispo et on l'utilise.

Si l'utilisateur utilise une des options, il a raison et on l'écoute sans
se poser de questions. Typiquement, si "--clipboard" est précisé, on n'a
pas à vérifier nous-même que /usr/bin/xclip existe. Par ailleurs, cela
permet de faire marcher le clipboard sur des setups "exotiques", par
exemple s'il n'est pas dans /usr/bin/. Remarquer que l'appel à xclip
se fait en relatif contrairement au test, ce qui permet d'override xclip ou d'en
mettre un autre perso dans son ~/bin/.

Rajout d'un commentaire dans le code, pour éviter qu'on ne ré-efface cette
feature :(
2013-07-31 23:47:28 +02:00
Daniel STAN
9473004e03 typo dans remote_command 2013-07-31 13:29:01 +02:00
Daniel STAN
97025265ee affichage userfriendly si plantage serveur 2013-07-30 15:01:30 +02:00
Daniel STAN
348873298e pas plus d'un clipboard 2013-07-30 13:38:57 +02:00
Daniel STAN
f2e78e1b3c oubli init de old_clipboard
Ce qui faisait planter l'appel à la fonction de restoration.
Celle-ci s'attend à recevoir old_clipboard=None si rien à restorer
2013-07-30 13:38:33 +02:00
Daniel STAN
8c0a6dd5a3 argument options en trop dans action remove 2013-07-30 13:04:56 +02:00
Daniel STAN
114d97aa4a memoize renvoie un deepcopy
300f13b2 introduit une clé 'whoami' dans un dico, et l'efface
de temps en temps à coup de pop. Sauf qu'il s'agit toujours du même
dictionnaire (mémoisation oblige), on règle le problème en
copyant la structure à chaque appel.
2013-07-30 13:00:06 +02:00
Vincent Le Gallic
8e39c55008 show_servers peut s'exécuter sur le client.
On n'a pas envie d'ouvrir une session ssh pour ça.
Bon, le test fait un peu ducktape…

Une liste DONT_NEED_SSH et un décorateur @dont_need_ssh ?
2013-07-30 06:27:29 +02:00
Vincent Le Gallic
ff68bb2a0d .pop au mauvais endroit.
Bugfix sur 300f13b236, on cherchait à virer
le role whoami deux fois de suite.
2013-07-30 06:22:23 +02:00
Vincent Le Gallic
300f13b236 On n'a plus besoin de la variable de conf 'user' sur le client, le serveur la renvoie dans le rôle whoami.
Du coup, évidemment, il ne faut pas définir un rôle "whoami".
Si le serveur en trouve un, il lèvera une exception.
2013-07-30 06:15:27 +02:00
Vincent Le Gallic
8c83f0c29d Docstring erronée 2013-07-30 06:13:55 +02:00
Vincent Le Gallic
1dce8eb8c8 On checke enfin les expiration/confiance sur les sous-clés. 2013-07-30 05:55:17 +02:00
Vincent Le Gallic
d7a2ba04ea Je me suis embrouillé sur les confirmations/force/drop.
¬¬¬p => p ?
2013-07-30 05:51:48 +02:00
Vincent Le Gallic
525eca4ff6 oubli : gpg() a aussi besoin de options. 2013-07-30 05:17:49 +02:00
Vincent Le Gallic
517cb1e745 Ajout d'un coup de os.getenv si on veut pouvoir spécifier où est la conf client. 2013-07-30 05:13:21 +02:00
Vincent Le Gallic
ab2f04c60f On vire toutes les variables globales, donc on passe les options parsées à quasiment toutes les fonctions.
Le paramètre --drop-invalid fait son apparition pout droper automatiquement
les bad guy-e-s qui ont laissé leur clés expirer.

NB : on n'a toujours pas réglé le problème des *sub*keys expirées.
2013-07-30 04:51:37 +02:00
Vincent Le Gallic
b522b4a741 Possibilité de dropper à la volée un bad guy qui a laissé expirer sa clé. 2013-07-29 23:07:19 +02:00
Vincent Le Gallic
8e3a76919c Implémentation custom du parseur de gpg --list-keys parce que le package python-gnupg fait pas ce qu'il faut. 2013-07-29 22:11:45 +02:00
Vincent Le Gallic
4af1da7839 Fix on 3589ef41ab. On n'importe pas deux fois gnupg.
La première ligne d'import n'aurait pas dû réapparaître,
le handling de l'erreur d'import était correct.
2013-07-29 18:28:49 +02:00
Vincent Le Gallic
3589ef41ab getfile*s*; putfile*s* et utilisation pour --recrypt-files
On peut récupérer/envoyer plusieurs fichiers à la fois.

A priori, le serveur n'est plus rétro-compatible avec les clients non à jour.

Conflicts:
	client.py
	server.py
2013-07-29 05:45:49 +02:00
Vincent Le Gallic
ae6ec8be66 Erreur dans le path gnupg
En fait ça créait vraiment un répertoire './~'.
2013-07-29 00:58:36 +02:00
Vincent Le Gallic
0bdf20357f Gestion de message d'erreurs.
En quelque sorte un revert de 555b6c4c0a
qui revertait bbc6cb73f6.
Maintenant, ça marche.
2013-07-29 00:15:52 +02:00
Vincent Le Gallic
5263206f29 --check-keys -v plus verbeux 2013-07-28 17:58:50 +02:00
Vincent Le Gallic
a97aa5eea3 print_function 2013-07-28 17:49:05 +02:00
Vincent Le Gallic
fdead6f0c8 unicode oublié 2013-07-28 17:32:03 +02:00
Vincent Le Gallic
bf469de054 Hack pour avoir le path de la config. 2013-07-28 17:12:01 +02:00
Vincent Le Gallic
2a2c405d33 Makefile pour installer le bazar dans ~ pour le client.
Le côté serveur viendra dans un prochain commit.

C'était pour make rename et make rerename qu'il était
nettement plus pratique d'avoir des guillemets simples.
2013-07-28 16:17:44 +02:00
Vincent Le Gallic
03118a0766 Oublié dans le déhardcodage : renommage du fichier cranspasswords.py lui-même en client.py, plus générique. 2013-07-28 15:54:27 +02:00
Renamed from cranspasswords.py (Browse further)