############################################################################ # Copyright (C) Internet Systems Consortium, Inc. ("ISC") # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. ############################################################################ from collections import defaultdict from . import dnskey import os import glob ######################################################################## # Class keydict ######################################################################## class keydict: """ A dictionary of keys, indexed by name, algorithm, and key id """ _keydict = defaultdict(lambda: defaultdict(dict)) _defttl = None _missing = [] def __init__(self, dp=None, **kwargs): self._defttl = kwargs.get('keyttl', None) zones = kwargs.get('zones', None) if not zones: path = kwargs.get('path',None) or '.' self.readall(path) else: for zone in zones: if 'path' in kwargs and kwargs['path'] is not None: path = kwargs['path'] else: path = dp and dp.policy(zone).directory or '.' if not self.readone(path, zone): self._missing.append(zone) def readall(self, path): files = glob.glob(os.path.join(path, '*.private')) for infile in files: key = dnskey(infile, path, self._defttl) self._keydict[key.name][key.alg][key.keyid] = key def readone(self, path, zone): match='K' + zone + '.+*.private' files = glob.glob(os.path.join(path, match)) found = False for infile in files: key = dnskey(infile, path, self._defttl) if key.name != zone: # shouldn't ever happen continue self._keydict[key.name][key.alg][key.keyid] = key found = True return found def __iter__(self): for zone, algorithms in self._keydict.items(): for alg, keys in algorithms.items(): for key in keys.values(): yield key def __getitem__(self, name): return self._keydict[name] def zones(self): return (self._keydict.keys()) def algorithms(self, zone): return (self._keydict[zone].keys()) def keys(self, zone, alg): return (self._keydict[zone][alg].keys()) def missing(self): return (self._missing)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
.__init__.pyo.40009 | File | 617 B | 0644 |
|
.checkds.pyo.40009 | File | 5.29 KB | 0644 |
|
.coverage.pyo.40009 | File | 7.37 KB | 0644 |
|
.dnskey.pyo.40009 | File | 16.59 KB | 0644 |
|
.eventlist.pyo.40009 | File | 4.83 KB | 0644 |
|
.keydict.pyo.40009 | File | 3.21 KB | 0644 |
|
.keyevent.pyo.40009 | File | 2.32 KB | 0644 |
|
.keymgr.pyo.40009 | File | 4.91 KB | 0644 |
|
.keyseries.pyo.40009 | File | 5 KB | 0644 |
|
.keyzone.pyo.40009 | File | 1.54 KB | 0644 |
|
.parsetab.pyo.40009 | File | 10.36 KB | 0644 |
|
.policy.pyo.40009 | File | 22.62 KB | 0644 |
|
.rndc.pyo.40009 | File | 6.34 KB | 0644 |
|
.utils.pyo.40009 | File | 1.58 KB | 0644 |
|
__init__.py | File | 936 B | 0644 |
|
__init__.pyc | File | 617 B | 0644 |
|
__init__.pyo | File | 617 B | 0644 |
|
checkds.py | File | 6.49 KB | 0644 |
|
checkds.pyc | File | 5.29 KB | 0644 |
|
checkds.pyo | File | 5.29 KB | 0644 |
|
coverage.py | File | 9.61 KB | 0644 |
|
coverage.pyc | File | 7.37 KB | 0644 |
|
coverage.pyo | File | 7.37 KB | 0644 |
|
dnskey.py | File | 15.9 KB | 0644 |
|
dnskey.pyc | File | 16.59 KB | 0644 |
|
dnskey.pyo | File | 16.59 KB | 0644 |
|
eventlist.py | File | 5.71 KB | 0644 |
|
eventlist.pyc | File | 4.83 KB | 0644 |
|
eventlist.pyo | File | 4.83 KB | 0644 |
|
keydict.py | File | 2.67 KB | 0644 |
|
keydict.pyc | File | 3.21 KB | 0644 |
|
keydict.pyo | File | 3.21 KB | 0644 |
|
keyevent.py | File | 2.76 KB | 0644 |
|
keyevent.pyc | File | 2.32 KB | 0644 |
|
keyevent.pyo | File | 2.32 KB | 0644 |
|
keymgr.py | File | 6.35 KB | 0644 |
|
keymgr.pyc | File | 4.91 KB | 0644 |
|
keymgr.pyo | File | 4.91 KB | 0644 |
|
keyseries.py | File | 7.34 KB | 0644 |
|
keyseries.pyc | File | 5 KB | 0644 |
|
keyseries.pyo | File | 5 KB | 0644 |
|
keyzone.py | File | 1.86 KB | 0644 |
|
keyzone.pyc | File | 1.54 KB | 0644 |
|
keyzone.pyo | File | 1.54 KB | 0644 |
|
parsetab.py | File | 9.98 KB | 0644 |
|
parsetab.pyc | File | 10.36 KB | 0644 |
|
parsetab.pyo | File | 10.36 KB | 0644 |
|
policy.py | File | 25.8 KB | 0644 |
|
policy.pyc | File | 22.62 KB | 0644 |
|
policy.pyo | File | 22.62 KB | 0644 |
|
rndc.py | File | 6.54 KB | 0644 |
|
rndc.pyc | File | 6.34 KB | 0644 |
|
rndc.pyo | File | 6.34 KB | 0644 |
|
utils.py | File | 2.17 KB | 0644 |
|
utils.pyc | File | 1.59 KB | 0644 |
|
utils.pyo | File | 1.59 KB | 0644 |
|