summaryrefslogtreecommitdiff
path: root/dns/message.py
diff options
context:
space:
mode:
authorBob Halley <halley@nominum.com>2009-11-13 04:06:54 +0900
committerBob Halley <halley@nominum.com>2009-11-13 04:06:54 +0900
commit3323a3612d5b3c34e21dcd105ffac2a5b3be4889 (patch)
tree22a742c4acbfd91b47c42bd704f96ad6311b8048 /dns/message.py
parentff64ce87300903a843ab13a2b4ff1ab6633371ba (diff)
downloaddnspython-3323a3612d5b3c34e21dcd105ffac2a5b3be4889.tar.gz
add support for more TSIG algorithms
Diffstat (limited to 'dns/message.py')
-rw-r--r--dns/message.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/dns/message.py b/dns/message.py
index eec9acb..20769d4 100644
--- a/dns/message.py
+++ b/dns/message.py
@@ -92,6 +92,9 @@ class Message(object):
@type keyring: dict
@ivar keyname: The TSIG keyname to use. The default is None.
@type keyname: dns.name.Name object
+ @ivar keyalgorithm: The TSIG key algorithm to use. The default is
+ dns.tsig.default_algorithm.
+ @type keyalgorithm: string
@ivar request_mac: The TSIG MAC of the request message associated with
this message; used when validating TSIG signatures. @see: RFC 2845 for
more information on TSIG fields.
@@ -149,6 +152,7 @@ class Message(object):
self.request_payload = 0
self.keyring = None
self.keyname = None
+ self.keyalgorithm = dns.tsig.default_algorithm
self.request_mac = ''
self.other_data = ''
self.tsig_error = 0
@@ -410,12 +414,14 @@ class Message(object):
if not self.keyname is None:
r.add_tsig(self.keyname, self.keyring[self.keyname],
self.fudge, self.original_id, self.tsig_error,
- self.other_data, self.request_mac)
+ self.other_data, self.request_mac,
+ self.keyalgorithm)
self.mac = r.mac
return r.get_wire()
- def use_tsig(self, keyring, keyname=None, fudge=300, original_id=None,
- tsig_error=0, other_data=''):
+ def use_tsig(self, keyring, keyname=None, fudge=300,
+ original_id=None, tsig_error=0, other_data='',
+ algorithm=dns.tsig.default_algorithm):
"""When sending, a TSIG signature using the specified keyring
and keyname should be added.
@@ -436,6 +442,8 @@ class Message(object):
@type tsig_error: int
@param other_data: TSIG other data.
@type other_data: string
+ @param algorithm: The TSIG algorithm to use; defaults to
+ dns.tsig.default_algorithm
"""
self.keyring = keyring
@@ -445,6 +453,7 @@ class Message(object):
if isinstance(keyname, (str, unicode)):
keyname = dns.name.from_text(keyname)
self.keyname = keyname
+ self.keyalgorithm = algorithm
self.fudge = fudge
if original_id is None:
self.original_id = self.id