From 4589da6ef7610870b4df25efab04e874d3b2aed1 Mon Sep 17 00:00:00 2001 From: Daniel Salzman <daniel.salzman@nic.cz> Date: Fri, 21 Mar 2014 10:20:48 +0100 Subject: [PATCH] tests-extra: add output key directory parameter to zone_generate --- tests-extra/tools/zone_generate.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests-extra/tools/zone_generate.py b/tests-extra/tools/zone_generate.py index 0f6fd08ea..3c440ee6c 100755 --- a/tests-extra/tools/zone_generate.py +++ b/tests-extra/tools/zone_generate.py @@ -11,6 +11,7 @@ Parameters: -n, --names=num Generate unique zone names. -t, --ttl=sec Specify default TTL. -o, --outfile=file Specify output file name. + -k, --keydir=dir Specify output key directory. ''' import binascii @@ -431,12 +432,13 @@ def main(args): nsec3 = random.choice([0, 1]) count = 0 outfile = None + key_dir = None # Parse parameters try: - opts, args = getopt.getopt(args, 'hs3:i:u:n:t:o:', ['help', 'sign', + opts, args = getopt.getopt(args, 'hs3:i:u:n:t:o:k:', ['help', 'sign', 'nsec3=', 'serial=', 'update=', 'names=', - 'ttl=', 'outfile=']) + 'ttl=', 'outfile=', 'keydir=']) except getopt.error as msg: print(msg) print('for help use --help') @@ -463,6 +465,8 @@ def main(args): TTL = int(a) if o in ('-o', '--outfile') and a != None: outfile = a + if o in ('-k', '--keydir') and a != None: + key_dir = a ORIGIN = "" # Arguments @@ -557,6 +561,8 @@ def main(args): tmp_zfile = outf if soa != None: tmp_zfile.write(soa) + if not key_dir: + key_dir = sign_dir else: if soa != None: outf.write(soa) @@ -606,13 +612,13 @@ def main(args): try: # Generate keys nf = open('/dev/null', 'w') - ps = [ 'dnssec-keygen', '-r', '/dev/urandom', '-n', 'ZONE', '-K', sign_dir ] + ps = [ 'dnssec-keygen', '-r', '/dev/urandom', '-n', 'ZONE', '-K', key_dir ] if nsec3: ps += ['-3'] k1 = subprocess.check_output(ps + [ORIGIN], stderr=nf) k2 = subprocess.check_output(ps + ["-f", "KSK"] + [ORIGIN], stderr=nf) - k1 = sign_dir + '/' + k1.rstrip().decode('ascii') - k2 = sign_dir + '/' + k2.rstrip().decode('ascii') + k1 = key_dir + '/' + k1.rstrip().decode('ascii') + k2 = key_dir + '/' + k2.rstrip().decode('ascii') nf.close() # Append to zone @@ -631,7 +637,7 @@ def main(args): # Sign zone if tmp_zfile != outf: tmp_zfile.close() - ks = subprocess.check_output(["dnssec-signzone", "-d", "/tmp", "-P", "-p", "-u", \ + ks = subprocess.check_output(["dnssec-signzone", "-d", sign_dir, "-P", "-p", "-u", \ "-k", k2, "-r", "/dev/urandom", "-o", ORIGIN] + \ nsec3_params + [zfname, k1 + ".key"]) kf = open(zfname + '.signed') -- GitLab