From d6535f204213d7bca78506d6f65dbb07ce1b1155 Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Wed, 15 Apr 2020 16:03:39 -0400 Subject: [PATCH] added python-dns-1.16-base64.patch --- python-dns-1.16-base64.patch | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 python-dns-1.16-base64.patch diff --git a/python-dns-1.16-base64.patch b/python-dns-1.16-base64.patch new file mode 100644 index 0000000..c2e5e77 --- /dev/null +++ b/python-dns-1.16-base64.patch @@ -0,0 +1,60 @@ +diff -Naur dnspython-1.16.0-orig/dns/tsigkeyring.py dnspython-1.16.0/dns/tsigkeyring.py +--- dnspython-1.16.0-orig/dns/tsigkeyring.py 2018-12-01 10:25:27.000000000 -0500 ++++ dnspython-1.16.0/dns/tsigkeyring.py 2020-04-15 15:25:22.026211793 -0400 +@@ -32,7 +32,7 @@ + keyring = {} + for keytext in textring: + keyname = dns.name.from_text(keytext) +- secret = base64.decodestring(maybe_encode(textring[keytext])) ++ secret = base64.decodebytes(textring[keytext].encode()) + keyring[keyname] = secret + return keyring + +@@ -44,7 +44,8 @@ + + textring = {} + for keyname in keyring: +- keytext = maybe_decode(keyname.to_text()) +- secret = maybe_decode(base64.encodestring(keyring[keyname])) ++ keytext = keyname.to_text() ++ # rstrip to get rid of the \n encoding adds ++ secret = base64.encodebytes(keyring[keyname]).decode().rstrip() + textring[keytext] = secret + return textring +diff -Naur dnspython-1.16.0-orig/tests/test_tsigkeyring.py dnspython-1.16.0/tests/test_tsigkeyring.py +--- dnspython-1.16.0-orig/tests/test_tsigkeyring.py 1969-12-31 19:00:00.000000000 -0500 ++++ dnspython-1.16.0/tests/test_tsigkeyring.py 2020-04-15 15:26:16.884138201 -0400 +@@ -0,0 +1,33 @@ ++# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license ++ ++import base64 ++import unittest ++ ++import dns.tsigkeyring ++ ++text_keyring = { ++ 'keyname.' : 'NjHwPsMKjdN++dOfE5iAiQ==' ++} ++ ++rich_keyring = { ++ dns.name.from_text('keyname.') : \ ++ base64.decodebytes('NjHwPsMKjdN++dOfE5iAiQ=='.encode()) ++} ++ ++class TSIGKeyRingTestCase(unittest.TestCase): ++ ++ def test_from_text(self): ++ """text keyring -> rich keyring""" ++ rkeyring = dns.tsigkeyring.from_text(text_keyring) ++ self.assertEqual(rkeyring, rich_keyring) ++ ++ def test_to_text(self): ++ """text keyring -> rich keyring -> text keyring""" ++ tkeyring = dns.tsigkeyring.to_text(rich_keyring) ++ self.assertEqual(tkeyring, text_keyring) ++ ++ def test_from_and_to_text(self): ++ """text keyring -> rich keyring -> text keyring""" ++ rkeyring = dns.tsigkeyring.from_text(text_keyring) ++ tkeyring = dns.tsigkeyring.to_text(rkeyring) ++ self.assertEqual(tkeyring, text_keyring)