diff options
author | Rob Austein <sra@hactrn.net> | 2020-01-08 11:28:32 -0500 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2020-01-08 11:28:32 -0500 |
commit | 695eed3c02844fd21d99dd1bb9006bae12fa6cda (patch) | |
tree | c562fb8c42ee088d35b9f55e53c8b76ea3c6349f | |
parent | 37bcfd6cbdcd935029a52179b3abdf6411b1e566 (diff) |
-rwxr-xr-x | tsig-keygen.py | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/tsig-keygen.py b/tsig-keygen.py index c60b292..0bab5eb 100755 --- a/tsig-keygen.py +++ b/tsig-keygen.py @@ -4,12 +4,11 @@ import os, base64, argparse, jinja2 -algorithm_bits = dict(("hmac-sha{}".format(bits), bits // 8) for bits in (256, 384, 512)) -algorithm_choices = tuple(sorted(algorithm_bits)) +algorithm_bytes = dict(("hmac-sha{}".format(bits), bits // 8) for bits in (256, 384, 512)) +algorithm_choices = tuple(sorted(algorithm_bytes)) +templates = {} -templates = dict( - - bind9 = ''' +templates["bind9"] = ''' key {{ args.name }} { algorithm {{ args.algorithm }}; secret "{{ args.key }}"; @@ -27,9 +26,9 @@ zone "{{ zone }}" { }; {% endfor %} {% endif %} -''', +''' - nsd = ''' +templates["nsd"] = ''' key: name: "{{ args.name }}" algorithm: {{ args.algorithm }} @@ -50,9 +49,9 @@ zone: include-pattern: "secondary.{{ args.name }}" {%- endfor %} {% endif %} -''', +''' - knot = ''' +templates["knot"] = ''' ### WARNING: KNOT CONFIGURATION NOT YET TESTED ### key: @@ -84,7 +83,7 @@ zone: acl: notify_from_{{ args.name }} {% endfor %} {% endif %} -''') +''' ap = argparse.ArgumentParser(description = __doc__) ap.add_argument("-a", "--algorithm", choices = algorithm_choices, default = algorithm_choices[0], @@ -99,6 +98,6 @@ ap.add_argument("-z", "--zones", nargs = "+", default = [], metavar = "ZONE" args = ap.parse_args() if args.key is None: - args.key = base64.b64encode(os.urandom(algorithm_bits[args.algorithm])).decode("ascii") + args.key = base64.b64encode(os.urandom(algorithm_bytes[args.algorithm])).decode("ascii") args.output.write(jinja2.Template(templates[args.format]).render(args = args)) |