dnssec: fix compat with dnspython 1.16
This commit is contained in:
@@ -2,7 +2,7 @@ pyaes>=0.1a1
|
|||||||
ecdsa>=0.14
|
ecdsa>=0.14
|
||||||
qrcode
|
qrcode
|
||||||
protobuf>=3.12
|
protobuf>=3.12
|
||||||
dnspython
|
dnspython<2.0
|
||||||
qdarkstyle<2.9
|
qdarkstyle<2.9
|
||||||
aiorpcx>=0.18,<0.19
|
aiorpcx>=0.18,<0.19
|
||||||
aiohttp>=3.3.0,<4.0.0
|
aiohttp>=3.3.0,<4.0.0
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
# import sys
|
# import sys
|
||||||
import time
|
import time
|
||||||
import struct
|
import struct
|
||||||
|
import hashlib
|
||||||
|
|
||||||
|
|
||||||
import dns.name
|
import dns.name
|
||||||
@@ -166,10 +167,23 @@ def python_validate_rrsig(rrset, rrsig, keys, origin=None, now=None):
|
|||||||
raise ValidationFailure('verify failure')
|
raise ValidationFailure('verify failure')
|
||||||
|
|
||||||
|
|
||||||
|
class PyCryptodomexHashAlike:
|
||||||
|
def __init__(self, hashlib_func):
|
||||||
|
self._hash = hashlib_func
|
||||||
|
def new(self):
|
||||||
|
return self._hash()
|
||||||
|
|
||||||
|
|
||||||
# replace validate_rrsig
|
# replace validate_rrsig
|
||||||
dns.dnssec._validate_rrsig = python_validate_rrsig
|
dns.dnssec._validate_rrsig = python_validate_rrsig
|
||||||
dns.dnssec.validate_rrsig = python_validate_rrsig
|
dns.dnssec.validate_rrsig = python_validate_rrsig
|
||||||
dns.dnssec.validate = dns.dnssec._validate
|
dns.dnssec.validate = dns.dnssec._validate
|
||||||
|
dns.dnssec._have_ecdsa = True
|
||||||
|
dns.dnssec.MD5 = PyCryptodomexHashAlike(hashlib.md5)
|
||||||
|
dns.dnssec.SHA1 = PyCryptodomexHashAlike(hashlib.sha1)
|
||||||
|
dns.dnssec.SHA256 = PyCryptodomexHashAlike(hashlib.sha256)
|
||||||
|
dns.dnssec.SHA384 = PyCryptodomexHashAlike(hashlib.sha384)
|
||||||
|
dns.dnssec.SHA512 = PyCryptodomexHashAlike(hashlib.sha512)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user