From c39108bd4fbbb9fd952333fe3af049fa773cf6cf Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Mon, 10 Mar 2014 15:18:57 +0100 Subject: [PATCH] utils: duplicate the --secret argument declaration to make it required only for the generate command --- authentic2_idp_ltpa/utils.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/authentic2_idp_ltpa/utils.py b/authentic2_idp_ltpa/utils.py index 9d53b1a..276e4ae 100644 --- a/authentic2_idp_ltpa/utils.py +++ b/authentic2_idp_ltpa/utils.py @@ -60,25 +60,31 @@ def main(): import datetime parser = argparse.ArgumentParser(description='Process some integers.') - secret_arg = parser.add_argument('--secret', - help='secret as plain, hex or base-64 encoded string, prefix ' - 'with hex: or b64: for encoded strings') subparsers = parser.add_subparsers(help='sub-command help') # create the parser for the "a" command parser_generate = subparsers.add_parser('generate', help='a help') parser_generate.set_defaults(command='generate') + parser_generate.add_argument('--secret', required=True, + help='secret as plain, hex or base-64 encoded string, prefix ' + 'with hex: or b64: for encoded strings') parser_generate.add_argument('user', help='user\'s username') # create the parser for the "b" command parser_parse = subparsers.add_parser('parse', help='parse an LtpaToken') parser_parse.set_defaults(command='parse') + parser_parse.add_argument('--secret', + help='secret as plain, hex or base-64 encoded string, prefix ' + 'with hex: or b64: for encoded strings') parser_parse.add_argument('token', help='the LTPA cookie content') - parser_decryptkey = subparsers.add_parser('decryptkey', help='decrypt an exported shared key for LtpaToken') + parser_decryptkey = subparsers.add_parser('decryptkey', help='decrypt an ' + 'exported shared key for LtpaToken') parser_decryptkey.set_defaults(command='decryptkey') - parser_parse.add_argument('file', help='file containing an exported shared key') - parser_parse.add_argument('password', help='password for the encryption') + parser_decryptkey.add_argument('file', help='file containing an exported ' + 'shared key') + parser_decryptkey.add_argument('password', help='password for the ' + 'encryption') args = parser.parse_args() if args.secret: @@ -90,9 +96,6 @@ def main(): args.secret = args.secret if args.command == 'generate': - if not args.secret: - raise argparse.ArgumentError(secret_arg, - 'is required to generate a token') print generate_domino_ltpa_token(user=args.user, secret=args.secret) elif args.command == 'parse': @@ -107,8 +110,6 @@ def main(): content = file(args.file).read() key = hashlib.sha1(args.password).digest() + '\x00' * 4 - - data = "Please encrypt my data" k = des(key, ECB, padmode=PAD_PKCS5) print 'hex:' + k.decrypt(content).encode('hex')