utils: duplicate the --secret argument declaration to make it required only for the generate command

This commit is contained in:
Benjamin Dauvergne 2014-03-10 15:18:57 +01:00
parent 1d68a84117
commit c39108bd4f
1 changed files with 12 additions and 11 deletions

View File

@ -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')