1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 """A place to store TSIG keys."""
17
18 from dns._compat import maybe_decode, maybe_encode
19
20 import base64
21
22 import dns.name
23
24
25 -def from_text(textring):
26 """Convert a dictionary containing (textual DNS name, base64 secret) pairs
27 into a binary keyring which has (dns.name.Name, binary secret) pairs.
28 @rtype: dict"""
29
30 keyring = {}
31 for keytext in textring:
32 keyname = dns.name.from_text(keytext)
33 secret = base64.decodestring(maybe_encode(textring[keytext]))
34 keyring[keyname] = secret
35 return keyring
36
37
38 -def to_text(keyring):
39 """Convert a dictionary containing (dns.name.Name, binary secret) pairs
40 into a text keyring which has (textual DNS name, base64 secret) pairs.
41 @rtype: dict"""
42
43 textring = {}
44 for keyname in keyring:
45 keytext = maybe_decode(keyname.to_text())
46 secret = maybe_decode(base64.encodestring(keyring[keyname]))
47 textring[keytext] = secret
48 return textring
49