예제 #1
0
파일: dnsq.py 프로젝트: mdempsky/dnscurve
zone = len(sys.argv) >= 6 and dns.dns_domain_fromdot(sys.argv[5])

if pubkey:
    try:
        pubkey = pubkey.decode('hex')
        if len(pubkey) != 32:
            raise 'Invalid DNSCurve public key'
    except TypeError, e:
        pubkey = dnscurve.dnscurve_getpubkey(dns.dns_domain_fromdot(pubkey))
        if not pubkey:
            raise 'Invalid DNSCurve public key'

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((server, 53))

query0 = dns.dns_build_query(type, name)
if pubkey:
    mykey = open('/dev/urandom').read(32)
    mypubkey = nacl.smult_curve25519_base(mykey)
    key = nacl.box_curve25519xsalsa20poly1305_beforenm(pubkey, mykey)
    nonce1 = open('/dev/urandom').read(12)
    box = nacl.box_curve25519xsalsa20poly1305_afternm(query0, nonce1 + 12 * '\0', key)
    if zone is not False:
        query = dnscurve.dnscurve_encode_txt_query(nonce1, box, mypubkey, zone)
    else:
        query = dnscurve.dnscurve_encode_streamlined_query(nonce1, box, mypubkey)
else:
    query = query0
s.send(query)

response = s.recv(4096)
예제 #2
0
import sys
import dns

if __name__ == '__main__':
    sys.stdout.write(dns.dns_build_query(sys.argv[1], sys.argv[2]))
예제 #3
0
zone = len(sys.argv) >= 6 and dns.dns_domain_fromdot(sys.argv[5])

if pubkey:
    try:
        pubkey = pubkey.decode('hex')
        if len(pubkey) != 32:
            raise 'Invalid DNSCurve public key'
    except TypeError, e:
        pubkey = dnscurve.dnscurve_getpubkey(dns.dns_domain_fromdot(pubkey))
        if not pubkey:
            raise 'Invalid DNSCurve public key'

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((server, 53))

query0 = dns.dns_build_query(type, name)
if pubkey:
    mykey = open('/dev/urandom').read(32)
    mypubkey = nacl.smult_curve25519_base(mykey)
    key = nacl.box_curve25519xsalsa20poly1305_beforenm(pubkey, mykey)
    nonce1 = open('/dev/urandom').read(12)
    box = nacl.box_curve25519xsalsa20poly1305_afternm(query0,
                                                      nonce1 + 12 * '\0', key)
    if zone is not False:
        query = dnscurve.dnscurve_encode_txt_query(nonce1, box, mypubkey, zone)
    else:
        query = dnscurve.dnscurve_encode_streamlined_query(
            nonce1, box, mypubkey)
else:
    query = query0
s.send(query)
예제 #4
0
import sys
import dns

if __name__ == '__main__':
  sys.stdout.write(dns.dns_build_query(sys.argv[1], sys.argv[2]))