New upstream version 0.9.2
Robert Edmonds
3 years ago
0 | 0 |
Metadata-Version: 1.1
|
1 | 1 |
Name: dnsviz
|
2 | |
Version: 0.9.1
|
|
2 |
Version: 0.9.2
|
3 | 3 |
Summary: DNS analysis and visualization tool suite
|
4 | 4 |
Home-page: https://github.com/dnsviz/dnsviz/
|
5 | 5 |
Author: Casey Deccio
|
0 | 0 |
Name: dnsviz
|
1 | |
Version: 0.9.1
|
|
1 |
Version: 0.9.2
|
2 | 2 |
Release: 1%{?dist}
|
3 | 3 |
Summary: Tools for analyzing and visualizing DNS and DNSSEC behavior
|
4 | 4 |
|
|
57 | 57 |
%{_mandir}/man1/%{name}-query.1*
|
58 | 58 |
|
59 | 59 |
%changelog
|
|
60 |
* Fri Feb 5 2021 Casey Deccio
|
|
61 |
0.9.2 release
|
60 | 62 |
* Tue Jan 19 2021 Casey Deccio
|
61 | 63 |
0.9.1 release
|
62 | 64 |
* Fri Jan 8 2021 Casey Deccio
|
255 | 255 |
return info_obj
|
256 | 256 |
|
257 | 257 |
def _get_response_info(self, name, rdtype):
|
|
258 |
#XXX there are reasons for this (e.g., NXDOMAIN, after which no further
|
|
259 |
# queries are made), but it would be good to have a sanity check, so
|
|
260 |
# we don't simply produce an incomplete output.
|
|
261 |
# see also: dnsviz.viz.dnssec.graph_rrset_auth()
|
|
262 |
if (name, rdtype) not in self.queries:
|
|
263 |
return None
|
|
264 |
|
258 | 265 |
query = self.queries[(name, rdtype)]
|
259 | 266 |
name_to_info_mapping = {}
|
260 | 267 |
rrset_to_cname_mapping = {}
|
111 | 111 |
|
112 | 112 |
def test_pygraphviz():
|
113 | 113 |
try:
|
114 | |
from pygraphviz import release
|
115 | |
try:
|
116 | |
major, minor = release.version.split('.')[:2]
|
|
114 |
try:
|
|
115 |
# pygraphviz < 1.7 used pygraphviz.release.version
|
|
116 |
from pygraphviz import release
|
|
117 |
version = release.version
|
|
118 |
except ImportError:
|
|
119 |
# pygraphviz 1.7 changed to pygraphviz.__version__
|
|
120 |
from pygraphviz import __version__
|
|
121 |
version = __version__
|
|
122 |
try:
|
|
123 |
major, minor = version.split('.')[:2]
|
117 | 124 |
major = int(major)
|
118 | 125 |
minor = int(re.sub(r'(\d+)[^\d].*', r'\1', minor))
|
119 | 126 |
if (major, minor) < (1,3):
|
120 | |
logger.error('''pygraphviz version >= 1.3 is required, but version %s is installed.''' % release.version)
|
|
127 |
logger.error('''pygraphviz version >= 1.3 is required, but version %s is installed.''' % version)
|
121 | 128 |
sys.exit(2)
|
122 | 129 |
except ValueError:
|
123 | |
logger.error('''pygraphviz version >= 1.3 is required, but version %s is installed.''' % release.version)
|
|
130 |
logger.error('''pygraphviz version >= 1.3 is required, but version %s is installed.''' % version)
|
124 | 131 |
sys.exit(2)
|
125 | 132 |
except ImportError:
|
126 | 133 |
logger.error('''pygraphviz is required, but not installed.''')
|
271 | 271 |
|
272 | 272 |
def test_pygraphviz():
|
273 | 273 |
try:
|
274 | |
from pygraphviz import release
|
275 | |
try:
|
276 | |
major, minor = release.version.split('.')[:2]
|
|
274 |
try:
|
|
275 |
# pygraphviz < 1.7 used pygraphviz.release.version
|
|
276 |
from pygraphviz import release
|
|
277 |
version = release.version
|
|
278 |
except ImportError:
|
|
279 |
# pygraphviz 1.7 changed to pygraphviz.__version__
|
|
280 |
from pygraphviz import __version__
|
|
281 |
version = __version__
|
|
282 |
try:
|
|
283 |
major, minor = version.split('.')[:2]
|
277 | 284 |
major = int(major)
|
278 | 285 |
minor = int(re.sub(r'(\d+)[^\d].*', r'\1', minor))
|
279 | 286 |
if (major, minor) < (1,3):
|
280 | |
logger.error('''pygraphviz version >= 1.3 is required, but version %s is installed.''' % release.version)
|
|
287 |
logger.error('''pygraphviz version >= 1.3 is required, but version %s is installed.''' % version)
|
281 | 288 |
sys.exit(2)
|
282 | 289 |
except ValueError:
|
283 | |
logger.error('''pygraphviz version >= 1.3 is required, but version %s is installed.''' % release.version)
|
|
290 |
logger.error('''pygraphviz version >= 1.3 is required, but version %s is installed.''' % version)
|
284 | 291 |
sys.exit(2)
|
285 | 292 |
except ImportError:
|
286 | 293 |
logger.error('''pygraphviz is required, but not installed.''')
|
75 | 75 |
GOST_DIGEST_NAME = b'GOST R 34.11-94'
|
76 | 76 |
|
77 | 77 |
ED25519_PREFIX = b'\x30\x2a\x30\x05\x06\x03\x2b\x65\x70\x03\x21\x00'
|
78 | |
ED448_PREFIX = b'\x30\x2a\x30\x05\x06\x03\x2b\x65\x71\x03\x21\x00'
|
|
78 |
ED448_PREFIX = b'\x30\x43\x30\x05\x06\x03\x2b\x65\x71\x03\x3a\x00'
|
79 | 79 |
|
80 | 80 |
# python3/python2 dual compatibility
|
81 | 81 |
if not isinstance(GOST_ENGINE_NAME, str):
|
82 | 82 |
GOST_ENGINE_NAME = lb2s(GOST_ENGINE_NAME)
|
83 | 83 |
GOST_DIGEST_NAME = lb2s(GOST_DIGEST_NAME)
|
|
84 |
|
|
85 |
try:
|
|
86 |
# available from python 3.1
|
|
87 |
base64encodebytes = base64.encodebytes
|
|
88 |
except AttributeError:
|
|
89 |
# available until python 3.8
|
|
90 |
base64encodebytes = base64.encodestring
|
84 | 91 |
|
85 | 92 |
EC_NOCOMPRESSION = b'\x04'
|
86 | 93 |
|
|
274 | 281 |
|
275 | 282 |
def _dnskey_to_gost(key):
|
276 | 283 |
der = GOST_PREFIX + key
|
277 | |
pem = b'-----BEGIN PUBLIC KEY-----\n'+base64.encodestring(der)+b'-----END PUBLIC KEY-----'
|
|
284 |
pem = b'-----BEGIN PUBLIC KEY-----\n'+base64encodebytes(der)+b'-----END PUBLIC KEY-----'
|
278 | 285 |
|
279 | 286 |
return EVP.load_key_string_pubkey(pem)
|
280 | 287 |
|
|
286 | 293 |
else:
|
287 | 294 |
raise ValueError('Algorithm not supported')
|
288 | 295 |
|
289 | |
pem = b'-----BEGIN PUBLIC KEY-----\n'+base64.encodestring(der)+b'-----END PUBLIC KEY-----'
|
|
296 |
pem = b'-----BEGIN PUBLIC KEY-----\n'+base64encodebytes(der)+b'-----END PUBLIC KEY-----'
|
290 | 297 |
return EVP.load_key_string_pubkey(pem)
|
291 | 298 |
|
292 | 299 |
def _dnskey_to_ec(alg, key):
|
811 | 811 |
|
812 | 812 |
def init_req(self):
|
813 | 813 |
data = self._post_data()
|
814 | |
self.msg_send = codecs.encode('POST %s HTTP/1.1\r\nHost: %s\r\nUser-Agent: DNSViz/0.9.1\r\nAccept: application/json\r\n%sContent-Length: %d\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n%s' % (self.path, self.host, self._authentication_header(), len(data), data), 'latin1')
|
|
814 |
self.msg_send = codecs.encode('POST %s HTTP/1.1\r\nHost: %s\r\nUser-Agent: DNSViz/0.9.2\r\nAccept: application/json\r\n%sContent-Length: %d\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n%s' % (self.path, self.host, self._authentication_header(), len(data), data), 'latin1')
|
815 | 815 |
self.msg_send_len = len(self.msg_send)
|
816 | 816 |
self.msg_send_index = 0
|
817 | 817 |
|
0 | 0 |
Metadata-Version: 1.1
|
1 | 1 |
Name: dnsviz
|
2 | |
Version: 0.9.1
|
|
2 |
Version: 0.9.2
|
3 | 3 |
Summary: DNS analysis and visualization tool suite
|
4 | 4 |
Home-page: https://github.com/dnsviz/dnsviz/
|
5 | 5 |
Author: Casey Deccio
|
19 | 19 |
.\" You should have received a copy of the GNU General Public License along
|
20 | 20 |
.\" with DNSViz. If not, see <http://www.gnu.org/licenses/>.
|
21 | 21 |
.\"
|
22 | |
.TH dnsviz-probe 1 "19 Jan 2021" "0.9.1"
|
|
22 |
.TH dnsviz-probe 1 "5 Feb 2021" "0.9.2"
|
23 | 23 |
.SH NAME
|
24 | 24 |
dnsviz-graph \- graph the assessment of diagnostic DNS queries
|
25 | 25 |
.SH SYNOPSIS
|
19 | 19 |
.\" You should have received a copy of the GNU General Public License along
|
20 | 20 |
.\" with DNSViz. If not, see <http://www.gnu.org/licenses/>.
|
21 | 21 |
.\"
|
22 | |
.TH dnsviz-grok 1 "19 Jan 2021" "0.9.1"
|
|
22 |
.TH dnsviz-grok 1 "5 Feb 2021" "0.9.2"
|
23 | 23 |
.SH NAME
|
24 | 24 |
dnsviz-grok \- assess diagnostic DNS queries
|
25 | 25 |
.SH SYNOPSIS
|
19 | 19 |
.\" You should have received a copy of the GNU General Public License along
|
20 | 20 |
.\" with DNSViz. If not, see <http://www.gnu.org/licenses/>.
|
21 | 21 |
.\"
|
22 | |
.TH dnsviz-print 1 "19 Jan 2021" "0.9.1"
|
|
22 |
.TH dnsviz-print 1 "5 Feb 2021" "0.9.2"
|
23 | 23 |
.SH NAME
|
24 | 24 |
dnsviz-print \- print the assessment of diagnostic DNS queries
|
25 | 25 |
.SH SYNOPSIS
|
19 | 19 |
.\" You should have received a copy of the GNU General Public License along
|
20 | 20 |
.\" with DNSViz. If not, see <http://www.gnu.org/licenses/>.
|
21 | 21 |
.\"
|
22 | |
.TH dnsviz-probe 1 "19 Jan 2021" "0.9.1"
|
|
22 |
.TH dnsviz-probe 1 "5 Feb 2021" "0.9.2"
|
23 | 23 |
.SH NAME
|
24 | 24 |
dnsviz-probe \- issue diagnostic DNS queries
|
25 | 25 |
.SH SYNOPSIS
|
19 | 19 |
.\" You should have received a copy of the GNU General Public License along
|
20 | 20 |
.\" with DNSViz. If not, see <http://www.gnu.org/licenses/>.
|
21 | 21 |
.\"
|
22 | |
.TH dnsviz-query 1 "19 Jan 2021" "0.9.1"
|
|
22 |
.TH dnsviz-query 1 "5 Feb 2021" "0.9.2"
|
23 | 23 |
.SH NAME
|
24 | 24 |
dnsviz-query \- assess a DNS query
|
25 | 25 |
.SH SYNOPSIS
|
19 | 19 |
.\" You should have received a copy of the GNU General Public License along
|
20 | 20 |
.\" with DNSViz. If not, see <http://www.gnu.org/licenses/>.
|
21 | 21 |
.\"
|
22 | |
.TH dnsviz 1 "19 Jan 2021" "0.9.1"
|
|
22 |
.TH dnsviz 1 "5 Feb 2021" "0.9.2"
|
23 | 23 |
.SH NAME
|
24 | 24 |
dnsviz \- issue and assess diagnostic DNS queries
|
25 | 25 |
.SH SYNOPSIS
|
119 | 119 |
|
120 | 120 |
create_config('')
|
121 | 121 |
setup(name='dnsviz',
|
122 | |
version='0.9.1',
|
|
122 |
version='0.9.2',
|
123 | 123 |
author='Casey Deccio',
|
124 | 124 |
author_email='casey@deccio.net',
|
125 | 125 |
url='https://github.com/dnsviz/dnsviz/',
|