Clone or download
miekg Simplify TKEY presentation format (#856)
* Simplify TKEY presentation format

Just put add ";" in front of it, instead of the whole pseudo option
text.

Fixes #855

Signed-off-by: Miek Gieben <miek@miek.nl>

* Add more fields to presentation format - convert time using the RRSIG routines

Signed-off-by: Miek Gieben <miek@miek.nl>
Latest commit 450ab7d Dec 4, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dnsutil util.TrimDomainName() fails when origin doesn't end in dot (#559) Nov 8, 2017
vendor/golang.org/x Run dep ensure -update (#770) Oct 5, 2018
.codecov.yml Add codecov yaml to not fail the build (#600) Dec 6, 2017
.gitignore gitignore update Oct 15, 2013
.travis.yml Test coverage for all packages and merge Travis builds (#781) Oct 9, 2018
AUTHORS add AUTHOR file Feb 10, 2014
CONTRIBUTORS Correctly set the Source IP to the received Destination IP (#524) Sep 29, 2017
COPYRIGHT Remove all copyright notices Sep 11, 2014
Gopkg.lock Run dep ensure -update (#770) Oct 5, 2018
Gopkg.toml Run dep ensure -update (#770) Oct 5, 2018
LICENSE Update the copy right for the original GO files May 12, 2013
Makefile.fuzz Add fuzzing framework (#580) Nov 23, 2017
Makefile.release Release: plain push is also needed Jan 10, 2018
README.md doc: Clean up README and doc.go (#817) Nov 27, 2018
acceptfunc.go fix docs Nov 28, 2018
client.go Revert doh (#800) Nov 1, 2018
client_test.go Prevent timeout in TestConcurrentExchanges (#862) Dec 4, 2018
clientconfig.go fix: panicing on options parsing. (#642) Mar 1, 2018
clientconfig_test.go fix: panicing on options parsing. (#642) Mar 1, 2018
dane.go Improve performance by addressing some low hanging fruit. (#444) Feb 2, 2017
defaults.go Reduce compression memory use with map[string]uint16 (#852) Dec 1, 2018
dns.go Avoid setting the Rdlength field when packing records (#859) Dec 2, 2018
dns_bench_test.go Reduce compression memory use with map[string]uint16 (#852) Dec 1, 2018
dns_test.go Properly calculate compressed message lengths (#833) Nov 29, 2018
dnssec.go Properly calculate compressed message lengths (#833) Nov 29, 2018
dnssec_keygen.go 458+dep (#591) Nov 27, 2017
dnssec_keyscan.go Add new ZoneParser API (#794) Oct 20, 2018
dnssec_privkey.go Use RFC 8032 functions added to x/crypto/ed25519 (#715) Jul 25, 2018
dnssec_test.go Eliminate lexer goroutines (#792) Oct 15, 2018
doc.go doc: Clean up README and doc.go (#817) Nov 27, 2018
duplicate.go Add IsDuplicate function (#699) Jun 23, 2018
duplicate_generate.go Add IsDuplicate function (#699) Jun 23, 2018
duplicate_test.go Add IsDuplicate function (#699) Jun 23, 2018
dyn_test.go Remove all copyright notices Sep 11, 2014
edns.go Properly calculate compressed message lengths (#833) Nov 29, 2018
edns_test.go Use copy instead of loop in EDNS0_SUBNET.unpack (#825) Nov 27, 2018
example_test.go fix a stupid mistake "undefined: zone" Sep 30, 2015
format.go Remove WKS support Jun 5, 2016
fuzz.go Add fuzzing framework (#580) Nov 23, 2017
generate.go Add new ZoneParser API (#794) Oct 20, 2018
generate_test.go Add new ZoneParser API (#794) Oct 20, 2018
issue_test.go Tests updates (#556) Nov 8, 2017
labels.go Remove redundant parenthesis (#727) Aug 16, 2018
labels_test.go Cleanup: gofmt -w -s *.go (#548) Nov 3, 2017
leak_test.go Revert doh (#800) Nov 1, 2018
length_test.go Reduce compression memory use with map[string]uint16 (#852) Dec 1, 2018
listen_go111.go Use correct build constraints for listen_*.go files (#750) Sep 26, 2018
listen_go_not111.go Use correct build constraints for listen_*.go files (#750) Sep 26, 2018
msg.go Avoid setting the Rdlength field when packing records (#859) Dec 2, 2018
msg_generate.go Avoid setting the Rdlength field when packing records (#859) Dec 2, 2018
msg_helpers.go Avoid setting the Rdlength field when packing records (#859) Dec 2, 2018
msg_helpers_test.go Fix unpackString bug: 127 DEL is unprintable (#755) Sep 27, 2018
msg_test.go Pretty print test compression map differences (#853) Dec 1, 2018
nsecx.go Hoist SHA1 check in HashName Nov 29, 2018
nsecx_test.go Add a HashName benchmark Nov 28, 2018
parse_test.go Properly calculate compressed message lengths (#833) Nov 29, 2018
privaterr.go Avoid setting the Rdlength field when packing records (#859) Dec 2, 2018
privaterr_test.go Test: remove all Logf/Log (#547) Nov 3, 2017
remote_test.go Add remote test Aug 22, 2015
reverse.go Fix NotImp RCode string (#819) Nov 27, 2018
rr_test.go Eliminate lexer goroutines (#792) Oct 15, 2018
sanitize.go Add IsDuplicate function (#699) Jun 23, 2018
sanitize_test.go Tests updates (#556) Nov 8, 2017
scan.go Add new ZoneParser API (#794) Oct 20, 2018
scan_rr.go Eliminate lexer goroutines (#792) Oct 15, 2018
scan_test.go Add new ZoneParser API (#794) Oct 20, 2018
serve_mux.go Rework and optimise ServeMux (#754) Sep 27, 2018
serve_mux_test.go Rework and optimise ServeMux (#754) Sep 27, 2018
server.go remove newlines Nov 28, 2018
server_test.go review Nov 28, 2018
sig0.go Properly calculate compressed message lengths (#833) Nov 29, 2018
sig0_test.go Lowercase all error msg from the tests Nov 26, 2015
singleinflight.go Prevent timeout in TestConcurrentExchanges (#862) Dec 4, 2018
smimea.go Golint fixes (#456) Feb 15, 2017
tlsa.go Fix for miekg/dns issue #289: support the SMIMEA record (#410) Oct 17, 2016
tsig.go Properly calculate compressed message lengths (#833) Nov 29, 2018
tsig_test.go Fix TSIG bug releated to ID substitution (#504) Aug 12, 2017
types.go Simplify TKEY presentation format (#856) Dec 4, 2018
types_generate.go Properly calculate compressed message lengths (#833) Nov 29, 2018
types_test.go Optimise sprintX functions in types.go (#757) Oct 5, 2018
udp.go Rollback PR #738 because it breaks compatibility with Windows (#765) Sep 29, 2018
udp_test.go Rollback PR #738 because it breaks compatibility with Windows (#765) Sep 29, 2018
udp_windows.go Rollback PR #738 because it breaks compatibility with Windows (#765) Sep 29, 2018
update.go An update msg can have multiple, different prerequests and also multi… Feb 27, 2016
update_test.go ClassANY: don't convert CLASS255 to ANY (#618) Jan 7, 2018
version.go Release 1.1.1 Dec 2, 2018
version_test.go Add semver (#595) Dec 6, 2017
xfr.go TSIG name must be presented in canonical form (#574) Nov 17, 2017
zduplicate.go Add IsDuplicate function (#699) Jun 23, 2018
zmsg.go Avoid setting the Rdlength field when packing records (#859) Dec 2, 2018
ztypes.go Stop compressing names in RT records (#847) Nov 30, 2018

README.md

Build Status Code Coverage Go Report Card

Alternative (more granular) approach to a DNS library

Less is more.

Complete and usable DNS library. All Resource Records are supported, including the DNSSEC types. It follows a lean and mean philosophy. If there is stuff you should know as a DNS programmer there isn't a convenience function for it. Server side and client side programming is supported, i.e. you can build servers and resolvers with it.

We try to keep the "master" branch as sane as possible and at the bleeding edge of standards, avoiding breaking changes wherever reasonable. We support the last two versions of Go.

Goals

  • KISS;
  • Fast;
  • Small API. If it's easy to code in Go, don't make a function for it.

Users

A not-so-up-to-date-list-that-may-be-actually-current:

Send pull request if you want to be listed here.

Features

  • UDP/TCP queries, IPv4 and IPv6
  • RFC 1035 zone file parsing ($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) are supported
  • Fast
  • Server side programming (mimicking the net/http package)
  • Client side programming
  • DNSSEC: signing, validating and key generation for DSA, RSA, ECDSA and Ed25519
  • EDNS0, NSID, Cookies
  • AXFR/IXFR
  • TSIG, SIG(0)
  • DNS over TLS (DoT): encrypted connection between client and server over TCP
  • DNS name compression

Have fun!

Miek Gieben - 2010-2012 - miek@miek.nl DNS Authors 2012-

Building

Building is done with the go tool. If you have setup your GOPATH correctly, the following should work:

go get github.com/miekg/dns
go build github.com/miekg/dns

Examples

A short "how to use the API" is at the beginning of doc.go (this also will show when you call godoc github.com/miekg/dns).

Example programs can be found in the github.com/miekg/exdns repository.

Supported RFCs

all of them

  • 103{4,5} - DNS standard
  • 1348 - NSAP record (removed the record)
  • 1982 - Serial Arithmetic
  • 1876 - LOC record
  • 1995 - IXFR
  • 1996 - DNS notify
  • 2136 - DNS Update (dynamic updates)
  • 2181 - RRset definition - there is no RRset type though, just []RR
  • 2537 - RSAMD5 DNS keys
  • 2065 - DNSSEC (updated in later RFCs)
  • 2671 - EDNS record
  • 2782 - SRV record
  • 2845 - TSIG record
  • 2915 - NAPTR record
  • 2929 - DNS IANA Considerations
  • 3110 - RSASHA1 DNS keys
  • 3225 - DO bit (DNSSEC OK)
  • 340{1,2,3} - NAPTR record
  • 3445 - Limiting the scope of (DNS)KEY
  • 3597 - Unknown RRs
  • 403{3,4,5} - DNSSEC + validation functions
  • 4255 - SSHFP record
  • 4343 - Case insensitivity
  • 4408 - SPF record
  • 4509 - SHA256 Hash in DS
  • 4592 - Wildcards in the DNS
  • 4635 - HMAC SHA TSIG
  • 4701 - DHCID
  • 4892 - id.server
  • 5001 - NSID
  • 5155 - NSEC3 record
  • 5205 - HIP record
  • 5702 - SHA2 in the DNS
  • 5936 - AXFR
  • 5966 - TCP implementation recommendations
  • 6605 - ECDSA
  • 6725 - IANA Registry Update
  • 6742 - ILNP DNS
  • 6840 - Clarifications and Implementation Notes for DNS Security
  • 6844 - CAA record
  • 6891 - EDNS0 update
  • 6895 - DNS IANA considerations
  • 6975 - Algorithm Understanding in DNSSEC
  • 7043 - EUI48/EUI64 records
  • 7314 - DNS (EDNS) EXPIRE Option
  • 7477 - CSYNC RR
  • 7828 - edns-tcp-keepalive EDNS0 Option
  • 7553 - URI record
  • 7858 - DNS over TLS: Initiation and Performance Considerations
  • 7871 - EDNS0 Client Subnet
  • 7873 - Domain Name System (DNS) Cookies (draft-ietf-dnsop-cookies)
  • 8080 - EdDSA for DNSSEC

Loosely Based Upon