checkds.py revision 470af54b4ec7ab38ad10a5bd22a0a20664838c99
############################################################################
# Copyright (C) 2012-2016 Internet Systems Consortium, Inc. ("ISC")
#
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
############################################################################
import argparse
import os
import sys
prog = 'dnssec-checkds'
############################################################################
# SECRR class:
############################################################################
class SECRR:
rrname = ''
rrclass = 'IN'
keyid = None
keyalg = None
hashalg = None
digest = ''
ttl = 0
if not rrtext:
raise Exception
raise Exception
if dlvname:
if dlv:
raise Exception
else:
else:
raise Exception('%s does not match %s' %
return '%s %s %s %d %d %d %s' % \
############################################################################
# check:
# RRset from the masterfile if specified, or from DNS if not.
# and report on congruency.
############################################################################
rrlist = []
klist = []
if masterfile:
if lookaside:
else:
if lookaside:
print ("No DNSKEY records found in zone apex")
return False
print ("%s for KSK %s/%03d/%05d (%s) found in parent" %
else:
print ("%s for KSK %s/%03d/%05d (%s) missing from parent" %
if not found:
return found
############################################################################
# parse_args:
# Read command line arguments, set global 'args' structure
############################################################################
def parse_args():
bindir = 'bin'
help='zone master file')
help='DLV lookaside zone')
'dnssec-dsfromkey'),
return args
############################################################################
# Main
############################################################################
def main():
args = parse_args()