summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNick Hall <nick.hall@deshaw.com>2020-07-06 00:40:36 +0100
committerNick Hall <nick.hall@deshaw.com>2020-08-08 00:25:22 +0100
commit2d8309bdfbda1b24e64d1b0d03ced4408898dfdd (patch)
tree75121d07a65d2af3394227dba7d7c78cd7e09f93 /tests
parentc4878f8e2a4cf095a795bad9f2d9660c4aaad7c3 (diff)
downloaddnspython-2d8309bdfbda1b24e64d1b0d03ced4408898dfdd.tar.gz
Add gss-tsig support to dnspython
Diffstat (limited to 'tests')
-rw-r--r--tests/test_tsig.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/test_tsig.py b/tests/test_tsig.py
index f97e53b..2d4d92b 100644
--- a/tests/test_tsig.py
+++ b/tests/test_tsig.py
@@ -1,8 +1,7 @@
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
-import hashlib
import unittest
-import time
+from unittest.mock import Mock
import dns.rcode
import dns.tsig
@@ -17,6 +16,7 @@ keyring = dns.tsigkeyring.from_text(
keyname = dns.name.from_text('keyname')
+
class TSIGTestCase(unittest.TestCase):
def test_get_context(self):
@@ -43,6 +43,30 @@ class TSIGTestCase(unittest.TestCase):
m.use_tsig(keyring, keyname, tsig_error=dns.rcode.BADKEY)
self.assertEqual(m.tsig_error, dns.rcode.BADKEY)
+ def test_gssapi_context(self):
+ # mock out the gssapi context to return some dummy values
+ gssapi_context_mock = Mock()
+ gssapi_context_mock.get_signature.return_value = b'xxxxxxxxxxx'
+ gssapi_context_mock.verify_signature.return_value = None
+
+ # create the key and add it to the keyring
+ key = dns.tsig.Key('gsstsigtest', gssapi_context_mock, 'gss-tsig')
+ ctx = dns.tsig.get_context(key)
+ self.assertEqual(ctx.name, 'gss-tsig')
+ gsskeyname = dns.name.from_text('gsstsigtest')
+ keyring[gsskeyname] = key
+
+ # create example message and go to/from wire to simulate sign/verify
+ m = dns.message.make_query('example', 'a')
+ m.use_tsig(keyring, gsskeyname)
+ w = m.to_wire()
+ # not raising is passing
+ dns.message.from_wire(w, keyring)
+
+ # assertions to make sure the "gssapi" functions were called
+ gssapi_context_mock.get_signature.assert_called_once()
+ gssapi_context_mock.verify_signature.assert_called_once()
+
def test_sign_and_validate(self):
m = dns.message.make_query('example', 'a')
m.use_tsig(keyring, keyname)