summaryrefslogtreecommitdiff
path: root/lib/dnspython/dns/dnssec.py
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2010-03-29 16:08:11 +0200
committerJelmer Vernooij <jelmer@samba.org>2010-03-29 18:05:29 +0200
commit4bbc3ff037026c72f3249f59c1b5af69a6ad6d69 (patch)
tree125857a1edbf3246579e51b10f6e62ec875062bc /lib/dnspython/dns/dnssec.py
parent89aa3b766b926d19dac4805a7e72433e497ce872 (diff)
downloadsamba-4bbc3ff037026c72f3249f59c1b5af69a6ad6d69.tar.gz
samba-4bbc3ff037026c72f3249f59c1b5af69a6ad6d69.tar.bz2
samba-4bbc3ff037026c72f3249f59c1b5af69a6ad6d69.zip
s4-python: Move dnspython to lib/, like the other Python modules
This also avoids it from being installed if it's already present on the system.
Diffstat (limited to 'lib/dnspython/dns/dnssec.py')
-rw-r--r--lib/dnspython/dns/dnssec.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/dnspython/dns/dnssec.py b/lib/dnspython/dns/dnssec.py
new file mode 100644
index 0000000000..acf46535b9
--- /dev/null
+++ b/lib/dnspython/dns/dnssec.py
@@ -0,0 +1,72 @@
+# Copyright (C) 2003-2007, 2009 Nominum, Inc.
+#
+# Permission to use, copy, modify, and distribute this software and its
+# documentation for any 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 NOMINUM DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM 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.
+
+"""Common DNSSEC-related functions and constants."""
+
+RSAMD5 = 1
+DH = 2
+DSA = 3
+ECC = 4
+RSASHA1 = 5
+DSANSEC3SHA1 = 6
+RSASHA1NSEC3SHA1 = 7
+RSASHA256 = 8
+RSASHA512 = 10
+INDIRECT = 252
+PRIVATEDNS = 253
+PRIVATEOID = 254
+
+_algorithm_by_text = {
+ 'RSAMD5' : RSAMD5,
+ 'DH' : DH,
+ 'DSA' : DSA,
+ 'ECC' : ECC,
+ 'RSASHA1' : RSASHA1,
+ 'DSANSEC3SHA1' : DSANSEC3SHA1,
+ 'RSASHA1NSEC3SHA1' : RSASHA1NSEC3SHA1,
+ 'RSASHA256' : RSASHA256,
+ 'RSASHA512' : RSASHA512,
+ 'INDIRECT' : INDIRECT,
+ 'PRIVATEDNS' : PRIVATEDNS,
+ 'PRIVATEOID' : PRIVATEOID,
+ }
+
+# We construct the inverse mapping programmatically to ensure that we
+# cannot make any mistakes (e.g. omissions, cut-and-paste errors) that
+# would cause the mapping not to be true inverse.
+
+_algorithm_by_value = dict([(y, x) for x, y in _algorithm_by_text.iteritems()])
+
+class UnknownAlgorithm(Exception):
+ """Raised if an algorithm is unknown."""
+ pass
+
+def algorithm_from_text(text):
+ """Convert text into a DNSSEC algorithm value
+ @rtype: int"""
+
+ value = _algorithm_by_text.get(text.upper())
+ if value is None:
+ value = int(text)
+ return value
+
+def algorithm_to_text(value):
+ """Convert a DNSSEC algorithm value to text
+ @rtype: string"""
+
+ text = _algorithm_by_value.get(value)
+ if text is None:
+ text = str(value)
+ return text