URI: 
       tdnssec: fix compat with dnspython 1.16 - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 6d2aee18d0bc5b68bff4123855f2b77b7efa1f3b
   DIR parent 9fa666f1792b82bdd93d01752d1912076541f1f3
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Thu,  2 Jul 2020 11:12:38 +0200
       
       dnssec: fix compat with dnspython 1.16
       
       Diffstat:
         M contrib/requirements/requirements.… |       2 +-
         M electrum/dnssec.py                  |      14 ++++++++++++++
       
       2 files changed, 15 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/contrib/requirements/requirements.txt b/contrib/requirements/requirements.txt
       t@@ -2,7 +2,7 @@ pyaes>=0.1a1
        ecdsa>=0.14
        qrcode
        protobuf>=3.12
       -dnspython
       +dnspython<2.0
        qdarkstyle<2.9
        aiorpcx>=0.18,<0.19
        aiohttp>=3.3.0,<4.0.0
   DIR diff --git a/electrum/dnssec.py b/electrum/dnssec.py
       t@@ -35,6 +35,7 @@
        # import sys
        import time
        import struct
       +import hashlib
        
        
        import dns.name
       t@@ -166,10 +167,23 @@ def python_validate_rrsig(rrset, rrsig, keys, origin=None, now=None):
            raise ValidationFailure('verify failure')
        
        
       +class PyCryptodomexHashAlike:
       +    def __init__(self, hashlib_func):
       +        self._hash = hashlib_func
       +    def new(self):
       +        return self._hash()
       +
       +
        # replace validate_rrsig
        dns.dnssec._validate_rrsig = python_validate_rrsig
        dns.dnssec.validate_rrsig = python_validate_rrsig
        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)