mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-08-19 21:03:21 -07:00
Update dnspython-2.2.0
This commit is contained in:
parent
4b28040d59
commit
4d62245cf5
111 changed files with 9077 additions and 5877 deletions
|
@ -1,3 +1,5 @@
|
|||
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
|
||||
|
||||
# Copyright (C) 2003-2007, 2009-2011 Nominum, Inc.
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software and its
|
||||
|
@ -21,26 +23,37 @@ import dns.name
|
|||
|
||||
|
||||
def from_text(textring):
|
||||
"""Convert a dictionary containing (textual DNS name, base64 secret) pairs
|
||||
into a binary keyring which has (dns.name.Name, binary secret) pairs.
|
||||
"""Convert a dictionary containing (textual DNS name, base64 secret)
|
||||
pairs into a binary keyring which has (dns.name.Name, bytes) pairs, or
|
||||
a dictionary containing (textual DNS name, (algorithm, base64 secret))
|
||||
pairs into a binary keyring which has (dns.name.Name, dns.tsig.Key) pairs.
|
||||
@rtype: dict"""
|
||||
|
||||
keyring = {}
|
||||
for keytext in textring:
|
||||
keyname = dns.name.from_text(keytext)
|
||||
secret = base64.decodestring(textring[keytext])
|
||||
keyring[keyname] = secret
|
||||
for (name, value) in textring.items():
|
||||
name = dns.name.from_text(name)
|
||||
if isinstance(value, str):
|
||||
keyring[name] = dns.tsig.Key(name, value).secret
|
||||
else:
|
||||
(algorithm, secret) = value
|
||||
keyring[name] = dns.tsig.Key(name, secret, algorithm)
|
||||
return keyring
|
||||
|
||||
|
||||
def to_text(keyring):
|
||||
"""Convert a dictionary containing (dns.name.Name, binary secret) pairs
|
||||
into a text keyring which has (textual DNS name, base64 secret) pairs.
|
||||
"""Convert a dictionary containing (dns.name.Name, dns.tsig.Key) pairs
|
||||
into a text keyring which has (textual DNS name, (textual algorithm,
|
||||
base64 secret)) pairs, or a dictionary containing (dns.name.Name, bytes)
|
||||
pairs into a text keyring which has (textual DNS name, base64 secret) pairs.
|
||||
@rtype: dict"""
|
||||
|
||||
textring = {}
|
||||
for keyname in keyring:
|
||||
keytext = keyname.to_text()
|
||||
secret = base64.encodestring(keyring[keyname])
|
||||
textring[keytext] = secret
|
||||
def b64encode(secret):
|
||||
return base64.encodebytes(secret).decode().rstrip()
|
||||
for (name, key) in keyring.items():
|
||||
name = name.to_text()
|
||||
if isinstance(key, bytes):
|
||||
textring[name] = b64encode(key)
|
||||
else:
|
||||
textring[name] = (key.algorithm.to_text(), b64encode(key.secret))
|
||||
return textring
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue