From 212c193f9f4636c244c42b1a5de5b29415b62056 Mon Sep 17 00:00:00 2001 From: egcmi Date: Tue, 7 Apr 2026 17:28:28 +0200 Subject: [PATCH] Implement ticket password feature in dl-cli.py Add ticket password generation using secrets module --- client/dl-cli.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/client/dl-cli.py b/client/dl-cli.py index baeb386..bc5324b 100755 --- a/client/dl-cli.py +++ b/client/dl-cli.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals, print_function, generators import argparse +import secrets import io, sys from datetime import datetime @@ -73,6 +74,10 @@ def progress(download_t, download_d, upload_t, upload_d): c.FORM_FILENAME, filename.encode('utf8'))), ("msg", json.dumps({}))]) + if 'ticket_pass' in params and params['ticket_pass'] == 1: + msg['pass'] = secrets.token_urlsafe(16) + print(msg['pass']) + try: c.perform() except pycurl.error as e: @@ -212,6 +217,13 @@ def main(): die("fingerprint doesn't look like a valid hex-encoded SHA256 hash") cfg['fingerprint'] = 'sha256//' + binascii.b2a_base64(binascii.a2b_hex(fp))[:-1] + # Ticket password parameter + if 'ticket_pass' in cfg: + try: + cfg['ticket_pass'] = v.check('boolean', cfg['ticket_pass']) + except validate.ValidateError: + die("Value for \"ticket_pass\" in configuration file is not a boolean.") + try: if args.file: if len(args.file) == 1: