URI: 
       tremove incorrect dnssec validation - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 538846ee0ba8aac60330d08723fdb77e65d3d93f
   DIR parent 126454c0e657a909ab4568f92b4ae059ec773f92
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Wed,  8 Jul 2015 15:14:00 +0200
       
       remove incorrect dnssec validation
       
       Diffstat:
         M lib/contacts.py                     |      82 +------------------------------
       
       1 file changed, 1 insertion(+), 81 deletions(-)
       ---
   DIR diff --git a/lib/contacts.py b/lib/contacts.py
       t@@ -7,34 +7,6 @@ import bitcoin
        from util import StoreDict, print_error
        from i18n import _
        
       -# Import all of the rdtypes, as py2app and similar get confused with the dnspython
       -# autoloader and won't include all the rdatatypes
       -try:
       -    import dns.name
       -    import dns.query
       -    import dns.dnssec
       -    import dns.message
       -    import dns.resolver
       -    import dns.rdatatype
       -    import dns.rdtypes.ANY.NS
       -    import dns.rdtypes.ANY.CNAME
       -    import dns.rdtypes.ANY.DLV
       -    import dns.rdtypes.ANY.DNSKEY
       -    import dns.rdtypes.ANY.DS
       -    import dns.rdtypes.ANY.NSEC
       -    import dns.rdtypes.ANY.NSEC3
       -    import dns.rdtypes.ANY.NSEC3PARAM
       -    import dns.rdtypes.ANY.RRSIG
       -    import dns.rdtypes.ANY.SOA
       -    import dns.rdtypes.ANY.TXT
       -    import dns.rdtypes.IN.A
       -    import dns.rdtypes.IN.AAAA
       -    from dns.exception import DNSException
       -    OA_READY = True
       -except ImportError:
       -    OA_READY = False
       -
       -
        class Contacts(StoreDict):
        
            def __init__(self, config):
       t@@ -58,11 +30,7 @@ class Contacts(StoreDict):
                out = self.resolve_openalias(k)
                if out:
                    address, name = out
       -            try:
       -                validated = self.validate_dnssec(k)
       -            except:
       -                validated = False
       -                traceback.print_exc(file=sys.stderr)
       +            validated = False
                    return {
                        'address': address,
                        'name': name,
       t@@ -122,51 +90,3 @@ class Contacts(StoreDict):
                except AttributeError:
                    return None
        
       -    def validate_dnssec(self, url):
       -        print_error('Checking DNSSEC trust chain for ' + url)
       -        default = dns.resolver.get_default_resolver()
       -        ns = default.nameservers[0]
       -        parts = url.split('.')
       -
       -        for i in xrange(len(parts), 0, -1):
       -            sub = '.'.join(parts[i - 1:])
       -            query = dns.message.make_query(sub, dns.rdatatype.NS)
       -            response = dns.query.udp(query, ns, 3)
       -            if response.rcode() != dns.rcode.NOERROR:
       -                print_error("query error")
       -                return False
       -
       -            if len(response.authority) > 0:
       -                rrset = response.authority[0]
       -            else:
       -                rrset = response.answer[0]
       -
       -            rr = rrset[0]
       -            if rr.rdtype == dns.rdatatype.SOA:
       -                #Same server is authoritative, don't check again
       -                continue
       -
       -            query = dns.message.make_query(sub,
       -                                           dns.rdatatype.DNSKEY,
       -                                           want_dnssec=True)
       -            response = dns.query.udp(query, ns, 3)
       -            if response.rcode() != 0:
       -                self.print_error("query error")
       -                return False
       -                # HANDLE QUERY FAILED (SERVER ERROR OR NO DNSKEY RECORD)
       -
       -            # answer should contain two RRSET: DNSKEY and RRSIG(DNSKEY)
       -            answer = response.answer
       -            if len(answer) != 2:
       -                print_error("answer error", answer)
       -                return False
       -
       -            # the DNSKEY should be self signed, validate it
       -            name = dns.name.from_text(sub)
       -            try:
       -                dns.dnssec.validate(answer[0], answer[1], {name: answer[0]})
       -            except dns.dnssec.ValidationFailure:
       -                print_error("validation error")
       -                return False
       -
       -        return True