Metadata-Version: 1.1
Name: dnscrypt
Version: 1.0.1
Summary: dnspython compatible DNSCrypt Resolver
Home-page: https://github.com/tresni/dnspython-dnscrypt
Author: Brian Hartvigsen
Author-email: bhartvigsen@opendns.com
License: ISC
Description: ##################
        dnspython-dnscrypt
        ##################
        
        This library is designed to make using DNSCrypt in Python easy and compatible
        with dnspython_.  It provides a ``dns.resolver.Resolver``-style interface which
        mixes-in the ``dns.query.udp`` and ``dns.query.tcp`` functions.
        
        >>> import dnscrypt
        >>> r = dnscrypt.Resolver('208.67.222.222', '2.dnscrypt-cert.opendns.com',
        ... 'B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79',
        ... port=53, timeout=5)
        >>> print r.query('www.google.com')
        <dns.resolver.Answer object at 0x103b6f450>
        >>> import dns.message
        >>> r.udp(dns.message.make_query('google.com', 'A'))
        <DNS message, ID 16075>
        
        Class Methods
        =============
        
        ``__init__(self, address, provider_name, provider_pk, private_key=None, port=53, timeout=5)``
        ---------------------------------------------------------------------------------------------
        
        address
            The IP address of the DNSCrypt resolver
        port
            The port to use for communication with the DNSCrypt resolver
        provider_name
            The provider name for the DNSCrypt resolver.  Takes the format ``<version>.dnscrypt-cert.<zone>``.
        provider_pk
            The provider's hex-encoded public key or DNS hostname where to retreive the public key
        private_key
            A hex-encoded private key if you want to reuse a key you already have.  Otherwise,
            a new key will be generated for each Resolver instance.
        timeout
            Timeout in seconds for DNS lookups
        
        
        ``address``, ``provider_name``, and ``provider_pk`` are required.  All other
        arguments are optional.
        
        ``query(qname, rdtype=1, rdclass=1, tcp=False, source=None, raise_on_no_answer=True, source_port=0)``
        -----------------------------------------------------------------------------------------------------
        
        Analogous to dns.resolver.Resolver.query_ for dnspython_.
        
        ``tcp(self, query, timeout=None, af=None, source=None, source_port=0, one_rr_per_rrset=False)``
        -----------------------------------------------------------------------------------------------
        
        Analogous to dns.query.tcp_ for dnspython_.  There is no ``where`` argument,
        but is otherwise identical in function/form.
        
        ``udp(self, query, timeout=None, af=None, source=None, source_port=0, ignore_unexpected=False, one_rr_per_rrset=False)``
        ------------------------------------------------------------------------------------------------------------------------
        
        Analogous to dns.query.udp_ for dnspython_.  There is no ``where`` argument,
        but is otherwise identical in function/form.
        
        Differences from dnspython
        ==========================
        
        The biggest thing is that this is a very basic implementation of
        ``dns.resolver.Resolver``.  While it's designed to look/feel the same, it is not a
        drop in replacement. (e.g. I did not implement the
        ``use_tsig``/``use_edns``/``set_flags`` functions, instead use
        ``dns.message.Message`` and ``dnscrypt.resolver.tcp`` or
        ``dnscrypt.resolver.udp``.)
        
        .. _dnspython: http://www.dnspython.org
        .. _dns.resolver.Resolver.query: http://www.dnspython.org/docs/1.15.0/dns.resolver.Resolver-class.html#query
        .. _dns.query.tcp: http://www.dnspython.org/docs/1.15.0/dns.query-module.html#tcp
        .. _dns.query.udp: http://www.dnspython.org/docs/1.15.0/dns.query-module.html#udp
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
