|
@@ -4,12 +4,11 @@
|
|
|
|
|
|
import os, base64, argparse, jinja2
|
|
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 }} {
|
|
key {{ args.name }} {
|
|
algorithm {{ args.algorithm }};
|
|
algorithm {{ args.algorithm }};
|
|
secret "{{ args.key }}";
|
|
secret "{{ args.key }}";
|
|
@@ -27,9 +26,9 @@ zone "{{ zone }}" {
|
|
};
|
|
};
|
|
{% endfor %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endif %}
|
|
-''',
|
|
|
|
|
|
+'''
|
|
|
|
|
|
- nsd = '''
|
|
|
|
|
|
+templates["nsd"] = '''
|
|
key:
|
|
key:
|
|
name: "{{ args.name }}"
|
|
name: "{{ args.name }}"
|
|
algorithm: {{ args.algorithm }}
|
|
algorithm: {{ args.algorithm }}
|
|
@@ -50,9 +49,9 @@ zone:
|
|
include-pattern: "secondary.{{ args.name }}"
|
|
include-pattern: "secondary.{{ args.name }}"
|
|
{%- endfor %}
|
|
{%- endfor %}
|
|
{% endif %}
|
|
{% endif %}
|
|
-''',
|
|
|
|
|
|
+'''
|
|
|
|
|
|
- knot = '''
|
|
|
|
|
|
+templates["knot"] = '''
|
|
### WARNING: KNOT CONFIGURATION NOT YET TESTED ###
|
|
### WARNING: KNOT CONFIGURATION NOT YET TESTED ###
|
|
|
|
|
|
key:
|
|
key:
|
|
@@ -84,7 +83,7 @@ zone:
|
|
acl: notify_from_{{ args.name }}
|
|
acl: notify_from_{{ args.name }}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endif %}
|
|
-''')
|
|
|
|
|
|
+'''
|
|
|
|
|
|
ap = argparse.ArgumentParser(description = __doc__)
|
|
ap = argparse.ArgumentParser(description = __doc__)
|
|
ap.add_argument("-a", "--algorithm", choices = algorithm_choices, default = algorithm_choices[0],
|
|
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()
|
|
args = ap.parse_args()
|
|
|
|
|
|
if args.key is None:
|
|
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))
|
|
args.output.write(jinja2.Template(templates[args.format]).render(args = args))
|