Skip to content
Snippets Groups Projects
Commit 1c214f3e authored by Maxime Bombar's avatar Maxime Bombar
Browse files

Porting commit c17458fc to python3 version:...

Porting commit c17458fc to python3 version: Allows to display qrcode of the secret
parent 6deec238
No related branches found
No related tags found
No related merge requests found
Pipeline #9566 passed with warnings with stages
in 2 minutes and 42 seconds
......@@ -12,6 +12,10 @@ cranspasswords possède plusieurs branches.
* 0.1, 0.2,… : anciennes versions (si vieux serveur),
ça n'intègre plus de nouvelles fonctionnalités, seulement d'éventuels bugfix.
=== 0.3.0 ===
Permet d'afficher le secret dans un qrcode.
=== 0.2.0 ===
La configuration du client a changé de format,
......
......@@ -395,17 +395,20 @@ def show_file(options):
old_clipboard = None
# Essaie de planquer le mot de passe
secret = None
for line in texte.split('\n'):
catch_pass = None
# On essaie de trouver le pass pour le cacher dans le clipboard
# si ce n'est déjà fait et si c'est voulu
if not is_hidden and options.clipboard:
if not is_hidden and (options.clipboard or options.qrencode):
catch_pass = pass_regexp.match(line)
if catch_pass is not None:
is_hidden = True
# On met le mdp dans le clipboard en mémorisant son ancien contenu
old_clipboard = saveclipboard()
pyperclip.copy(catch_pass.group(1))
secret = catch_pass.group(1)
if options.clipboard:
# On met le mdp dans le clipboard en mémorisant son ancien contenu
old_clipboard = saveclipboard()
pyperclip.copy(secret)
# Et donc on override l'affichage
line = "[Le mot de passe a été mis dans le presse papier]"
filtered += line + '\n'
......@@ -434,6 +437,8 @@ def show_file(options):
pub_file.flush()
subprocess.check_call(['ssh-add', '-d', pub_file.name])
elif options.qrencode and secret is not None:
showqr(secret)
else:
# Le binaire à utiliser
showbin = "cat" if is_hidden else "less"
......@@ -447,6 +452,15 @@ def show_file(options):
if old_clipboard is not None:
saveclipboard(restore=True, old_clipboard=old_clipboard)
def showqr(secret):
qrencode = subprocess.Popen(['/usr/bin/qrencode', '-o', '-'],
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
feh = subprocess.Popen(['/usr/bin/feh', '--zoom', 'fill' '-'],
stdin=qrencode.stdout)
qrencode.stdin.write(secret.encode('utf-8'))
qrencode.stdin.flush()
qrencode.stdin.close()
feh.wait()
@need_filename
def show_minimal(options):
......@@ -760,6 +774,13 @@ def main():
dest='clipboard',
help=_("do not try to store password in clipboard"),
)
parser.add_argument(
'--qr',
action='store_true',
default=None,
dest='qrencode',
help=_("display a qrcode containing the secret"),
)
parser.add_argument(
'-f', '--force',
action='store_true',
......
......@@ -31,7 +31,7 @@ def compile_messages():
setup(
name="cpasswords",
version="0.2.0",
version="0.3.0",
description="Group password manager based on GPG",
long_description=open('README.rst', encoding='utf-8').read(),
author="CRANS",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment